自动变速风扇
本实验制作的自动变速风扇是利用超声波传感器检测风扇与人的距离,根据距离控制风扇的转速,即距离近时转速慢,距离远时转速快,以获得更加舒适的用户体验。
通过本实验学习超声波传感器的使用方法。
器材清单
Romeo、USB数据线、超声波传感器、风扇模块、公母线
超声波传感器
人们能听到声音是由于物体振动产生的,它的频率在20~20000Hz范围内,超过20000Hz称为超声波,低于20Hz的称为次声波。
如下图所示是本实验用到的型号为URM10的超声波传感器。该超声波传感器基于声呐原理,通过监测发射的一连串调制后的超声波以及回波的时间差来计算传感器与障碍物的距离值。其主要参数如下表所示,该超声波传感器有4个针脚,除了VCC和GND之外,Trig(超声波发射端)和Echo(超声波接收端)均连接数字针脚。
在使用超声波传感器时,应先将其插好在控制板上再通电,避免通电状态下的高电平使其产生误动作。如果产生此问题,重新断电再通电便可解决。
为了方便使用,Romeo上配备了超声波传感器专用接口,如下图。使用时,只需要将URM10超声波传感器插在该接口上即可,此时超声波传感器的Trig和Echo分别对应数字针脚8和12。
用超声波传感器测距
超声波测距利用了声波在发射后遇到障碍物能够反射回来的特性,在声波传输速度已知的前提下,就可以根据发射和接收的时间差计算出发射点到障碍物的实际距离。具体来说,超声波发射器向某一方向发射超声波,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物立即返回,超声波接收器收到反射波即刻停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离s,即s=340×t/2。这就是所谓的时间差测距法。
Mind+对超声波测距功能进行了封装,通过“Romeo”中的超声波模块便可测出超声波与障碍物间的距离,监测距离的返回值以“厘米”为单位,可以利用串口监视器读取测到的距离值,程序如下图所示。
映射
映射模块位于“运算符”中,它可以将一定范围内的数值(当前值)转化为另一范围内的数值(目标值),如下图所示。
映射模块可用形象图示表示,如下图,映射模块将被映射的数值成比例放大或者缩小了。
假如A量的取值为0~100,B量的取值为0~10,如下图,A量与B量呈10倍的正比例关系,那么当A量为20时,映射到B量时的值就是2。
实现过程
(一)硬件连接
准备器材,按照超声波传感器针脚说明,将超声波传感器模块连接到Romeo的超声波传感器接口处,将风扇模块接在Romeo的电机接线柱M1上,如下图所示。注意超声波传感器的Trig和Echo分别对应Romeo数字针脚8和12。
(二)编写程序
本程序采取的编写思路为:如果超声波传感器测得的距离大于40时,电机不转动,小于40时,电机转动的速度与超声波传感器测得的距离呈正比变化。
URM10超声波传感器探测距离是3~500cm,直流电机转速的数值范围是0~255。如果直接将超声波传感器探测的距离作为直流电机转速的数值,两者范围不匹配。
超声波测距数值上限500大于直流电机转速数值上限255,需要添加映射模块,将距离范围缩小到转速范围之内,如下图所示。在该程序中,风扇转速根据障碍物距离远近自动变化,可以用手由远到近挡住超声波传感器,观察风速。
由于电机载重不同,其转速的最小值也会不同,上图程序中目标值的下界60是预测风扇转速的最小值。进行实验的时候请自己检测一下实际风扇转速的值最小是多少,并记录下来。
程序上传以后,可能发现风扇转速变化并不明显。
出现上述风扇转速不明显的原因,可能是程序中要映射的值范围过大,导致自动变速效果不明显。因此,可以使用如果/否则模块对超声波传感器测距数值进行判断,缩小监测范围。
若超声波传感器测得距离小于40cm,则自动变速,否则风扇停止转动。在”运算符“模块中“小于”模块,优化后的程序如下。
(三)测试效果
上传程序,反复测试,观察自动变速风扇的效果是否符合预期。
拓展提升
结合声控风扇的内容,制作一个富有创意的智能风扇。比如使用声音控制风扇开关,再使用超声波传感器控制风扇转速。请尝试使用声音传感器以及超声波传感器制作属于自己的创意智能风扇。为了增加炫酷效果,还可以加上LED或者蜂鸣器。
评论