基于单片机控制的机器人避障系统的设计
2017-09-09刘会巧
刘会巧
摘要:本文以德普施公司的教学机器人为实验平台,它的微控制器是8位的AVR单片机(ATmega8)。本文实现通过采用红外传感器对障碍物进行探测,遇到障碍物后用发光二极管发光实现报警,并由单片机控制机器人改变运行路线的设计。
关键词:单片机;机器人;避障;红外传感器
中图分类号:TP242.6 文献标识码:A 文章编号:1007-9416(2017)07-0022-02
1 引言
随着经济及科技的快速发展,智能机器人的应用也越来越广泛。智能机器人能够通过传感器来感知外界,并达到避障功能。如何让机器人在行进过程中识别障碍物并精准避障是一个非常重要的课题。本文通过采用红外传感器来识别有无障碍物,并在遇到障碍物时用发光二极管发光实现报警,同时用AVR单片机控制机器人改变行进路线的方法实现机器人识别障碍物并避障的功能。
2 系统设计方案
2.1 设计目的
本文的设计目的是机器人能从无障碍地区启动前进,感应前进路线上的障碍物后实现报警,并根据障碍物的位置选择下一步行进方向实现避障功能。
为了实现机器人避障,我们需要德普施公司的机器人,用AVR单片机控制机器人的前后左右运动;需要红外传感器,其中红外发射器发出红外光来照射机器人的路线,然后确定何时有光线从障碍物反射到红外探测器,以此确定障碍物的位置;需要发光二极管,当遇到障碍物的时候,通过发光来提示机器人前方有障碍物;需要蜂鸣器,当机器人在启动和复位的时候进行提示。
2.2 软件设计
根据机器人避障系统的设计目的,我们需要对AVR单片机进行编程以便实现避障报警等功能。其中机器人避障系统的软件流程图如图1所示。
其中实现红外线传输接收信号的程序:
while(1){for(uint16_t counter=0;counter<38;counter++)//发送红外线脉冲
{PORTD|=_BV(PD6);delay_nus(13);PORTD&=~_BV(PD6);delay_nus(13);}
if((irDetectLeft==0)&&(irDetectRight==0))//左右两边同时接收到红外线
{Backward();Left_Turn();Left_Turn();baojing();printf("前");}
else if(irDetectLeft==0)//只有左边接收到红外线
{Backward();Right_Turn();baojing();printf("左");}
else if(irDetectRight==0)//只有右边接收到红外线
{Backward();Left_Turn();baojing();printf("右");}
else {Forward();printf("后");}}//两边都没有接收到红外线
2.3 硬件设计
本文用AVR单片机控制机器人的前进后退及避障功能。其中单片机上的PB6、PB7端口引出时钟电路,PC6端口引出复位电路,时钟电路及复位电路以及单片机的供电和接地电路构成了单片机工作的最小系統,PD6端口引出两个红外发射器,PC0、PC1端口引出对应红外探测器,PD7端口引出蜂鸣器电路,PC7端口引出发光二极管报警电路。以上电路构成了机器人避障系统的硬件电路,其中机器人避障系统硬件电路的原理图如图2所示,硬件电路的实物图如图3所示。
3 结语
本文结合ATmega系列单片机原理和德普施教学机器人等相关的知识,对利用红外导航机器人躲避障碍物系统进行了设计。机器人在运行过程中碰到障碍物后红外传感器接收到其相应的脉冲,使机器人能够准确避开,发光二极管发出报警,在开始/复位时蜂鸣器发出报警。在此理论基础之上,需要根据机器人的灵敏程度进行调试直到实现机器人能够准确避障。
参考文献
[1]宋长会.移动机器人控制系统设计与研究[D].哈尔滨:哈尔滨工业大学,2006,(01)9-13.
[2]海涛.ATmega系列单片机原理及应用教科书[M].北京:机械工业出版社,2008,(01)58-63.endprint