坦克车红外避障
1.实验目的:
下载好程序后,打开坦克车的电源开关,坦克车就会往前跑,如果遇到障碍物就会后退1秒然后右转1秒,如果没有障碍物,坦克车会一直往前跑。
2.入手准备:
积木坦克车*1
USB数据线*1
3.红外避障原理
红外传感器具有一对红外发射与接收管,发射管发射出一定频率的红外线。在一定范围内,如果没有障碍物,发射出去的红外线,因为传播的距离越来越远而逐渐减弱,最后消失。如果有障碍物,红外线遇到障碍物,会被被反射到达传感器接收头。注意,红外避障传感器不可以在阳光下使用,阳光会干扰红外传感器的信号,请在室内无阳光下使用。下图为红外避障传感器的位置。
4.编写程序
接下来我们开始编写积木坦克车红外避障的程序,编写完成之后,用microUSB数据线连接电脑和microbit主板,请点击Flash按钮,将程序下载到micro:bit主板上。
首先导入buildingbit的库:import buildingbit, 这里还需要用到display库;
display.off()关闭LED点阵屏。由于红外传感器与LED点阵屏有冲突,所以使用红外传感器前,需要关闭LED点阵屏,否则会出现错误;
avoid变量用于保存传感器返回的值,如果检测到障碍物,则buildingbit.avoid_sensor()返回True,如果检测不到障碍物则返回False;
如果检测到前方有障碍物,则运行buildingbit.car_back(100, 100, 1000)函数让小车后退,第一个参数控制左边电机速度(0~255),第二个参数控制右边电机速度(0~255),第三个参数是延迟时间(ms);
再运行buildingbit.car_spinright(100, 100, 1000)让小车右旋1秒,第一个参数控制左边电机速度(0~255),第二个参数控制右边电机速度(0~255),第三个参数是延迟(ms),表示小车右旋的时间,小车右旋的时间和速度都可以自己调节,来达到自己想要的效果。
当没有检测到障碍物时,小车一直向前运动。buildingbit.car_run(100, 100, 0)。
以上就是本次积木坦克车的程序。编写完成之后,大家别忘了把它下载到micro:bit主板上面哦~
如果出现下载失败的问题,请确认已经下载了buildingbit的库,如果没有请参考基础课程-课前准备-导入buildingbit库。
下载完成之后,看一下具体的效果和我们实验目的是不是一样的呢?
!注意事项:这个实验必须在室内进行,以减少太阳光对红外传感器的干扰哦。
程序代码:
请用MU软件打开本课程的坦克车红外避障.py文件查看。