还剩7页未读,继续阅读
文本内容:
制作五接力机器人
一、任务描述场地上有机器人跑道,跑道两侧有黑色轨迹,接力区为黑色区域1号机器人将接力棒(乒乓球)传递给2号机器人,2号机器人把接力棒(乒乓球)传递给3号机器人,然后三号机器人再传递给四号机器人,四号机器人冲向终点区,在终点区停止场地示意图如图5—1所示起跑绻图5—1场地不意图
二、硬件组装机器人需要在跑道内行走并要产生接力,那么机器人最好的行走路线应该在跑道中间,而跑道两侧有黑色线,可以利用机器人的光电模块探测,保证机器人在跑道中间行走,机器人需要产生接力,应该有一个传递(接力)装置,机器人要识别到达接力区并产生接力需要一个碰撞装置接力机器人如图5-2所示图5—2接力机器人
三、任务难点分析
1.保证机器人在跑道中间行走解决方案可以在机器人的两侧分别装上两个光电模块,利用光电模块可以对跑道两侧的黑线进行检测保证机器人在跑道中间行走,考虑到接力区为黑色区域,因此光电模块应该是检测两条跑道线的外侧,这样可以提高完成任务的成功率
2.机器人如何知道到达接力区解决方案在进行接力的两个机器人的前方和后方分别装上碰撞传感器,考虑到有的接力区在跑道的弯道位置,因此接力机器人的前方和后方应分别装上两个碰撞传感器,并将其并联且接触面尽量扩大(可以提高成功率)
3.如何产生接力解决方案当第一台机器人检测到接力信号时启动传递装置将物体传递给第二台机器人,第二台机器人的碰撞传感器检测到信号后延时一段时间后再启动行走
4.机器人停止解决方案第四台机器人利用左右两侧的光电模块检测到全黑时说明机器人到达了停止线,此时让机器人强行前进一段时间后停止,即可让机器人停止在停止区
四、程序设计
1.输入/输出端口说明单片机输入/输出对应程序中的位变量引脚功能引脚左侧电机正转RBO pinO左侧电机反转RB1pinl右侧电机正转RB2pin2右侧电机反转RB3pin3电机使能控制端RB4pin4前碰撞开关RB6pin6RB7Pin7后碰撞开关电机正转(传递装置)RC1pin9RC2PinlO电机反转(传递装置)RC4pinl2左侧光电传感器(寻黑线)RC5pinl3左侧光电传感器(寻黑线)RC6pinl4右侧光电传感器(寻黑线)RC7pinl5右侧光电传感器(寻黑线)
2.程序流程图
3.程序清单(仅供参考,数据需要调整)号接力机器人程序rem1,2,3dirbO=%l1100000Yem定义0,1,2,3,4号端口为输出端口;5,6,7号rem端口为输入端口定义号端口为输出端口;dirbl=%l1110000rem8,9,10,1112,13,14,号端口为输入端口reml5将专用变量清pinb0=0rem PINB00将专用变量清pinb1=0rem PINB10机器人初始停止毫秒pause100rem100start1:机器人后碰撞或者声控模块产生信号执if pin7=0then startrem rem行STARTgoto start1start:pinb0=0pause2000rem机器人停止2秒al:变量累加x=x+l remX机器人前碰撞产生信号执行if pin6=0then a2rem A2if x400then a3rem变量X的值大于400执行A3左侧光电模块有if pin12=1or pin13=1then zzrem传感器识别到黑色执rem行左转rem右侧光电模块有一个if pin14=1or pin15=1then yzrem传感器识别到黑色执rem行右转remgotoqjyz:机器人调速右转pinb0=%00011001rempause15pinb0=0pause1goto alzz:pinb0=%00010110机器人调速左转pause15rempinb0=0pause1goto alpinb0=%00010101pause1qjpinb0=0机器人调速前进rempause2goto ala3:机器人前碰撞产生信号执行if pin6=0then a2rem A2左侧光电模块有一个if pin12=1or pin13=1then zzl rem传感器识别到黑色执rem行左转rem右侧光电模块有一个if pin14=1or pin15=1then yzlrem传感器识别到黑色执rem行右转remgoto qj1yzl:机器人调速右转pinb0=%00011001rempause10pinb=pause1goto a3zzl:pinb0=%00010110pause1pinb0=0pause1机器人调速左转remgoto a3qjipinb0=%00010101pause5pinb0=0机器人调速前进pause1remgoto a3a2:pin9=lpin10=0pause1000机器人启动传递装置并停止pin9=0rempin10=1pause1000pinbl=0pinb0=0pause10000end4号接力机器人程序(仅供参考,数据需要调整)dirbO=%l1100000vem定义31,2,3,4号端口为输出端口;5,6,7号端口为输入端口rem定义号端口为输出端口dirbl=%l1110000rem8,9,10,H;12,13,14,号端口为输入端口reml5pinbO=O if pin rem将专用变量P1NB0清0if pin14=1or pin15=114=1and thenyzpinbl=O rem将专用变量P1NB1清0pin15=1pin12=1and pin13=1thenpause100机器人初始停止毫秒rem100左侧和右侧的光电模st remstart1:机器人后碰撞产生信号执行if pin7=0then startrem START块都识别到黑色执行goto start1rem STstart:左侧光电模块有rem机器人停止秒pinb0=0rem2一个传感器识别rempause2000到黑色执行左转al:and右remx=x+lrem变量X累加侧光电if pin6=0then a2rem机器人前碰撞产生信号执行A2if x400then a3if pinrem变量X的值大于400执行A3模块有12=1or一个传pin13=1then zz感器识别到黑色执行右转rem机器人调速右转pinb0=%00011001rempause15pinb0=0yz:pause1goto al机器人调速左转pinb0=%00010110rempause15pinb0=0zz:pause1goto al机器人调速前进pinb0=%00010101rempause1pinb0=0qj pause2goto alifpin6=0then a2rem机器人前碰撞产生信号执行A2gotoqjif pin14=1and pinl5=l andpin12=1and pinl3=l thenst左侧和右侧的光电模块都识别到黑色执行rem STa3:ifpin12=1or pin13=1then zzl左侧光电模块有一个传感器识别到黑色执行左转remif pin14=1or pin15=1then yzl右侧光电模块有一个传感器识别到黑色执行右转remgoto qj1yzl:机器人调速右转pinb0=%00rem011001pause10pinb0=0pause1zzl:goto a3机器人调速左转rempinb0=%00010110pause10pinb0=0pause1qjigoto a3机器人调速前进rempinb0=%00010101pause5pinb0=0a2:pause1机器人启动传递装置remgoto a3pin9=l pin10=0pause1000pin9=0pin10=1pause1000pinbl=0st:pinb0=0机器人调速停止pinb0=0rempausepause5000010000end。