猫头超声波

超声波测距的原理十分简单,由超声波的发射端发射一束超声波,在发射的同时,计时开始,发射出去的超声波在介质中传播,声波具有反射特性,当遇到障碍物时就会反射回来,当超声波的接收端接收到反射回来的超声波时,计时停止。介质为空气时,声速为340m/s,根据记录的时间t,利用公式 s=340*t/2 计算出发射位置与障碍物之间的距离。
在未来板Lite上使用

| 模块 | 未来板Lite接口 | 使用线材 |
|---|---|---|
| 超声波测距模块 | Port1 |
程序编写
- 硬件选择未来板Lite后,加载超声波扩展积木


- 超声波积木简介
| 积木 | 功能 |
|---|---|
| 读取超声波模块的距离值,单位厘米。注意事项:在读取过程中可能会有细微偏差注意超声波的测量是有扩散角的,可能大概在15度左右,所以测量不要贴近地面或者有其他遮挡物靠近测量路径 |
- 搭建如下应用程序使用超声波测距,当距离数值小于35cm时,让未来板Lite屏幕显示红色填充,否则显示绿色填充。

在micro:bit上使用

| 模块 | 未来板Lite接口 | 使用线材 |
|---|---|---|
| 超声波测距模块 | Port1 |
编程平台
使用micro:bit在MakeCode平台编程
前往:Microsoft MakeCode for micro:bit
程序编写
- 添加扩展,在扩展中搜索Sugar,点击添加


- 超声波积木简介
| 积木图 | 积木功能 |
|---|---|
| 获取超声波模块前方障碍物的距离(支持mm和cm) |
- 搭建如下应用程序使用超声波测距,当距离小于35cm显示x,否则显示对号,并通过microbit按键A按下时,将记录的距离数值滚动显示在microbit点阵上。
备注
需要提前设定一个变量去存放超声波的距离数据,注意超声波的单位要改成厘米(默认是毫米)

在arduino ide上使用
测距代码
/*
程序名称:KittenBot_Ultrasonic_UNO
硬件: KittenBot猫头超声波模块 + Arduino UNO
功能: 超声波距离测试,测量结果通过串口打印显示
使用方法:
小喵科技的超声波为3线形式,能简化用户接线。
如果用在UNO上,请根据下面引脚定义顺序接好,
下载程序后,打开串口监视器观察返回的距离数据。
连线:
模块 ———— UNO
VCC ———— VCC (5V)
S ———— D8 (信号引脚)
GND ———— GND
*/
float distance;
const int signal = 8; // 信号引脚接D8
void setup()
{
Serial.begin(9600); // 串口波特率9600
Serial.println("超声波测距开始:");
Serial.println("等待稳定测量...");
}
void loop()
{
// 发送触发脉冲
pinMode(signal, OUTPUT); // 设置引脚为输出模式
digitalWrite(signal, HIGH);
delayMicroseconds(1);
digitalWrite(signal, LOW);
// 接收回波信号
pinMode(signal, INPUT); // 设置引脚为输入模式
distance = pulseIn(signal, HIGH); // 测量高电平时间(微秒)
// 计算距离:声速340m/s,往返时间除以2,单位转换为厘米
distance = distance * 340 / 2 / 10000; // 结果单位为厘米
// 显示测量结果
Serial.print("距离: ");
if ((1 <= distance) && (600 >= distance)) // 有效范围:1cm-6m
{
Serial.print(distance);
Serial.print(" CM");
}
else
{
Serial.print(" ---"); // 超出测量范围
}
Serial.println();
delay(30); // 防止测量余波干扰
delay(100); // 测量间隔
}