第十四讲 红外线导航.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
#includeBoeBot.h #includeuart.h int P1_5state(void) { return (P10x20)?1:0; } int main(void) { bit irDetectLeft; while(1) { for( counter=0;counter 38;counter++) { P1_4=1; delay_nus(13); P1_4=0; delay_nus(13); } irDetectLeft=P1_5state(); printf(irDetectLeft=%d\n,irDetectLeft); delay_nms(100); } } 作业: 编制避障程序 在重复while循环之前,要做的最后一件事是发送脉冲给伺服电机。 P1_1=1; delay_nus(pulseLeft); P1_1=0; P1_0=1; delay_nus(pulseRight); P1_0=0; delay_nms(20); 第十四讲 红外线导航 第十四讲 红外线导航 第一讲 单片机概述 第一讲 单片机概述 第一讲 单片机概述 第一讲 单片机概述 第一讲 单片机概述 第一讲 单片机概述 第一讲 单片机概述 第一讲 单片机概述 第一讲 单片机概述 使用红外线前灯探测道路 宝贝车机器人使用红外线两极管LED作为前灯,他们发射红外光,在一些情况下,红外线从物体反射从机器人前进的方向折回。宝贝车机器人的眼睛是红外检测器。红外检测器发出信号来表明它们是否检测到从物体反射回的红外线。宝贝车机器人的大脑,MCS-51微控制器据此做出判断并基于这个传感器的输入控制伺服电机。 红外检测器 IR(红外线)检测器有内置的光滤波器,除了需要我们用它的内部的光敏二极管传感器检测的980 nm红外线,它几乎不允许其它光通过。红外检测器也有一个电子滤波器,它只允许大约 38.5 kHz 的信号通过。换句话说,检测器只寻找每秒闪烁 38,500次的红外光。 任务一:搭建并测试IR发射和探测器对 元件清单: (1) 两个红外检测器 (2) 两个IR LEDs (3) 两对IR LED套管 (4) 两个220 Ω电阻 (红-红-棕) (5) 两个1 kΩ电阻 (棕-黑-红) 测试红外发射探测器 本任务中,你要用P1_4发送持续1秒的 38.5kHz的红外光,如果红外光被小车路径上的物体反射回来,红外检测器将给微控制器发送一个信号,让它知道已经检测到反射回的红外光 发送1 ms 频率为 38.5 kHz的红外信号 for( counter=0;counter 38;counter++) { P1_4=1; delay_nus(13); P1_4=0; delay_nus(13); } irDetectLeft=P1_5state(); 当没有IR信号返回时,探测器的输出状态为高。当它探测到被物体反射的 38500 Hz和声时,它的输出为低。当发送红外信号后, IR探测器的输出处于低状态不到1毫秒,因此当发送完后立即将IR探测器的输出存储到变量中是很重要的。这些存储的值会显示在调试终端或被机器人用来导航。 例程: TestLeftIrPair.c 验证当你放一个物体在IR组前时,调试终端是否会显示0,当你将物体移开时,它是否显示1。 任务二:物体检测和红外干涉的实地测试 元件清单: (1) 两个红色LED (2) 两个220 Ω电阻 (红-红-棕) for(i=0;i1;i++) { ;} 这是一个for空操作语句,它什么也不做,但能产生延时。我们可以用示波器测量,它能产生约12us延时。 例程――TestIrPairsAndIndicators.c #includeBoeBot.h #includeuart.h int P1_5state(void) { return (P10x20)?1:0; } int P3_6state(void) { return (P30x40)?1:0; } int main(void) { int irDetectLeft,irDetectRight; while(1) { for( counter=0;counter125;counter++) { P1_4=1; P3_5=0; for(i=0;i1;i++) {;} P1_4=0; P3_5=0; for(i=0;i1;i++) {;} } //延时1ms左右 irDetectLeft=P1_5sta

文档评论(0)

zt1233 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档