制作五 接力机器人.doc_第1页
制作五 接力机器人.doc_第2页
制作五 接力机器人.doc_第3页
制作五 接力机器人.doc_第4页
制作五 接力机器人.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

制作五 接力机器人一、 任务描述场地上有机器人跑道,跑道两侧有黑色轨迹,接力区为黑色区域。1号机器人将接力棒(乒乓球)传递给2号机器人,2号机器人把接力棒(乒乓球)传递给3号机器人,然后三号机器人再传递给四号机器人,四号机器人冲向终点区,在终点区停止。场地示意图如图51所示:图51 场地示意图二、 硬件组装机器人需要在跑道内行走并要产生接力,那么机器人最好的行走路线应该在跑道中间,而跑道两侧有黑色线,可以利用机器人的光电模块探测,保证机器人在跑道中间行走,机器人需要产生接力,应该有一个传递(接力)装置,机器人需要识别到达接力区并产生接力需要一个碰撞装置。接力机器人如图52所示。图52 接力机器人三、任务难点分析1 保证机器人在跑道中间行走解决方案:可以在机器人的两侧分别装上两个光电模块,利用光电模块可以对跑道两侧的黑线进行检测保证机器人在跑道中间行走,考虑到接力区为黑色区域,因此光电模块应该是检测两条跑道线的外侧,这样可以提高完成任务的成功率。2 机器人如何知道到达接力区解决方案:在进行接力的两个机器人的前方和后方分别装上碰撞传感器,考虑到有的接力区在跑道的弯道位置,因此接力机器人的前方和后方应分别装上两个碰撞传感器,并将其并联且接触面尽量扩大(可以提高成功率)3 如何产生接力解决方案:当第一台机器人检测到接力信号时启动传递装置将物体传递给第二台机器人,第二台机器人的碰撞传感器检测到信号后延时一段时间后再启动行走。4 机器人停止解决方案:第四台机器人利用左右两侧的光电模块检测到全黑时说明机器人到达了停止线,此时让机器人强行前进一段时间后停止,即可让机器人停止在停止区。四、程序设计1输入/输出端口说明单片机输入/输出引脚对应程序中的位变量引脚功能RB0pin0左侧电机正转RB1pin1左侧电机反转RB2pin2右侧电机正转RB3pin3右侧电机反转RB4pin4电机使能控制端RB6pin6前碰撞开关RB7Pin7后碰撞开关RC1pin9电机正转(传递装置)RC2Pin10电机反转(传递装置)RC4pin12左侧光电传感器(寻黑线)RC5pin13左侧光电传感器(寻黑线)RC6pin14右侧光电传感器(寻黑线)RC7pin15右侧光电传感器(寻黑线)2程序流程图否是否是否否否否是否是是是是否定义输入输出端口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)右转前进3程序清单(仅供参考,数据需要调整)rem 1,2,3号接力机器人程序dirb0=%11100000 rem定义0,1,2,3,4号端口为输出端口;5,6,7号rem端口为输入端口dirb1=%11110000 rem定义8,9,10,11号端口为输出端口;12,13,14,rem15号端口为输入端口pinb0=0 rem将专用变量PINB0清0pinb1=0 rem将专用变量PINB1清0pause 100 rem机器人初始停止100毫秒start1: if pin7=0 then start rem机器人后碰撞或者声控模块产生信号rem执行START goto start1start: pinb0=0 pause 2000 rem机器人停止2秒a1: x=x+1 rem变量X累加 if pin6=0 then a2 rem机器人前碰撞产生信号执行A2 if x400 then a3 rem变量X的值大于400执行A3 if (pin12=1) or (pin13=1) then zz rem左侧光电模块有rem传感器识别到黑色执rem行左转 if (pin14=1) or (pin15=1) then yz rem右侧光电模块有一个rem传感器识别到黑色执rem行右转 goto qjyz: pinb0=%00011001 rem机器人调速右转 pause 15 pinb0=0 pause 1 goto a1zz: pinb0=%00010110 rem机器人调速左转 pause 15 pinb0=0 pause 1 goto a1qj: pinb0=%00010101 rem机器人调速前进 pause 1 pinb0=0 pause 2 goto a1a3: if pin6=0 then a2 rem机器人前碰撞产生信号执行A2 if (pin12=1) or (pin13=1) then zz1 rem左侧光电模块有一个rem传感器识别到黑色执rem行左转 if (pin14=1) or (pin15=1) then yz1 rem右侧光电模块有一个rem传感器识别到黑色执rem行右转 goto qj1yz1: pinb0=%00011001 rem机器人调速右转 pause 10 pinb0=0 pause 1 goto a3zz1: pinb0=%00010110 rem机器人调速左转 pause 10 pinb0=0 pause 1 goto a3qj1: pinb0=%00010101 rem机器人调速前进 pause 5 pinb0=0 pause 1 goto a3a2: pin9=1 rem机器人启动传递装置并停止 pin10=0 pause 1000 pin9=0 pin10=1 pause 1000 pinb1=0 pinb0=0 pause 10000 end4号接力机器人程序:(仅供参考,数据需要调整)dirb0=%11100000 rem定义0,1,2,3,4号端口为输出端口;5,6,7号rem端口为输入端口dirb1=%11110000 rem定义8,9,10,11号端口为输出端口;12,13,14,rem15号端口为输入端口pinb0=0 rem将专用变量PINB0清0pinb1=0 rem将专用变量PINB1清0pause 100 rem机器人初始停止100毫秒start1: if pin7=0 then start rem机器人后碰撞产生信号执行START goto start1start: pinb0=0 rem机器人停止2秒 pause 2000 a1: x=x+1 rem变量X累加 if pin6=0 then a2 rem机器人前碰撞产生信号执行A2 if x400 then a3 rem变量X的值大于400执行A3 if (pin14=1) and (pin15=1) and (pin12=1) and (pin13=1) then st rem左侧和右侧的光电模块rem都识别到黑色执行ST if (pin12=1) or (pin13=1) then zz rem左侧光电模块有一个传感rem器识别到黑色执行左转 if (pin14=1) or (pin15=1) then yz rem右侧光电模块有一个传感器rem识别到黑色执行右转 goto qjyz: pinb0=%00011001 rem机器人调速右转 pause 15 pinb0=0 pause 1 goto a1zz: pinb0=%00010110 rem机器人调速左转 pause 15 pinb0=0 pause 1 goto a1qj: pinb0=%00010101 rem机器人调速前进 pause 1 pinb0=0 pause 2 goto a1a3: if pin6=0 then a2 rem机器人前碰撞产生信号执行A2 if (pin14=1) and (pin15=1) and (pin12=1) and (pin13=1) then st rem左侧和右侧的光电模块都识别到黑色执行ST if (pin12=1) or (pin13=1) then zz1 rem左侧光电模块有一个传感器识别到黑色执行左转 if (pin14=1) or (pin15=1) then yz1 rem右侧光电模块有一个传感器识别到黑色执行右转 goto qj1yz1: pinb0=%00011001 rem机器人调速右转 pause 10 pinb0=0 pause 1 goto a3zz1: pinb0=%00010110 rem机器人调速左转 pause 10 pinb0=0 pause 1 goto a3qj1: pinb0=%

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论