您好,欢迎访问三七文档
机器人制作与创新1制作五接力机器人一、任务描述场地上有机器人跑道,跑道两侧有黑色轨迹,接力区为黑色区域。1号机器人将接力棒(乒乓球)传递给2号机器人,2号机器人把接力棒(乒乓球)传递给3号机器人,然后三号机器人再传递给四号机器人,四号机器人冲向终点区,在终点区停止。场地示意图如图5-1所示:图5-1场地示意图二、硬件组装机器人需要在跑道内行走并要产生接力,那么机器人最好的行走路线应该在跑道中间,而跑道两侧有黑色线,可以利用机器人的光电模块探测,保证机器人在跑道中间行走,机器人需要产生接力,应该有一个传递(接力)装置,机器人需要识别到达接力区并产生接力需要一个碰撞装置。接力机器人如图5-2所示。图5-2接力机器人三、任务难点分析1.保证机器人在跑道中间行走解决方案:可以在机器人的两侧分别装上两个光电模块,利用光电模块可以对跑道两侧的黑线进行检测保证机器人在跑道中间行走,考虑到接力区为黑色区域,机器人制作与创新2因此光电模块应该是检测两条跑道线的外侧,这样可以提高完成任务的成功率。2.机器人如何知道到达接力区解决方案:在进行接力的两个机器人的前方和后方分别装上碰撞传感器,考虑到有的接力区在跑道的弯道位置,因此接力机器人的前方和后方应分别装上两个碰撞传感器,并将其并联且接触面尽量扩大(可以提高成功率)3.如何产生接力解决方案:当第一台机器人检测到接力信号时启动传递装置将物体传递给第二台机器人,第二台机器人的碰撞传感器检测到信号后延时一段时间后再启动行走。4.机器人停止解决方案:第四台机器人利用左右两侧的光电模块检测到全黑时说明机器人到达了停止线,此时让机器人强行前进一段时间后停止,即可让机器人停止在停止区。四、程序设计1.输入/输出端口说明单片机输入/输出引脚对应程序中的位变量引脚功能RB0pin0左侧电机正转RB1pin1左侧电机反转RB2pin2右侧电机正转RB3pin3右侧电机反转RB4pin4电机使能控制端RB6pin6前碰撞开关RB7Pin7后碰撞开关RC1pin9电机正转(传递装置)RC2Pin10电机反转(传递装置)RC4pin12左侧光电传感器(寻黑线)RC5pin13左侧光电传感器(寻黑线)RC6pin14右侧光电传感器(寻黑线)RC7pin15右侧光电传感器(寻黑线)2.程序流程图机器人制作与创新33.程序清单(仅供参考,数据需要调整)rem1,2,3号接力机器人程序否是否是否否否否是否是是是是否定义输入输出端口Pin7=0(pin12=1)or(pin13=1)(pin14=1)or(pin15=1)前进左转右转启动投篮装置停止100毫秒X=x+1Pin6=0x400Pin6=0是停止(pin12=1)or(pin13=1)左转(pin14=1)or(pin15=1)右转前进机器人制作与创新4dirb0=%11100000rem定义0,1,2,3,4号端口为输出端口;5,6,7号rem端口为输入端口dirb1=%11110000rem定义8,9,10,11号端口为输出端口;12,13,14,rem15号端口为输入端口pinb0=0rem将专用变量PINB0清0pinb1=0rem将专用变量PINB1清0pause100rem机器人初始停止100毫秒start1:ifpin7=0thenstartrem机器人后碰撞或者声控模块产生信号rem执行STARTgotostart1start:pinb0=0pause2000rem机器人停止2秒a1:x=x+1rem变量X累加ifpin6=0thena2rem机器人前碰撞产生信号执行A2ifx400thena3rem变量X的值大于400执行A3if(pin12=1)or(pin13=1)thenzzrem左侧光电模块有rem传感器识别到黑色执rem行左转if(pin14=1)or(pin15=1)thenyzrem右侧光电模块有一个rem传感器识别到黑色执rem行右转gotoqjyz:pinb0=%00011001rem机器人调速右转pause15pinb0=0pause1gotoa1zz:pinb0=%00010110rem机器人调速左转pause15pinb0=0pause1gotoa1qj:pinb0=%00010101rem机器人调速前进pause1pinb0=0pause2gotoa1a3:机器人制作与创新5ifpin6=0thena2rem机器人前碰撞产生信号执行A2if(pin12=1)or(pin13=1)thenzz1rem左侧光电模块有一个rem传感器识别到黑色执rem行左转if(pin14=1)or(pin15=1)thenyz1rem右侧光电模块有一个rem传感器识别到黑色执rem行右转gotoqj1yz1:pinb0=%00011001rem机器人调速右转pause10pinb0=0pause1gotoa3zz1:pinb0=%00010110rem机器人调速左转pause10pinb0=0pause1gotoa3qj1:pinb0=%00010101rem机器人调速前进pause5pinb0=0pause1gotoa3a2:pin9=1rem机器人启动传递装置并停止pin10=0pause1000pin9=0pin10=1pause1000pinb1=0pinb0=0pause10000end4号接力机器人程序:(仅供参考,数据需要调整)dirb0=%11100000rem定义0,1,2,3,4号端口为输出端口;5,6,7号rem端口为输入端口dirb1=%11110000rem定义8,9,10,11号端口为输出端口;12,13,14,rem15号端口为输入端口机器人制作与创新6pinb0=0rem将专用变量PINB0清0pinb1=0rem将专用变量PINB1清0pause100rem机器人初始停止100毫秒start1:ifpin7=0thenstartrem机器人后碰撞产生信号执行STARTgotostart1start:pinb0=0rem机器人停止2秒pause2000a1:x=x+1rem变量X累加ifpin6=0thena2rem机器人前碰撞产生信号执行A2ifx400thena3rem变量X的值大于400执行A3if(pin14=1)and(pin15=1)and(pin12=1)and(pin13=1)thenstrem左侧和右侧的光电模块rem都识别到黑色执行STif(pin12=1)or(pin13=1)thenzzrem左侧光电模块有一个传感rem器识别到黑色执行左转if(pin14=1)or(pin15=1)thenyzrem右侧光电模块有一个传感器rem识别到黑色执行右转gotoqjyz:pinb0=%00011001rem机器人调速右转pause15pinb0=0pause1gotoa1zz:pinb0=%00010110rem机器人调速左转pause15pinb0=0pause1gotoa1qj:pinb0=%00010101rem机器人调速前进pause1pinb0=0pause2gotoa1a3:ifpin6=0thena2rem机器人前碰撞产生信号执行A2if(pin14=1)and(pin15=1)and(pin12=1)and(pin13=1)thenstrem左侧和右侧的光电模块都识别到黑色执行ST机器人制作与创新7if(pin12=1)or(pin13=1)thenzz1rem左侧光电模块有一个传感器识别到黑色执行左转if(pin14=1)or(pin15=1)thenyz1rem右侧光电模块有一个传感器识别到黑色执行右转gotoqj1yz1:pinb0=%00011001rem机器人调速右转pause10pinb0=0pause1gotoa3zz1:pinb0=%00010110rem机器人调速左转pause10pinb0=0pause1gotoa3qj1:pinb0=%00010101rem机器人调速前进pause5pinb0=0pause1gotoa3a2:pin9=1rem机器人启动传递装置pin10=0pause1000pin9=0pin10=1pause1000pinb1=0pinb0=0pause10000st:pinb0=0rem机器人调速停止pause50000end机器人制作与创新8
本文标题:制作五 接力机器人
链接地址:https://www.777doc.com/doc-45438 .html