OpenMV超声波测距
OpenMV超声波测距
本文首发于:https://www.bilibili.com/read/cv3051569
参考链接:https://blog.****.net/bei_dai_he/article/details/71773032
本实验用的是M7。
首先是HC-SR04的时序图:
触发信号:通过trig引脚提供一个超过10ms的高电平信号;
内部信号处理:内部会发出8个40HZ的脉冲信号并检测回波。
输出响应信号:从收到回波开始,输出信号线echo会输出高电平,高电平的时间长短与所测的距离成正比。
距离的计算公式:s=高电平时间*声速(340m/s)/2
以上文字引自:https://blog.****.net/bei_dai_he/article/details/71773032
原来的算法(见上述链接)使用了硬中断,可以提高精确度,但是同样地,遭遇了一些问题: VCC 此模块的工作电压值为5V,3.3V电压下不能正常工作。而OpenMV不能提供3.3V以上电压; 中断函数以及Pin口 其实同树莓派自带的RPi.GPIO库类似,二者的基于Python的中断都缺乏一定的稳定性,用示波器看Pin7的电平,是相位上移动的:
同样地,中断也会遇到类似问题:上升/下降沿检测不到。 因此一种比较笨的办法是反复初始化串口与使能中断,使其回到原始状态,因为一般来说,第一次的回调值是可以检测到的。 根据上述问题做出一些改动: