OpenMV超声波测距

OpenMV超声波测距

本文首发于:https://www.bilibili.com/read/cv3051569

参考链接:https://blog.csdn.net/bei_dai_he/article/details/71773032
在这里插入图片描述

本实验用的是M7。

首先是HC-SR04的时序图:

img

触发信号:通过trig引脚提供一个超过10ms的高电平信号;

内部信号处理:内部会发出8个40HZ的脉冲信号并检测回波。

输出响应信号:从收到回波开始,输出信号线echo会输出高电平,高电平的时间长短与所测的距离成正比。

距离的计算公式:s=高电平时间*声速(340m/s)/2

以上文字引自:https://blog.csdn.net/bei_dai_he/article/details/71773032

原来的算法(见上述链接)使用了硬中断,可以提高精确度,但是同样地,遭遇了一些问题: VCC 此模块的工作电压值为5V,3.3V电压下不能正常工作。而OpenMV不能提供3.3V以上电压; 中断函数以及Pin口 其实同树莓派自带的RPi.GPIO库类似,二者的基于Python的中断都缺乏一定的稳定性,用示波器看Pin7的电平,是相位上移动的:

img

同样地,中断也会遇到类似问题:上升/下降沿检测不到。 因此一种比较笨的办法是反复初始化串口与使能中断,使其回到原始状态,因为一般来说,第一次的回调值是可以检测到的。 根据上述问题做出一些改动:

img
img

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页