控制/MCU
本文主要一个基于单片机的智能环境数据采集小车系统的设计,能实现环境温湿度的采集、发送、接收、处理、显示和保存。系统采用单片机作为小车与控制台的核心。控制台通过无线射频信号控制电动小车前进、后退、左转和右转运行,小车在行进过程中实时采集环境数据并将采集到的数据通过无线信号发送给控制台,控制台将数据处理后显示,并将数据发送至PC保存。经调试,系统工作稳定、可靠,实用性强。
智能小车在感知效应方面全面模拟人的机器系统,它是人工智能技术的试验场。智能小车具有识别、检测、环境数据采集等智能机制,能在非特定环境下,在恶劣条件下代替人工作,具有广阔的应用前景。本设计通过无线遥控电动小车的运行,实现环境温湿度的采集、发送、接收、处理、显示和保存,为数据的后期处理做好准备。
系统设计图如图1所示。控制台通过按键发送无线遥控信号,小车接收到信号后进行判断作出前进、后退、左转、右转、停车动作。小车通过温湿度传感器实时采集当前环境的温湿度数据并通过无线信号发送至控制台,控制台将数据处理后显示并通过串口发送至PC保存。根据系统设计要求,采集小车设计的模块有电机驱动、无线模块、温湿度传感器;控制台设计由按键、无线模块、液晶显示器、串口等模块组成。
2.1 控制模块设计
本设计中需要操作无线射频模块和温湿度传感器,会涉及到IIC和SPI协议,所以用单片机进行控制最理想。51系列单片机的使用简单、对于小型系统的控制灵活,AT89S52单片机IO口、定时计数器、串口等资源基本满足系统设计要求,故本设计采用AT89S52单片机作为核心。
51系列单片机最小系统一般应该包括:单片机、晶振电路、复位电路。晶振选取11.059 2 MHz,方便产生960 0 bps波特率,用于串口通讯。
2.2 电机驱动模块设计
L293D是一款单片集成的高电压、高电流、4通道电机驱动,设计用于连接标准DTL或TTL逻辑电平,驱动电感负载(诸如继电线圈、DC和步进电机)和开关功率晶体管等等。此芯片可以驱动两个直流电机,每1个电机需要3个控制信号EN12、IN1、IN2,其中EN12是使能信号,IN1、IN2为电机转动方向控制信号,IN1、IN2分别为1,0时,电机正转,反之,电机反转。选用一路PWM连接EN12引脚,通过调整PWM的占
空比可以调整电机的转速。此专用芯片控制简单,响应及时。电机驱动电路如图2所示。
2.3 无线模块
NRF24L01是NORDIC公司最近生产的一款无线通信通信芯片,采用FSK调制,内部集成NORDIC自己的Enhanced ShortBurst协议。可以实现点对点或是1对6的无线通信。无线通信速度可以达到2 M(bps)。工作在2.4 GHz世界通用ISM频段。通过SPI协议与单片机进行通讯,单片机只需4个IO口和一个外部中断口就可操作此模块。
SPI协议:SPI(SEDAl Peripheral interface)串行外围设备接口,是一种高速的,全双工,同步的通信总线。SPI是一个环形总线结构,通信以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。其时序主要是在sck的控制下,两个双向移位寄存器进行数据交换。SDO(MOSI):主设备数据输出,从设备数据输入;SDI(MISO):主设备数据输入,从设备数据输出;SCLK时钟信号,由主设备产生;CS:从设备使能信号,由主设备控制。
2.4 温湿度传感器
温湿度传感器是系统中最重要的部分,需要响应速度快,采样间隔短,分辨率高,误差小。本设计选定DHT21数字温湿度传感器,这是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,具有极高的可靠性与卓越的长期稳定性。单片机通过IIC协议与传感器通信,直接输出数字量,无需转换。精度高采样间隔小,满足实时采样。4针单排引脚封装,与单片机连接方便。电路如图3所示。
IIC总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100 kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,IIC总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
IIC总线在传送数据过程中共有3种类型信号,它们分别是:开始信号、结束信号和应答信号。开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。应答信号:接收数据的IC在接收到8 bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,判断为受控单元出现故障。
DHT21数字温湿度传感器数据格式:
40 bit数据=16 bit湿度数据+16 bit温度数据+8 bit校验和(湿度高8位+湿度低8位+温度高8位+温度低8位)的末8位=校验和
当温度低于0℃时温度数据的最高位置1。
3.1 小车程序流程图
小车程序主要实现对控制台控制信号接收和处理,控制电机转动。软件设计中首先对无线模块,温湿度传感器定时器等进行初始化,然后用查询的方式判断是否接收到站台指令,如果接收到对指令进行判断根据指令类型控制小车行进。小车程序流程图如图4所示。
3.2 小车采集数据中断程序流程图
中断程序中完成温湿度采集和发送。使用定时器中断,每隔三秒产生一次中断。中断流程图如图5所示。
3.3 控制台程序流程图
控制台程序包括键盘扫描、判断键值、发送命令、接收数据、处理数据、显示温湿度、串口发送数据至PC。程序中首先对无线模块、液晶显示、串口进行初始化。然后执行键盘扫描和接收数据程序。键盘扫描程序中根据键值判断是否有键按下,如果有则根据键值发送指令,如果没有则跳过向下执行。然后判断是否接收到温湿度数据,如果没有返回重新执行程序,如果接收到对数据进行处理然后更新液晶屏并通过串口把数据发送至PC保存。控制台流程图如图6所示。
经过软硬件的设计和调试,系统达到设计要求。能够通过无线遥控小车行驶,在行驶中实时采集当前环境温湿度数据并发送给控制台,无线控制距离15米。控制台能正确发送指令和接收数据,能够通过液晶显示采集到的温湿度数据,能够通过串口发送数据到PC保存。
全部0条评论
快来发表一下你的评论吧 !