概述
App Inventor 2提供LEGO MINDSTORMS EV3组件,可以直接通过蓝牙连接EV3,读取各种传感器。
已有文档:bluetooth_remote.md 介绍了蓝牙通信。本文聚焦EV3超声波传感器。
EV3组件
添加组件
组件面板 → LEGO MINDSTORMS → **Ev3 Ultrasonic Sensor`
支持的EV3组件
| 组件 | 说明 |
|---|---|
| Ev3Motors | 电机控制 |
| Ev3ColorSensor | 颜色传感器 |
| Ev3GyroSensor | 陀螺仪 |
| Ev3Sound | 声音 |
| Ev3TouchSensor | 触摸传感器 |
| Ev3UltrasonicSensor | 超声波传感器 |
| Ev3UI | EV3屏幕显示 |
蓝牙连接EV3
当 按钮_连接.被点击
设 BluetoothClient1.安全连接 = true
调用 BluetoothClient1.扫描并连接(10)
当 BluetoothClient1.连接完成(设备名, 地址)
如果 设备名 包含 "EV3"
标签_状态.文本 = "✅ 已连接EV3"
设 Ev3UltrasonicSensor1.蓝牙客户端 = BluetoothClient1
设 Ev3UltrasonicSensor1.传感器端口 = "4" ' EV3端口4
设 Clock_读取.启用计时器 = true
读取超声波距离
连续读取
设 Clock_读取.计时器间隔 = 200 ' 200ms读取一次
当 Clock_读取.计时
设 距离 = Ev3UltrasonicSensor1.获取距离()
如果 距离 > 0
标签_距离.文本 = "距离:" & 数学.保留小数(距离, 1) & " cm"
' 距离预警
如果 距离 < 20
标签_预警.文本 = "⚠️ 太近!"
标签_预警.文本颜色 = 红色
否则 如果 距离 < 50
标签_预警.文本 = "注意距离"
标签_预警.文本颜色 = 橙色
否则
标签_预警.文本 = "安全"
标签_预警.文本颜色 = 绿色
单次读取
当 按钮_测量.被点击
设 距离 = Ev3UltrasonicSensor1.获取距离()
标签_距离.文本 = 距离 & " cm"
实战案例:避障小车
设 左电机端口 = "B"
设 右电机端口 = "C"
设 自动模式 = false
当 按钮_自动.被点击
设 自动模式 = true
调用 前进()
定义 前进()
调用 Ev3Motors.设置功率(左电机端口, 50)
调用 Ev3Motors.设置功率(右电机端口, 50)
调用 Ev3Motors.前进(左电机端口)
调用 Ev3Motors.前进(右电机端口)
当 Clock_读取.计时
如果 自动模式
设 距离 = Ev3UltrasonicSensor1.获取距离()
如果 距离 < 20 且 距离 > 0
' 遇到障碍物,后退再转弯
调用 Ev3Motors.后退(左电机端口)
调用 Ev3Motors.后退(右电机端口)
调用 Clock1.等待(500)
' 右转
调用 Ev3Motors.前进(左电机端口)
调用 Ev3Motors.后退(右电机端口)
调用 Clock1.等待(300)
调用 前进()
当 按钮_停止.被点击
设 自动模式 = false
调用 Ev3Motors.停止(左电机端口)
调用 Ev3Motors.停止(右电机端口)
EV3端准备
- 确保EV3固件已更新到最新版本
- 打开EV3蓝牙(设置 → Bluetooth → 勾选Visible)
- 将超声波传感器连接到指定端口(如端口4)
- EV3上不需要运行任何程序
常见问题
Q1: 无法连接EV3?
- 确保EV3蓝牙已打开且可见
- 先在手机蓝牙设置中配对EV3
- EV3蓝牙名称通常是 “EV3” + 后缀
- 部分手机需要输入配对码 “1234”
Q2: 超声波读数为0或负数?
- 检查传感器端口是否正确(1-4)
- 确认传感器已牢固连接到EV3
- 超出测量范围时(>250cm或<3cm)读数不准确
Q3: 读取速度慢?
蓝牙通信有延迟。EV3传感器读取间隔建议 ≥ 100ms。降低Clock间隔可以提高频率但不建议低于100ms。
总结
| 项目 | 说明 |
|---|---|
| 连接方式 | 蓝牙(BluetoothClient) |
| 传感器组件 | Ev3UltrasonicSensor |
| 测量范围 | 3-250 cm |
| 精度 | ±1 cm |
| 读取间隔 | 建议 ≥ 100ms |
版权声明:MIT App Inventor 官方文档采用 CC BY-SA 4.0 授权,本文档由 ai2claw 🐝 整理。
扫码添加客服咨询