本章节我们学习使用超声波传感器,并且利用超声波传感器来实现机器人避障效果
知识要点
通常我们的耳朵听不到 20 千赫 (kHZ)以上的声音,(前面章节我们说过 声音是由振动产生的,10KHz,就是 相当于每秒中振动 20 千次,就是 2 万 次) ,这种 20 千赫以上的音波被称 为”超声波”,在夜间飞行的蝙蝠能够 发出这类超音波,蝙蝠的眼睛是弱 视,很难看清东西。它主要依靠超声 波来定位而不至于撞到墙壁上。声波 由蝙蝠的喉咙发出,并由耳朵接收, 根据接收到的声波可以判断前方物体 的位置。超声波传感器就是根据蝙蝠这个特点发明的。
机器人的两个眼睛就是超声波模块。一个眼睛是发送,一个眼睛是接收,超声波传感器可 以探知前方物体的距离。
使用下面这个积木就可以读取超声波的数据了,返回的是一个整数的距离数值。
下面通过一个简单是示例程序演示如果使用超声波模块,使用显示数字积木显示当前的超声波数值
程序下载到板子上运行后点阵屏会显示超声波测量的距离,如果数值超过个位数,屏幕会滚动显示。
当然也可以通过条形图的方式显示,距离越远点亮的LED越多,距离越近点亮的LED越少。
这一节我们通过超声波来实现检测障碍物的功能,机器人开机时向前运动,直到遇到障碍物停止。
程序不断从超声波检测前方障碍物的距离,当距离大于15cm时向前运动,当距离小于15cm时停止运动。需要注意的是开机时设置舵机为90度,确保超声波面向正前方。
这一节我们稍微修改一下程序,让机器人遇到障碍物时右转避开障碍物。
这一节我们加上舵机控制,遇到障碍物试,测量左右两边的距离,根据左边两边的距离选择最远的方向前进。
程序中添加rdis ,ldis变量分别表示右边距离和左边距离。通过判读这两个距离选择左转还是右转。
需要注意的是舵机转动的时候需要一定的转动时间,所以需要添加一定的延时等待舵机转动到指定的角度才测量距离。