基于ATmegal28L的智能探测车的设计与实现
扫描二维码
随时随地手机看文章
智能探测车能根据任务及环境信息做出全局路径规划,可在行进中不断感知局部环境信息并做出决策,从而能够安全行驶并到达目标。本文以ATmegal28L单片机为核心介绍了一种智能探路车的设计雏形,该系统利用各种传感器获取周围环境信息,采用多传感器信息融合技术对接收到的信息进行处理与判断,从而自动绕开障碍物:能与计算机实现无线通讯;具有预先设定路线的功能;通过JTAG接口可以方便地在线调试程序或下载程序。
1 引言
美国Atmel公司推出的ATmegal28L是基于AVR RISC的低功耗8位单片机,最高工作频率可达16 MHz,具有128 KB Flash内部存储器、4 KBEEPROM和4 KB SRAM数据存储空间,并且采用了JTAG技术。它具有很高的性价比,并有超低的功耗和丰富的片上外围资源,很适合作为移动设备的微控制器。
2 硬件结构
ATmegal28L内含128 KB写操作可读在系统可编程Flash、53个通用I/O口、32个通用工作寄存器、实时计数器(RTC)、4个具有比较模式和PWM的定时器/计数器、2个UART、2线(I2C)串行接口、一个带内部振荡器的可编程看门狗定时器、一个SPI口、一个符合IEEE Std的JTAG等。ATmegal28L主要对超声波和红外传感器测得的信息进行处理,产生两路PWM信号来控制直流电机,通过I/O控制步进电机。同时,ATmegal28L引出JTAG接口进行在线调试程序或下载程序。另外。系统通过键盘与显示电路来实现人机对话;选用电机驱动器件1298N来驱动直流电机;超声波测物模块和红外避障测量模块用来获取环境信息;利用无线模块nRF401与:PC机端口的无线模块进行通讯。系统的路线设置功能主要由软件实现,硬件选取24C02用于存放路线。图l所示为其系统框图。
2.1 键盘与显示电路
为了方便人机对话和功能选择,本系统设计了 5个按键和液晶显示模块。5个按键分别是:单片机复位按键,小车自动行走按键(接A15(PC7))、超声波测物按键(接A14(PC6))、无线发射按键(接A13(PC5))和小车设置路线按键(接A12(PC4))。
采用液晶模块LCM103显示按键的选择和执行结果。LCM103为10位多功能通用型8段式液晶显示模块,内置显示RAM,可显示任意字段笔划,3-4线串行接口,可与任何单片机接口。由于LCM130与MCU的工作电压相同,因此LCM103与MCU直接连接。其中WR直接与ATmegal28L的WR连接.DATA端与ATmegal28L的AD4(PA4)连接,CS与ATmegal28L的A12(PC4)连接。
2.2 JTAG接口电路
在设计系统中,引出ATmegal28L的JTAG接口进行在线编程和下载,以方便调试和程序更新。对AVR器件进行编程是由JTAG端口的TCK、TMS、TDI和TDO实现的。通过JTAG可以实现如下的编程功能:
(1)Flash编程及校验;
(2)EEPROM编程及校验;
(3)熔丝位编程及校验;
(4)锁定位编程及校验。
电路如图2所示。
2.3 电机驱动电路
系统采用直流电机驱动两个前轮实现小车的前进、后退、左转、右转。ATmega128L具有2个带预分频器和比较模式的8位定时/计数器、2个扩充的带预分频器和比较/捕获模式的16位定时/计数器、2通道8位PWM、6通道2~16位精度:PWM。这里采用ATmegal281。的16位定时/计数器l来产生两路PWM信号,分别接1298N的EN A和EN B,用于控制两个电机的起停、转向及速度。它工作在相位和频率修正PWM模式下,该工作模式可以产生高精度、相位与频率都准确的PWM波形。通常用OCRnA作为TOP值。改变TOP值即可改变PWM信号的占空比,从而改变电机转速。
L1298N是SGS公司生产的恒压恒流桥式2 A驱动器件,内部包含4通道逻辑驱动电路。1298N与单片机的连接如图3所示。
系统采用了步进电机来控制超声波旋转平台的上下左右运动,驱动电路与此类似。
2.4 超声波测物电路和红外测障电路
系统采用一组超声波传感器和五组红外传感器感知环境信息。超声波通过一个可以上下左右旋转的平台安装在小车的正前方,用来测量物体的大小。在普通行车中,超声波传感器的用途和红外传感器一样。红外传感器分别安装在小车的左前方、右前方、左侧、右侧和后面。本系统利用ATmegal28I。产生40 kHz的脉冲信号,驱动发射电路发送超声波。红外传感器测量小车在五个方向的一定距离内(本系统为30 cm)是否有障碍物,辅助小车避开障碍物。
2.5 无线发射接收电路
本系统选用集成度较高的无线数据传输产品nRF401来实现PC与小车的无线通信。 nRF40l收发模块的主要特点:工作频段为433MHz;采用FSK调制,抗干扰能力强:频率稳定性好;灵敏度高,功耗小;具有多频段切换功能。
通过ATmega128L的PA5(AD5)控制PWR UP。当PWR-UP="l"时,表示进入正常工作模式:当PWR-UP="0"时,表示进入接收待机模式。PANAD6) CS="1"时,表示中心频率为434.32 MHz,当CS="0"时,表示中心频率为433.92 MHz。PA7 (AD7)控制nRF40l的TXEN端,当TXEN="1"时,表示进入发送模式,当TXEN="0"时,表示进入接收模式。数据输入端DIN与ATmegal28L的PEO(RXD0)相连。数据输出端DOUT与ATmegal28L的PEl(TXD0)相接。
2.6 充电电路
由于电机启动时瞬间电流很大,且PWM驱动的电动机电流波动较大,导致车载电源电压不稳,从而影响其他电路的正常工作,所以系统采用双电源供电的方法。将电机驱动电源与单片机及传感器电源完全隔离开来,利用耦合器进行连接。
3 软件设计
系统软件的主要功能是:能够根据传感器信息正确避开障碍物:小车与PC的无线通信;预先设定路线;测量物体的大小。为了提高小车避障的智能性,软件设计采用了神经网络自学习。软件设计的重点在于小车的神经网络训练程序和小车与PC机的无线通讯程序。
3.1 神经网络训练程序
BP神经网络应用广泛,具有较好的分类和记忆功能,同时有很强的容错性和鲁棒性。采用两层前向BP网络实现多传感器信息的融合,输入层有6个节点(分别对应6组传感器。其中超声波传感器测得距离在30 cm之内记为1),输出层有4个节点(前进F、左转L、右转R、后退B)。选取的输入输出样本为:
样本确立后,需要进行网络训练。网络训练就是对网络的连接权系数进行学习和调整,使该网络实现给定的输入输出映射关系。权系数修改按照式
(1)进行:
uij(t+1)=uij(t)+λ[dj(t)-yj(t)xi(t)+α△uij(t-1) (1)
式中:λ表示学习速率(取0.3);α表示学习动量(取0.3);dj(t)和yj(t)分别表示j单元在t时刻的目标输出和实际输出;xi(t)表示单元i在t时刻的输入;△uij(t-1)表示前一次迭代中;;单元i和J连接权系数更新增量。
BP网络算法采用C语言编程,训练好的网络权系数存放于Flash内存之中。采用的是离线训练方式。
3.2 小车与PC机的无线通讯程序
PC机在小车行驶过程中可以通过无线通讯对小车进行控制。通讯采用中断的方式,流程图如图4所示。
4 结束语
本文讨论了基于ATmega128L的智能探测车的设计思路,对系统中的各个模块接口作了简要描述,利用神经网络来增强小车的智能性,并提出了系统软件的总体设计思想。该电路各部分功能模块化,易于调试,并且容易扩展其他功能。本设计的应用前景广阔,可用于肮脏、危险等不适宜人类工作或者是人类难以到达的环境,可作为特殊应用器材的载体工具,为无线检测、信息传输及远距离控制技术提供了一个很好的应用平台。