马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
今天在逛网站的时候无意间看到一个外国网站有一篇躲避障碍机器人的介绍。感觉作者对这个机器人的描述非常详细,把它翻译过来学习一下!
[size=0.83em]2014-11-6 16:49 上传
下载附件 [size=0.83em](38.79 KB)
漫游者
漫游者是一个障碍躲避机器人,它的功能是在不碰到驱动器的情况下躲避路上的任何障碍。
漫游者利用一个与宝丽来声纳模块安装在伺服传感器元件来检测障碍。该传感器装在机器人前 面一个黑色的物体上。
伺服系统是用传感器来从左到右扫描,以此来给于机器人更广泛的视野。
当它检测到的障碍,它会向左或向右转弯,这取决于方向传感器所面对障碍的方向。如果它检测到一个障碍在左边就会向右转,如果障碍正对着它,它会继续向左检测,没什么比这更复杂的了。
漫游者利用差动转向来实现功能,是由机器人的两个前轮驱动和安装在伺服系统的连续旋转来改进的。在后面的小齿轮是一个脚轮能使机器人保持直立。
转向如下:当漫游者想前进,两个前轮开始转动了。当他想转左,在右边的车轮速度不变而左边的车轮落后。同样地,当它想要向右转弯,该左轮转动,而右车轮落后。
该机器人的芯片所完整控制的有:传感器、显示系统、动力系统、性能。
使用宝贝机器人也可以做出类似的简单功能
该机器人本使用红外线探测器进行传感,因外线探测器不足,使用红色灯来代替,其运作代码如下:
'{$STAMP BS2}'Stamp directive.'{$PBASIC 2.5}'PBASIC directive
irDetectLeft VAR Bit
irDetectRight VAR Bit
pulseLeft VAR Word
pulseRight VAR Word
loopCount VAR Byte
pulseCount VAR Byte
FREQOUT 4,2000,3000
DO
FREQOUT 8,1,38500
irDetectLeft=IN9
FREQOUT 2,1,38500
irDetectRight=IN0
IF (irDetectLeft=0) AND (irDetectRight=0) THEN
pulseCount=1
pulseLeft=850
pulseRight=650
ELSEIF (irDetectRight=1) THEN
pulseCount=10
pulseLeft=650
pulseRight=650
ELSEIF (irDetectLeft=0) THEN
pulseCount=10
pulseLeft=850
pulseRight=850
ELSE
pulseCount=15
pulseLeft=850
pulseRight=650
ENDIF
FOR loopCount=1 TO pulseCount
PULSOUT 13,pulseLeft
PULSOUT 12,pulseRight
DPAUSE 20
NEXT
LOOP
|