[attach]31664[/attach]
如图,我使用的是HC-SR04模块 基本使用方法我已经掌握了
现在如图有一个障碍物,不是直接档在前面,而是只档一半
有一半的超声波可以饶过去,另一半会直接被障碍物反弹
但是实际上HC-SR04受到第一次从障碍物反弹的超声波就开始进行回响输出了!
我想让他晚一点再输出,晚一点等到真正待测物的回声返回再输出回响
但是怎么才能实现呢?
哦,也就是说你要实现的功能就是超声波测距,还要能够自动屏蔽掉障碍物,那就可以用3个模块,不过在软件部分应该完善一点,直接取测量的最大值不太好,因为在没有障碍物的时候,肯定取垂直测量的那个模块的值更准确一点;
可以根据3个模块的测量值来判断是否有障碍物,建议两边模块与中间模块的角度相等,取测量值后,用数学方法求垂直距离;直接取最大值感觉不准确。但是,如果测量距离较远的话,那就可以忽略直接取最大值的误差了。
这个是模块HC-SR04的工作原理决定的,除非你能改写这个模块的里面的程序。
或者,自己单独买两个超声波传感器(不是模块),自己搭电路,写程序,这样你就能拿到两个传感器的数据了。
HC-SR04里面的ECHO端口是一旦接受到超声波,就放出高电平
说明上是写 “高电平持续的时间就是超声波从发射到返回的时间”
我查了一下资料,是因为
“收到出发信号的时候,模块已经记录了触发时候的时间,当收到回波时候马上输出回响信号,宽度就是发出脉冲的时间与收到回响信号的时间差.”
说明HC-SR04内部是有时钟功能的?否则这个模块是怎么知道返回的时间呢
我项目不是做小车,就是做超声波测距,但是很多附加要求,我基本都搞定了,就差这个“回避障碍物”,实在想不通
要不我用3个HC-SR04分别测一次取最大值?
原文是
Ultrasonic Ranging Project
(1) The user can mask out foreground objects
(2) The output can be swapped from metric to imperial and vice versa
(3)Any non-level measurements can be compensated for and the level that the tool is being held at is also outputted
(4)up to 4 different measurements can be stored on the device for later retrieval
(2)(3)(4)我都完成了,就差这个(1)
那这样的话待测物必须是墙那种大型的物体,小物体会测出问题
假如我是测一块木板的距离,现在有A,B,C 三个测距模块 其中A B 感应到木板了,C感应到木板后面的墙,这种情况没有办法判断木板是待测物体还是障碍物
欢迎光临 烽火社区 (http://bbs.cnecport.com/) | Powered by Discuz! X3.2 |