跳到主要内容

猫头超声波

image-20260123115840436

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

在未来板Lite上使用

image-20260123115945604

模块未来板Lite接口使用线材
超声波测距模块Port1image-20260123120112678 白色PH2.0-3Pin接口线

程序编写

  1. 硬件选择未来板Lite后,加载超声波扩展积木

image-20260123120254503

image-20260123120304944

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

image-20260123120429812

在micro:bit上使用

image-20260123120621513

模块未来板Lite接口使用线材
超声波测距模块Port1image-20260123120902274白色PH2.0-3Pin接口线

编程平台

使用micro:bit在MakeCode平台编程

前往:Microsoft MakeCode for micro:bit

程序编写

  1. 添加扩展,在扩展中搜索Sugar,点击添加

img

img

  1. 超声波积木简介
积木图积木功能
image-20260123122548630获取超声波模块前方障碍物的距离(支持mm和cm)
  1. 搭建如下应用程序使用超声波测距,当距离小于35cm显示x,否则显示对号,并通过microbit按键A按下时,将记录的距离数值滚动显示在microbit点阵上。
备注

需要提前设定一个变量去存放超声波的距离数据,注意超声波的单位要改成厘米(默认是毫米)

image.png

在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); // 测量间隔
}