2171浏览
查看: 2171|回复: 2

第12课 测距仪

[复制链接]
第12课测距仪
星火课程团队
欢迎来到树莓派课堂。今天我们以超声波测距为例,结合数码管,来做一个非接触技术的测距神器。
知识点:
1.认识超声波
2.数据实时显示
所需硬件:
树莓派主板,古德微扩展板,HC-SR04超声波传感器一个,TM1650四位数码管一个
测量两点间的距离你会借助哪些工具呢?直尺?卷尺?还是水平仪呢?这些都是我们常用的测距工具。随着时代的发展,人们对距离或长度测量的要求越来越高。比如最简单的“实时控制”,上面这几款测距工具就很难做到。那么什么样的测距仪可以迅速、方便、计算简单、还可以实时控制呢?我们这节课学习的超声波测距就可以满足人们的需求。首先我们先来认识一下超声波为何物?
1.认识超声波
说到超声波,我们就会想到它——对,蝙蝠。蝙蝠它可以发出超声波,并根据回声确定猎物或障碍物的位置,科学家们把这种现象叫做回声定位。而我们使用的超声波传感器其实也是利用同样的超声波测距原理。它的一只眼睛会发射超声波,另一只眼睛接收超声波,当超声波发射时它的内部开始计时,收到超声波时计时停止。我们把这段时间*超声波的速度就是超声波来回经过的距离,将这个距离除以2,就是超声波模块到障碍物的实际距离。
明白了超声波测距原理,再来了解一下我们所使用的HC-SR04超声波测距模块。它可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。它有四个针脚,在针脚旁边有标签—— VCC、Trig、Echo、Gnd,古德微扩展板为超声波传感器设置了专用接口。
现在,赶快将超声波传感器连接到你的扩展板上吧!
接线图:
第12课 测距仪图1
                                                                             

完成图:
第12课 测距仪图2
2.获取数据信号

接下来我们来获取一下超声波传感器的数据信号。登录古德微机器人平台,“智能硬件常用”模块中找到“超声波测距”积木。
第12课 测距仪图3
我们将积木拖到脚本区,因为这块积木无法独立运行,因此还需要借助
第12课 测距仪图4
这块积木的帮助。
去掉文本,将“超声波测距”积木嵌套在输出调试信息积木中。
第12课 测距仪图5
目前的程序只执行一次,我们使用循环命令让其持续监测。
第12课 测距仪图6
现在我们运行测试代码,通过右侧的观察窗口,我们可以看到,现在超声波传感器所测量的距离。(视频)
第12课 测距仪图7
3.数码管显示
通过观测我们发现超声波测量出来的数值精确到小数点后十多位,而四位数码管仅可以显示4个数字,位数是不够的。因此这里我们就让其精确到小数点后1位。

根据我们的使用习惯,数码管上的数字通常都是靠右对齐,数码管各数字的显示如下图所示:
第12课 测距仪图8
我们知道数码管上数字的显示只能单独设置,那么,我们如何将超声波测距获取到的数值在4位数码管上显示出来呢?我们用程序来写出每位数的取值。

还记得上节电子时钟中数码管的使用吗?这里同样我们先设置数码管的亮度。
第12课 测距仪图9
然后,我们需要新建一个变量命名为“测距”。且赋予超声波测距的返回值。
第12课 测距仪图10
如果超声波监测的距离小于10,那么个位也就是2号数码管取整数显示,并显示小数点。
第12课 测距仪图11
小数点后面的1位显示变量“测距”乘以10,再除以10的余数。
第12课 测距仪图12
加上重复执行,我们测试一下效果。(视频)距离越远数值越大,当超声波监测的距离大于10时,我们看个位,数值9已经没有变化了,但是小数它在不断变化。那么接下来我们就需要编写小于100的小数是如何显示的。

十位:“测距”整除10的得数;
第12课 测距仪图13
个位:“测距”取整后,除以10的余数。并显示小数点
第12课 测距仪图14
小数点后1位不变仍然是:“测距”乘以10,再除以10的余数。
第12课 测距仪图15
禁用之前的积木,将这组积木拖放在重复执行中,测试看一下效果。(视频)
根据前面的知识积淀,对于小于1000的小数我们就更不难解决了对吧?

百位:“测距”整除100的得数;
第12课 测距仪图16
仍然禁用之前的积木,测试看一下。(视频)在刚刚的两位数小数和三位数小数的演示中相信你一定发现了,当不足位数时,前面会用O来显示。这其实不是我们想要的。我们希望——
当超声波传感器测量出来的距离≥100cm的时候,则按照三位数来求出各位的数字(含小数点后1位),并在数码管上显示;
当超声波传感器测量出来距离≥10cm且≤100cm的时候,则按照两位数来求出各位的数字(含小数点后1位),并在数码管上显示;
当超声波传感器测量出来距离小于10cm的时候,则按照一位数来求出各位的数字(含小数点后1位),并在数码管上显示;

以下为流程图:
第12课 测距仪图17
第12课 测距仪图18
第12课 测距仪图19
第12课 测距仪图20


gada888  版主

发表于 2019-11-28 09:56:23

学一下
回复

使用道具 举报

DFrJ5KYVQaH  中级技匠

发表于 2019-12-20 08:22:04

简单实用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail