机器人课程设计_第1页
机器人课程设计_第2页
机器人课程设计_第3页
机器人课程设计_第4页
机器人课程设计_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

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

文档简介

1、沈阳化工大学机器人课程设计专业:测控技术与仪器班级:测控0901姓名:许伟博学号:09130109目录第一章绪言2.1.1、 目的和意义2.1.2、 设计内容2.1.2.1、 机器人硬件2.1.2.2、 设计任务3.1.3、 运行框图3.第二章机器人触觉导航4.2、 安装并测试机器人胡须4.2、 测试触须传感器7.2、 C语言程序如下7.第三章机器人红外导航1.1使用红外线发射和接收器件探测道路11搭建并测试IR发射和探测器12测试红外发射探测器12探测和避开障碍物13第四章心得体会16第一章绪言目的和意义机器人涉及机械、电子、传感、控制等多个领域和学科。本课程设计是在机器人学课程的基础上,利

2、用多传感技术、控制技术实现机器人控制系统的综合与应用,达到锻炼学生综合设计能力的目的。设计内容本课程设计使用实验室已有的移动机器人。机器人有两个驱动轮、一个从动轮,驱动轮由舵机直接驱动。机器人控制器为89S52单片机。图1机器人结构简图设计任务利用多传感器技术,实现对机器人的轨迹规划及控制。具体为:控制机器人在规定的场地内避开障碍物走遍整个场地。场地长1.8m,宽1.5m,场地四周为高0.3m的挡板。场地如图2所示。运行框图第二章机器人触觉导航本章你将通过给你的机器人增加触觉传感器学习如何使用这些端口来获取外界信息。实际上,对于任何一个自动化系统(不仅仅是机器人),无非都是通过传感器获取外界信

3、息,通过接口进入计算机(或者单片机),由计算机或单片机根据反馈信息进行计算和决策,生成控制命令,然后通过输出接口去控制系统相应的执行机构,完成系统所要完成的任务。因此,学习如何使用单片机的输入接口同学习使用输出接口同等重要。许多自动化机械都依赖于各种触觉型开关,例如当机器人碰到障碍物时,接触开关就会察觉,通过编程让机器人躲开障碍物;旅客登机桥在靠近飞机时为了保护昂贵的飞机,在登机桥接口安装触须,当登机桥离飞机很近后触须就会碰到飞机,立即通知控制器提醒离飞机已经很近了,需要降低靠近速度;工厂利用触觉开关来计量生产线上的工件数量;在工业加工过程中,也被用来排列物体。在所有这些实例中,触觉开关提供的

4、输入通过计算机或者单片机处理后生成其它形式的程序化的输出。本章中,你将在机器人前端安装并测试一个称为胡须的触觉开关。你将对机器人大脑编程来监视触觉开关的状态,以及决定当它遇到障碍物时如何动作。最终的结果就是通过触觉给机器人自动导航。安装并测试机器人胡须编程让机器人通过触觉胡须导航之前,首先必须安装并测试胡须。图3所示是安装机器人触觉胡须所需的硬件元件清单,包括:.金属丝2根.平头M3X22盘头螺钉2个.13mm圆形立柱2个.M3尼龙垫圈2个.3-pin公-公接头2个.220。电阻2个.10kQ电阻2个安装胡须.拆掉连接主板到前支架的两颗螺钉.参考图4,进行下面操作螺钉依次穿过M3尼龙垫圈、13

5、mm圆形立柱螺钉穿过主板上的圆孔之后,拧进主板下面的支架中,但不要拧紧把须状金属丝的其中一个钩在尼龙垫圈之上,另一个钩在尼龙垫圈之下,调整它们的位置使它们横向交叉但又不接触拧紧螺钉到支架上参考接线图5,搭建胡须电路。注意:右边胡须状态信息输入是通过P1口的第4脚完成,而左边胡须状态信息输入是通过P2口的第3脚完成确定两条胡须比较靠近,但又不接触面包板上的3-pin头。推荐保持3mm的距离。图6所示是实际的参考接线图。.安装好触觉胡须的机器人如图7所示。图4安装机器人胡须7CC10KIpi;)y、s22GAAA220右胡须左胡须图5胡须电路示意图时工I图6教学底板上胡须接线图人图7安装好触须的机

6、器测试触须传感器先执行一段简单的程序,下面的程序是让小车前行的,修改参数调舵机,使舵机保持前行,然后在通过设置程序让左须子触碰障碍物时左转,右须子触碰障碍物是右转,这样进行调试,来检测传感器。死区程序很关键,以中断的方式写入,避免其一直困在墙角里出不来。C语言程序如下#include#includeintP1_4state(void)/瞅取P1_4的状态,右胡须return(P1&0x10)?1:0;intP2_3state(void)/瞅取P2_3的状态,左胡须return(P2&0x08)?1:0;voidForward(void)P1_1=1;delay_nus(1700);P1_1=0

7、;P1_0=1;delay_nus(1300);P1_0=0;delay_nms(20);voidsiqu(void)interrupt0if(conditionl)commandsforconditionlIf(condition2)commandsforbothcondition2andconditionlelsecommandsforconditio1butnotcondition2Elsecommandsfornotcondition1voidLeft_Turn(void)inti;for(i=1;i=26;i+)P1_1=1;delay_nus(1300);P1_1=0;P1_0=1

8、;delay_nus(1300);P1_0=0;delay_nms(20);voidRight_Turn(void)inti;for(i=1;i=26;i+)P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus(1700);P1_0=0;delay_nms(20);voidBackward(void)inti;for(i=1;i=65;i+)P1_1=1;delay_nus(1300);P1_1=0;P1_0=1;delay_nus(1700);P1_0=0;delay_nms(20);一intmain(void)inti=1;intz=0;uart_I

9、nit();printf(ProgramRunning!n);while(1)if(P1_4state()=0)&(P2_3state()=0)if(z=0)Backward。;向后Left_Turn();向左for(i;i100;i+)P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus(1300);P1_0=0;delay_nms(20);Left_Turn();向左z=1;elseBackward。;向后Right_Turn();向右for(i;i100;i+)P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_n

10、us(1300);P1_0=0;delay_nms(20);Right_Turn();向右z=0;elseif(P1_4state()=0)if(z=0)Backward。;向后Left_Turn();向左for(i;i100;i+)P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus(1300);P1_0=0;delay_nms(20);Left_Turn();向左z=1;elseBackward。;向后Right_Turn();向右for(i;i100;i+)P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus

11、(1300);P1_0=0;delay_nms(20);Right_Turn();向右z=0;elseif(P2_3state()=0)if(z=0)Backward。;向后Left_Turn();向左for(i;i100;i+)P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus(1300);P1_0=0;delay_nms(20);Left_Turn();向左z=1;elseBackward。;向后Right_Turn();向右for(i;i100;i+)P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus(1

12、300);P1_0=0;delay_nms(20);Right_Turn();向右z=0;elseForward();向前将上述程序下载到小车中进行调试第三章机器人红外导航现在许多遥控装置和PDA都使用频率低于可见光的红外线进行通信,而机器人则可以使用红外线进行导航。可以使用一些价格非常便宜且应用广泛的部件,让机器人的C51微控制器可以收发红外光信号,从而实现机器人的红外线导航。使用红外线发射和接收器件探测道路许多机器人使用雷达(RADAR)或者声纳(SONAR)来探测物体而不需同物体接触。我们使用红外光来照射机器人前进的路线,然后确定何时有光线从被探测目标反射回来,通过检测反射回来的红外光就

13、可以确定前方是否有物体。由于红外遥控技术的发展,现在红外线发射器和接收器已经很普及并且价格很便宜。这对于机器人爱好者而言是一个好消息。红外前灯你将要在机器人上建立的红外光探测物体系统在许多方面就象汽车的前灯系统。当汽车前灯射出的光从障碍物体反射回来时,人的眼睛就发现了障碍物体,然后大脑处理这些信息,并据此控制身体动作驾驶汽车。机器人使用红外线二极管LED作为前灯,如图8所示。12312-3.图8用红外光探测障碍物图9本章需要用到的新部件红外线二极管发射红外光,如果机器人前面有障碍物,红外线从物体反射回来,相当于机器人眼睛的红外检测(接收)器,检测到反射回的红外光线,并发出信号来表明检测到从物体

14、反射回红外线。机器人的大脑一一单片机AT89S52基于这个传感器的输入控制伺服电机。红外线(IR)接收/检测器有内置的光滤波器,除了需要检测的980nm波长的红外线外,它几乎不允许其它光通过。红外检测器还有一个电子滤波器,它只允许大约38.5kHz的电信号通过。换句话说,检测器只寻找每秒闪烁38,500次的红外光。这就防止了普通光源象太阳光和室内光对IR的干涉。太阳光是直流干涉(0Hz)源,而室内光依赖于所在区域的主电源,闪烁频率接近100或120Hz。由于120Hz在电子滤波器的38.5kHz通带频率之外,它完全被IR探测器忽略。搭建并测试IR发射和探测器本任务中,我们将搭建并测试红外线发射

15、和检测器。元件清单:(1)两个红外检测器(2)两个IRLED四个4700阻两个9013三极管搭建红外线前灯电路板的每个角安装一个IR组(IRLED和检测器)电路图如图10图10左侧和右侧IR组原理图测试红外发射探测器用P1_3发送持续1毫秒的38.5kHz的红外光,如果红外光被小车路径上的物体反射回耒,红外检测器将给微控制器发送一个信号,让它知道已经检测到反射回的红外光。让每个IRLED探测器组工作的关键是发送1毫秒频率为38.5kHz的红外信号,然后立刻将IR探测器的输出存储到一个变量中。下面是一个例子,它发送38.5kHz信号给连接到P1_3的IR发射器,然后用整型变量irDetectLe

16、ft存储连接到P1_2的IR探测器的输出。for(counter=0;counterinfPlSstate(vaid)rtturtiintaain(vniti)fintcounter:iniirVetectLeft.t();printf(Running!Ijt?.(1)f/or(counter=Orconn卡,03),Pl_30delay_nus(J3),irtJpfft?tLeft=Pi_2stateO,报收叵ltDaIi-eLLt=3L04U!:i.L+ft-JltDIkcILbEI=1:1T-3LLaEI;=4!口3:心门力:irDttMtLtft-lkrDltt-LLktts|ltD4

17、ImLLbEI=1GrD-ai-HcrELaEt-lltXmlLFeLD*i+d.L+fi.iwMixLLHLR当你将物体移开时是否显示irdetectleft=1?探测和避开障碍物改变触须程序使其适应IR检测和躲避调用函数VoidIRLaunch(unsignedcharIR)intcounterIf(IR=L)For(counter=0.counter38;counter+)/旌边发射LeftLaunch=1_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop

18、_();LeftLaunch=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();if(IRR)for(counter=0;counter38;counter+)/&边发射RightLaunch=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();RightLaunch=0;_nop_();_nop_();_n

19、op_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();修改if月初旬存储IR检测信息的变量。if(irDetectLeft0)&(irDetectRight0)/两边同时接收到红外线Left_Turn();Left_Turn();.elseif(irDetectLeft0)/只有左边接收到红外线Right_Turn();elseif(irDetectRight0)/只有右边接收到红外线Left_Turn();elseForward();.2验证机器人的行为和和运行程序RoamingWithIr

20、.c时除不需要接触是否非常像例程:RoamingWithIr.cfor(counter=0;counter38;counter+)侬射时间比胡须长LeftLaunch=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();LeftLaunch=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();if(IRR)/右

21、边发射for(counter=0;counter38;counter+)RightLaunch=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();RightLaunch=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();voidForward(void)向前行走子程序P1_1=1;delay_nus(170

22、0);P1_1=0;P1_0=1;delay_nus(1300);P1_0=0;delay_nms(20);.voidLeft_Turn(void)左转子程序inti;for(i=1;i=26;i+)P1_1=1;delay_nus(1300);P1_1=0;P1_0=1;delay_nus(1300);P1_0=0;delay_nms(20);.voidRight_Turn(void)右转子程序inti;for(i=1;i=26;i+)P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus(1700);P1_0=0;delay_nms(20);voidBackward(void)向后行走子程序inti;for(i=1;i=65;i+)P1_1=1;delay_nus(1300);P1_1=0;P1_0=1;delay_nus(1700);P1_0=0;delay_nms(20);).)intmain(void)intirDetectLeft,irDetectRight;uart_Init();printf(ProgramRunning!n);while(1)IRLaunch(R)

温馨提示

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

评论

0/150

提交评论