机器人距离探测.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
机器人距离探测 在第六讲中,你学会了用红外传感器探测是否有物体挡在机器人的前方路线上而不用接触 物体。接下来你有没有想到,要是能探测到距离障碍物有多远不是更好吗?非接触探测物体距 离通常是声纳完成的任务:它发送出一组超声波脉冲,然后记录下被物体反射回来的声波所需 的时间,然后乘以超声波的传播速度的一半,就可以计算出距离物体有多远。本章并不使用声 纳传感器,仍旧采用前面章节中所使用过的非常类似的电路与红外线传感器来探测物体的距离。 由于机器人可以检测到物体的距离,你就可以编程让机器人跟随物体行走而不会碰上它。你也 可以编程让机器人沿着白色背景上的黑色轨迹行走。 下面将用同前第六讲中一样的IR LED/探测电路来探测距离。 如果该电路仍然完好的在你的机器人上,确认红外线LED电路中含有1k欧姆的电阻。 如果你已经拆掉了该电路,请参照第六讲的内容重新搭建。 新增工具和原料: (1) 尺子 (2) 一张白纸 任务1:测试扫描频率 图7-1显示的是一个特殊品牌红外线传感器数据 表(Panasonic PNA4602M)的频率特性图。这个特 性图显示了红外线传感器在接收到不同于38.5 kHz 频率红外线信号时其敏感程度随频率变化的曲线 图。例如,当你发送频率为40 kHz的信号给传感器 时,它的灵敏度是频率为38.5 kHz的50%。如果红外 LED发送频率为42 kHz,探测器的灵敏度是频率为 38.5 kHz的20%左右。因此当你采用让探测器灵敏度 很底的频率的红外线时,为了让探测器探测到红外 线的反射,物体必须离探测器更近以便让反射的红 外光更强。 从另一个角度来考虑就是,使用最高灵敏度红 外线频率可以探测最远距离的物体,较低灵敏度的 频率可以探测较近距离物体。这样,采用红外线探 测距离就简单了。选择5个不同频率的红外线,从最 高灵敏度频率到最低灵敏度进行扫描测试。首先用最高灵敏度频率,如果物体被探测到了,就 让仅次于它的高灵敏度频率测试,观察是否可以探测到,当探测器检测不到的相应的红外线频 率时,你就可以以此推断机器人到物体的距离。 用频率扫描进行编程做距离探测 下面用图7-2说明机器人如何用红外发射频率扫描进行距离探测。在这个例子中,目标物体 在区域3。也就是说,当机器人发送37500 Hz和38250Hz频率的红外线时能发现物体,发送39500 Hz 、40500 Hz 以及41500 Hz频率的红外线就不能发现物体。如果你移动物体到区域2,那么发 送37500 Hz、 38250 Hz以及39500Hz的红外线可以发现物体,而发送40500Hz和41500Hz频率的 红外线就不能发现物体。 为了对红外线频率进行扫描,你要用FREQOUT命令发送5种不同的频率的红外线信号并测 试在每种频率下红外线探测器是否可以发现目标。由于每种频率之间的间隔不均匀,因此不宜 使用FOR…NEXT 循环的STEP算子。你可以用DATA 和 READ,但会比较麻烦。你也可以用 五种不同的FREQOUT命令,但这样会浪费程序空间。最好的办法采用LOOKUP指令,它可以 储存一小段你想要依次用到的频率数值到一个列表中,然后通过一个索引使用表中的数值。命 令LOOKUP的用法定义如下: LOOKUP Index, [Value0, Value1, …ValueN], Variable 如果变量Index的取值为0,那么方括号中Value0的值将被赋给变量Variable。如果变量Index 的取值为1,那么方括号中Value1的值将被赋给变量Variable。列表中可以储存256个数值,但对 于下面的例程而言,你只需要5个数值。下面是怎样使用它的例子: FOR freqSelect = 0 TO 4 LOOKUP freqSelect,[37500,38250,39500,40500,41500],irFrequency FREQOUT 8,1, irFrequency irDetect = IN9 Commands not shown... NEXT 在FOR…NEXT 循环语句第一次执行时,freqSelect 的值为0,所以LOOKUP 命令把37500 赋予变量 irFrequency 。因为在执行命令LOOKUP 之后,变量irFrequency值为37500, 所以 FREQOUT 发送该频率到与P8连接的红外线发光二极管上。和前面章节中一样,数值IN9 保存 到变量irDetect 。在FOR…NEXT 循环语句第二次执行时,freqSelect 的值为1,所以LOOKUP 命 令把38250赋予变量 irFrequency 。第三次重复上述工作时,把39500赋予变量 irFrequency , 依次类推。 例程――TestL

您可能关注的文档

文档评论(0)

精品报告 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档