dxabdepl 发表于 2021-10-28 15:17:20

玩转Arduino手机编程——超声波测距没那么玄乎

本帖最后由 dxabdepl 于 2021-10-28 15:17 编辑

由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而经常用于距离的测量。   测量原理:超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2 。这就是所谓的时间差测距法。https://p26.toutiaoimg.com/origin/pgc-image/998cc63a2a1f4c0eb3c50161c10b36a5?from=pc
超声波测距原理
今天小蜗牛就带领大家揭开超声波测距的神秘面纱,并基于蜗牛控制器和HC-SR04市面上最常见的超声波模块,打造一款极具性价比的超声波测距仪。一、所需器件
[*]蜗牛控制器
https://p26.toutiaoimg.com/origin/pgc-image/fc0ba32f3a76466c90faf7c898bec84d?from=pc
蜗牛控制器:完全兼容Arduino,支持手机编程

[*]HC-SR04超声波模块
https://p26.toutiaoimg.com/origin/pgc-image/450edc455ae043d5a036fbb3c9dcad83?from=pc
HC-SR04超声波测距模块
该模块将超声波发生电路、超声波接收,以及放大调理电路集成在一块,使用时遵循下面的控制步骤即可。(1)通过控制TRIG引脚触发测距(给至少10us的高电平信号)  (2)模块自动发送8个40khz的方波,自动检测是否有信号返回;  (3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;  (4)重复上述的步骤循环多次测量,最后对数据进行平均处理,即可以达到准确测量的目的。看到这里,没有较深硬件基础的小伙伴们肯定还是不知所措。没关系,接着往下看!二、连接电路无需其它组件,直接将超声波模块的VCC、TRIG、ECHO、GND引脚分别连接到蜗牛控制器的5V、D10、D13、接地。https://p26.toutiaoimg.com/origin/pgc-image/fbe31e1bac834dc8aa657002abf55554?from=pc
蜗牛控制器与HC04超声波模块连线图
三、编程实现借用蜗牛控制器自带的蓝牙串口组件,直接将采集到的距离值发送到手机上,不再需要额外的显示模块。1.打开串口在“串口”积木组中选择“打开串口”积木,将其拖放到右侧的“初始化区”,拼接如下。https://p26.toutiaoimg.com/origin/pgc-image/8146ae306acc41d6823f2691ec6633fe?from=pc
蜗牛Woniu:串口初始化
注意:蜗牛控制器的波特率必须设置为1152002.SR-HC04获取距离值对于没有编程基础的小伙伴而言,方波发送和接收计时还是很困难的,值得庆幸的是Arduino的开发者们早就为它开发了一整套的开发函数,创客们只需调用几条函数语句即可。而蜗牛控制器对HC-SR04模块的使用更胜一筹,因为全程只需要一个积木。https://p26.toutiaoimg.com/origin/pgc-image/b10eec122e6b474d856e5bc1cc2134fe?from=pc
蜗牛Woniu:超声波测距积木
超声波测距积木位于“传感器”积木组中。将其拖放至程序区后,只需指定它的连接引脚(TRIG和ECHO)即可。3.测量显示蜗牛端将超声波测距模块的测量值通过蓝牙串口发送到手机端,手机端通过接收后在“交互”窗口进行显示。串口发送温湿度值用到了“串口打印”和“串口打印(换行)”两种串口发送积木。https://p26.toutiaoimg.com/origin/pgc-image/fb3dd5606e5446ac9bed18e537a7c0ab?from=pc
蜗牛Woniu:串口发送积木

[*]前者输出后不换行,保证下一次输出内容在同一行;
[*]后者输出后换行,下一次输出内容显示在下一行。
最后,因为单片机执行速度很快,执行上述语句大概只需要几十微秒,为防止串口堵塞,必须加一个延迟等待,而且温度也不需要特别快的显示频率。延时等待积木位于左侧的“控制”积木组。这里每1秒显示一次测量结果。这些积木组合后拼接成如下的样式。https://p26.toutiaoimg.com/origin/pgc-image/81713fdff65446b9adeceac431a15725?from=pc

四、程序下载1.蜗牛控制器供电供电后,其上的蓝色指示灯会处于闪烁状态,表明蜗牛控制器正常工作了。2.手机环境配置使用蜗牛手机APP时,需要打开手机的蓝牙和GPS定位功能,同时保证蓝牙未被其它设备连接。3.连接蜗牛控制器点击左上角的“连接”按钮,按钮由灰底“连接”切换为黄底“断开”,表明连接成功。点击“下载”按钮开始程序编绎和下载,就可以看到“下载”按钮切换为百分号数字进度。https://p26.toutiaoimg.com/origin/pgc-image/f6e5d58141d44032b2aeed8bcde28f6d?from=pc
程序无线下载中...
五、距离测量程序下载完成后,连接后传感器,将超声波测距模块水平放置,对准测量终端,点击“交互”按钮打开交互窗口,可以看到每1秒左右显示一次测量距离。可以看到:测量结果的一致性还是很好的,相对偏差小于±0.5cm。
蜗牛Woniu:超声波测距交互窗口
六、后记HC-SR04 超声波测距模块宣称可提供 2cm-400cm 的非接触式距离感测功能,测
距精度可达高达3mm,实际使用中很可能达不到,影响因素也很多,比如手持测量的水平度、环境温度(直接影响声波速率)等等。不管怎么样,只要使用得当,±1cm左右的精度还是可以保证的,对于普通家用也是足够的了。够用+便宜+好玩才是一个创客真正追求的!

jardon 发表于 2021-10-31 14:46:14

蜗牛是只支持手机APP编程?

dxabdepl 发表于 2021-11-1 22:45:13

jardon 发表于 2021-10-31 14:46
蜗牛是只支持手机APP编程?

电脑和手机同时兼容,不用做任何修改。
而且使用电脑自带的蓝牙模块,同样可以与蜗牛控制器直接无线连接、程序下载和数据传输的。
非常方便。
页: [1]
查看完整版本: 玩转Arduino手机编程——超声波测距没那么玄乎