麦昆的几种超声波传感器程序精度对比
发表于 : 2019年 11月 24日 19:55
目的
对比几种超声波传感器的测试精度,为大家使用提供参考。
方法
将不同程序写入microbit,用麦昆的超声波传感器测试距离,并通过串口把结果打印出来。使用钢尺对比实际距离(从传感器发射端开始计算),用一个较大的三角形塑料片和传感器平行放置反射信号。分别测量多个点的数据,每个点测量多次结果,以最多出现的结果为准,和实际距离进行对比。
测试程序
折线图
小结
对比几种超声波传感器的测试精度,为大家使用提供参考。
方法
将不同程序写入microbit,用麦昆的超声波传感器测试距离,并通过串口把结果打印出来。使用钢尺对比实际距离(从传感器发射端开始计算),用一个较大的三角形塑料片和传感器平行放置反射信号。分别测量多个点的数据,每个点测量多次结果,以最多出现的结果为准,和实际距离进行对比。
测试程序
- 坛友wx_Rq8h88HV提供的测试程序:https://www.micropython.org.cn/forum/viewtopic.php?f=8&t=478
- github程序的社区修改版:https://www.micropython.org.cn/forum/viewtopic.php?f=8&t=483
- 社区新的驱动程序:https://www.micropython.org.cn/forum/viewtopic.php?f=8&t=484
- 麦昆的makecode扩展:https://makecode.microbit.org/_5E9bY8dwcciK
- 因为发现方法2测试的数据差不多是正常数据的一半,因此将计算方法中的除2去掉后作为最终结果。
- 两次测试之间的间隔时间为500ms
- 修改计算公式,将返回的测量结果换算为毫米(mm)
距离 | 方法1 | 方法2 | 方法3 | 方法4 |
---|---|---|---|---|
20 | 36 | 30 | 25 | 26 |
30 | 36 | 34 | 29 | 30 |
40 | 36 | 41 | 39 | 37 |
50 | 36 | 48 | 48 | 45 |
60 | 36 | 54 | 57 | 56 |
70 | 49 | 59 | 70 | 64 |
80 | 62 | 70 | 78 | 71 |
90 | 75 | 81 | 92 | 82 |
100 | 88 | 88 | 101 | 94 |
110 | 88 | 91 | 110 | 98 |
120 | 101 | 96 | 117 | 109 |
130 | 114 | 103 | 126 | 116 |
140 | 114 | 111 | 136 | 124 |
150 | 127 | 116 | 144 | 135 |
160 | 140 | 127 | 155 | 146 |
170 | 153 | 131 | 168 | 150 |
180 | 153 | 147 | 176 | 158 |
190 | 166 | 153 | 182 | 173 |
200 | 181 | 160 | 202 | 177 |
折线图
小结
- 直接通过IO的电平加上时间测量,受到mcu性能影响,误差相对较大。
- 方法3的精度最高,基本上误差都在10mm以内。
- makecode扩展使用了和方法3相同的原理,但是可能由于底层计算方法的不同,造成距离超过100mm后误差迅速变大。