超音波自动避障
这篇教学会延伸“超音波隔空推车”文章范例,当 micro:bit 自走车 ( MoonCar 登月小车 ) 自己移动时,透过超音波感测器侦测距离,只要侦测到障碍物会自动转弯,让 MoonCar 变成“自动避障”自走车。
- 操作 MoonCar 需要加载对应的扩充积木,请先参考:加载 MoonCar 的程序积木
- 更多信息:ICShop MoonCar 官方网站
超音波侦测到障碍物,自动转弯
使用“重复无限次”、“逻辑判断”以及“超音波距离感测器”的积木,判断超音波感测器接收的数值小于 5 厘米时,将 MoonCar 左转 0.5 秒,大于或等于 10 厘米时,让 MoonCar 停止移动,完成后可以用障碍物放在 MoonCar 前方,观察 MoonCar 是否原地旋转。
超音波避障自走车
将程序稍做修改,加入变数 run,搭配按钮 A 与按钮 B 作为启动与停止的判断,并让 MoonCar 在前方没有障碍物时可以往前移动,就可以实现超音波避障自走车的效果。
参考:变数积木。
修正超音波误差
实作过程中,因为超音波是透过音波反射侦测距离,可能会遇到“有时出现超音波侦测数值跳动”的状况,这时可以使用下方的程序进行修正:
- 启动时新增一个数组。
- 透过循环侦测超音波数值时,先将数值记录在数组中。
- 如果数组中两个数值的差异过大,就不采纳该次数值。
范例解答
延伸练习
如果已经熟悉了 MoonCar 超音波避障自走车的原理,还可以尝试更多好玩的作法:
- 尝试找出更好的修正超音波误差方法。
- 试着用障碍物摆出一个迷宫,看看 MoonCar 是否能顺利走到终点。
微信扫码关注
抖音扫码关注