基于AVR单片机智能AGV小车控制系统研究
2015-06-11孙畅徐洪亮
孙畅 徐洪亮
摘 要:本文设计以单片机ATmega16作为智能小车控制系统主控芯片,利用循迹传感器模块控制小车行走路线,光电传感器模块识别小车在行进过程中遇到的障碍物,超声波传感器测量小车行驶距离并通过显示模块12864进行显示,由于AVR单片机控制精确、操作简单,在制造业、仓储业和特种行业得到了广泛的应用。
关键词:ATmega16;智能AGV小车;循迹传感器
0 引言
科学技术迅速发展,人工智能系统开发研究受到广泛关注。智能AGV小车在仓储业、制造业、危险场所和特种行业有广泛的应用前景。譬如在一些汽车领域,如雪佛兰、丰田等汽车厂配线上有广泛的应用,经过使用了AVG作为载运工具装配线后,减少装配时间和故障率。本系统基于AVR单片机智能AGV小车控制系统研究,能够自动识别前方道路、障碍物检测等功能。
1 控制系统总体构成
通过循迹传感器确定小车按照规定的轨迹行驶,光电传感器检测前方道路障碍物,超声波传感器测量小车行驶的距离,通过传感器检测到的数字信号送入单片机,单片机通过处理电机驱动实现智能小车的左右,前进,并进行前方障碍物检测和测量行驶距离,结果会显示在智能小车上。
图1 系统结构框图
2 控制系统硬件组成与实现设计
2.1 系统主控制模块
该芯片不仅功耗低,性能也高,运行速度快,而且拥有8位AVR微处理器,32个8位通用工作寄存器,16KB的系统内可编程Flash,内存量大,还拥有上电复位以及可编程的掉电检测功能,支持扩展的片内调试功能,32个可编程I/O口,而且功耗小。
2.2 系统电机驱动模块
电机驱动芯片主要对智能AGV小车速度和方向起到一个控制的作用,速度控制采用ATmega16单片机定时中断法产生PWM方波控制速度,方向采用H桥式电路进行电机正转、反转控制。速度和方向同时控制采用专用的电机驱动芯片,例如L298N、L297N、AQMH2407等电机驱动芯片,电路具有抗干扰能力的问题,于是我们在考虑芯片链接、驱动等问题就可以迎刃而解。
2.3 系统输入模块
2.3.1 循迹传感器
智能AGV小车的行进轨迹的检测是采用循迹传感器,采用TCRT5000反射式传感器的红外发射二极管不断发射红外线,红外接收管在发出的红外线没有被反射回来或者反射强度不够大时候,它会一直处于关闭状态,此时输出的模块为高电平,二极管会一直处于熄灭状态;红外线被反射回来且强度足够大,红外接收管饱和,此时模块输出端为低电平,二极管被点亮。
2.3.2 光电传感器
系统采用光电传感器也叫光电开关来检测智能AGV小车行进轨迹上的障碍物,光电开关上三根不同颜色的线,红色接4.5-5V电源,黄色接单片机。
2.3.3 超声波传感器
针对检测AVG小车的形式距离,我们采用的是超声波传感器来检测。HC-SR04超声波检测行驶距离精度可达3mm。我们采用IO口TRIG测距,给最少10us的高电平信号,通过检测是否有信号返回,如果有信号返回,则可以通过输出的一个高电平信号,信号持续的时间越长说明超声波从发射到返回的时间越长。
3 控制系统软件设计
软件设计通过C语言编程,完成检测信息的处理和分析,并发出相应的控制指令,改变智能AGV小车的行进方向,其控制流程如下:
首先,电机的驱动流程,利用ATmega16定时1中断法产生PWM方波,利用PB0、PB1、PB2、PB3控制电机的正反转,从而可以控制智能AGV小车的前进、后退、左转、右转。
其次,初始化系统,小车行驶过程中是否有障碍物,检测有障碍物时,PD7口输出低电平,单片机检测到信号之后判断左转或者右转,无障碍物时保持原来速度继续前进。
最后,利用三块循迹传感器放在小车的前下方,寻找小车的行进轨迹,单片机检测到小车信号为111,小车前进;检测到信号为110,小车右转;检测到信号为011,小车左转。
4 结论
本文主要是基于AVR单片机和传感器技术原理,以ATmega16單片机为主控芯片,采用L298N为驱动元件,通过硬件设计和软件编程制作了一套完整、功能模块化、反应较为灵敏的智能AGV小车控制系统。经过对该智能AGV小车进行检测测试,实验结果证明该智能AGV小车能很好完成循线、避障、测距功能。
参考文献:
[1]刘治满.AVR单片机(C语言)项目开发实践教程[M].北京:人民邮电出版社,2015.
[2]彭伟.单片机C语言程序设计实训100例 [M].北京:北京航天航空大学出版社,2012.