EDN China > 设计实例 > 工业电子 > 检测与传感 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 复杂路线下机器人的三点三轮寻迹系统

单片机与嵌入式系统应用 唐甫世 齐明侠 张晓春 沈蓉?? 2010年07月28日 ?? 收藏0

?  本机器人有着双级转弯的设计,即普通转弯和快速转弯。当机器人对黑线的偏离量比较小时,使用普通转弯,即两个驱动轮都向前运动,速度一大一小,依靠两轮的速度差来实现转弯;而当机器人偏离黑线较远时,使用快速转弯,即两个驱动轮一个向前运动,一个向后运动,这样能迅速实现转弯。普通转弯用于大半径弯道、大角度折道,而快速转弯则用于小半径弯道和直角锐角折道等非平滑过渡路线。对于非封闭路线,还设计了原地旋转的动作,来实现原路返回:一旦机器人小车走完全程,3个传感器将均检测到白色区域,输出组合状态“111”,此时一轮全速前进,一轮全速后退,小车原地旋转,直到掉过头来传感器检测到黑线为止。

  3? 程序设计

  程序设计时,采用汇编语言编程。其思路为:第1步,系统初始化后,读取单片机P2口的值,然后对其P2.0、P2.1、P2.2按位取与,得到传感器模块的组合值。第2步,将得到的组合值与预定的值比较,若相等则执行相应的动作,否则继续比较,直到获得正确的动作。比较完全部动作后,转到第1步重新扫描传感器的状态值。

  为了进一步提高系统的安全性和可靠性,还需增加异常处理算法。可能出现的异常情况有:过小弯道或小角度折道时,机器人还来不及转过弯来,就已经完全偏离黑线。这种情况下,3个传感器都输出“1”,检测不到黑线,若不及时处理,机器人将无法继续寻迹。针对该情况,设计了原地旋转动作来找回预定路线,不过原地旋转有顺、逆时针之分,因此还得区分开来。改进后编程的思路为:每次读取P2口值之前,将其上一次的传感器组合值存入某个寄存器,当出现组合值为 “111”的情况时,立即查询上一次的值,根据该值,可以判断出机器人是从哪一侧偏离黑线的,从而进行顺或逆时针原地旋转。其主要程序如下:

……;系统初始化
SENSOR: MOVA,P2
ANLA,#07H;读P2口值,对P2.0、P2.1、P2.2按位取与
CJNEA,#07H,NEXT;如组合值为111,直接转到动作判断程序,否则转到NEXT
LJMPDATA_PROCESS
NEXT:MOVR5,A;将本次传感器组合值赋给R5
LJMPDATA_PROCESS
DATA_PROCESS: CJNE A,#07H,D1;对组合值判断,确认为常规动作还是旋转动作
LJMP ROTATE
D1:……;继续常规动作判断
……
ROTATE: MOV A,R7 ;旋转判断,将上一次传感器组合值赋给A
CJNE A,#06H,R1;对上一次传感器组合值判断,决定顺逆旋转
LJMPCLOCKWISE
R1:……;继续顺逆判断
……
CLOCKWISE:……;顺时针旋转动作
LJMP DELAYS
DELAYS:MOV A,R5
MOV R7,A;将本次传感器组合值赋给R7
LCALL DELAY;调用DELAYS子程序进行延时
LJMP SENSOR ;重新扫描传感器状态
END;程序结束

  结语

  根据上述设计思路,我们制作出寻迹机器人并进行了测试。测试场地如图4所示,黑色导引线宽度为3 cm,黑线周围区域均为白纸覆盖。测试结果表明:该寻迹机器人能在此复杂路线下平稳、顺利地沿着黑线走完全程,并在终点沿原路返回,达到了预期的目标。这为进一步研究复杂环境下的自动行走机器人提供了参考。

机器人寻迹测试图

  本文的创新点为:使用3个自制的红外光电传感器,以简单的设计和较少的硬件实现了复杂路线下机器人的寻迹。而基于该机器人双级转弯的设计思想,可以增加传感器数量、组成传感器阵列来实现多级转弯,从而对机器人的自主寻迹有着更为精确的控制。

  参考文献

[1] 韩毅,张雪峰.一种低成本寻迹机器人的实现[J].微计算机信息,2008,52:233235.
[2] 朱益斌,胡学龙,朱亚锋,等.自主式寻迹机器人小车的设计[J].国外电子测量技术,2006,25(7):4042.
[3] 何立民.MCS51系列单片机应用系统设计[M].北京:北京航空航天大学出版社,2003.


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

机器人? 寻迹系统? AT89C52?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈