【精选】04智能机器人红外导航.pdf

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【精选】04智能机器人红外导航

智能机器人红外线导航 论 文 学院名称 :电子信息工程技术 专业班级 :电信11301 学生姓名 :小博聊天机器人 学 号 QQ: З 978698⒊ 指导教师 : 杨杰 目录 一、引言1 二.搭建并测试IR发射和探测器. 2 三.探测和避开障碍物6 四.高性能的IR 导航8 五.俯视的探测器10 六.总结 . 12 参考文献 . 13 一.引言 许多机器人使用雷达 (RADAR)或者声纳 (SONAR)来探测物体而不需要同物体接触。本文的 方法是使用红外光来照射机器人前进的路线,然后确定何时有光线从被探测目标反射回来, 通过检测反射回来的红外光就可以确定前方是否有物体。由于红外遥控技术的发展,现在红 外线发射器和接收器已经很普及并且价格很便宜。 机器人上建立的红外光探测物体系统在许多方面就象汽车的前灯系统。当汽车前灯射出的光 从障碍物体反射回来时,人的眼睛就发现了障碍物体,然后大脑处理这些信息,并据此控制 身体动作驾驶汽车。机器人使用红外线二极管LED作为前灯。 红外线二极管发射红外光,如果机器人前面有障碍物,红外线从物体反射回来,相当于机器 人眼睛的红外检测 (接收)器,检测到反射回的红外光线,并发出信号来表明检测到从物体 反射回红外线。机器人的大脑——单片机AT89S52基于这个传感器的输入控制伺服电机。红 外线(IR)接收/检测器有内置的光滤波器,除了需要检测的980 nm波长的红外线外,它几 乎不允许其它光通过。 二.搭建红外线前灯 1.电路板的每个角安装一个IR组(IRLED和检测器)。 断开主板和伺服系统的电源 建立图5-3所示的电路,可参考实物图5-4 2. 程序 #includeBoeBot.h #includeuart.h int P1_2state(void) { return (P10x04)?1:0; } int main(void) { int counter; int irDetectLeft; uart_Init(); printf(Program Running!\n); while(1) { for(counter=0;counter38;counter++) { P1_3=1; delay_nus(13); P1_3=0; delay_nus(13); } 三.探测和避开障碍物 1.没有检测到物体时,输出为高;检测到物体时,输出为低。本任务中,更改程序 RoamingWithWhiskers.c使它适用于IR检测器。 2.程序 #includeBoeBot.h #includeuart.h #includeintrins.h #define LeftIR P1_2 //左边红外接收连接到P1_2 #define RightIR P3_5 //右边红外接收连接到P3_5 #define LeftLaunch P1_3 //左边红外发射连接到P1_3 #define RightLaunch P3_6 //右边红外发射连接到P3_6 void IRLaunch(unsigned char IR) { int counter; if(IR==L) //左边发射 for(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(IR==R) //右边发射 for(counter=0;counter38;counter++) { RightLaunch=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _n

您可能关注的文档

文档评论(0)

yxutcangfp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档