LEGO EV3 机器人传感器面板
项目概述

这是一个基于 MIT App Inventor 开发的 LEGO EV3 传感器监控应用。通过蓝牙连接手机与 EV3 机器人,实时显示颜色传感器、超声波传感器和触碰传感器的状态数据。
项目作者:CAVEDU Education
难度级别:中级
预计时间:1小时
项目分类:传感器应用
下载
示例项目文件:
EV3 传感器介绍
EV3 机器人配备了五种传感器:
| 传感器类型 | 功能说明 |
|---|---|
| 颜色传感器 | 输出光线强度(0-100)或物体颜色代码 |
| 超声波传感器 | 测量距离(厘米/英寸) |
| 红外传感器 | 接收红外遥控器消息 |
| 触碰传感器 | 二进制按下/释放状态 |
| 陀螺仪传感器 | 旋转运动数据(±3°精度,最大440°/秒) |
硬件要求
- LEGO Mindstorms EV3 编程主机/套件 x 1
- 具有蓝牙功能的 Android 手机
- 已配对并开机的 EV3 机器人
传感器连接
请按照下图连接传感器:

- 颜色传感器:连接到 EV3 的端口 3
- 超声波传感器:连接到 EV3 的端口 4
- 触碰传感器:连接到 EV3 的端口 1
App Inventor 组件设置
设计器界面

组件列表
| 组件类型 | 名称 | 功能描述 |
|---|---|---|
| ListPicker | ListPicker1 |
蓝牙设备选择 |
| Button | Button_Touch |
显示触碰传感器状态(通过背景颜色) |
| TextBox | TextBox_Ultra |
显示超声波传感器距离值 |
| TextBox | TextBox_Light |
显示颜色传感器光线强度 |
| Button | Button_Disconnect |
断开蓝牙连接 |
| BluetoothClient | BluetoothClient1 |
蓝牙通信处理 |
| Clock | Clock1 |
定时器(200ms 间隔,每秒5次更新) |
| Ev3TouchSensor | EV3TouchSensor1 |
EV3 触碰传感器接口 |
| Ev3UltrasonicSensor | EV3UltrasonicSensor1 |
EV3 超声波传感器接口 |
| Ev3ColorSensor | EV3ColorSensor1 |
EV3 颜色传感器接口 |
传感器端口配置
- EV3TouchSensor1:SensorPort = 1
- EV3ColorSensor1:SensorPort = 3
- EV3UltrasonicSensor1:SensorPort = 4
实现步骤
步骤1:设备连接

ListPicker 在点击前填充 BluetoothClient1.AddressAndNames 列表。选择设备后尝试连接,连接成功则激活 Clock 定时器并更新屏幕标题为”Connected”(已连接)。
代码逻辑:
当 ListPicker1.BeforePicking 时
设置 ListPicker1.Elements 为 BluetoothClient1.AddressesAndNames
当 ListPicker1.AfterPicking 时
调用 BluetoothClient1.Connect(ListPicker1.Selection)
如果 BluetoothClient1.IsConnected 那么
设置 Clock1.TimerEnabled 为 true
设置 Screen1.Title 为 "Connected"
步骤2:传感器轮询

Clock.Timer 事件每 200ms 触发一次,查询所有三个传感器。超声波和颜色传感器的值直接显示在文本框中;触碰传感器的结果控制按钮的背景颜色。
代码逻辑:
当 Clock1.Timer 时
设置 TextBox_Ultra.Text 为 EV3UltrasonicSensor1.GetDistance
设置 TextBox_Light.Text 为 EV3ColorSensor1.GetLightLevel
如果 EV3TouchSensor1.IsPressed 那么
设置 Button_Touch.BackgroundColor 为 绿色
否则
设置 Button_Touch.BackgroundColor 为 红色
步骤3:断开连接

Button_Disconnect.Click 事件断开蓝牙连接、禁用定时器并重置屏幕标题。
代码逻辑:
当 Button_Disconnect.Click 时
调用 BluetoothClient1.Disconnect
设置 Clock1.TimerEnabled 为 false
设置 Screen1.Title 为 "Disconnected"
通信协议
本应用使用 Lego EV3 Direct Command(乐高 EV3 直接命令)协议 - 这是可由 EV3 主机直接执行的字节数组命令。无需在机器人本身上进行任何编程。
操作说明
- 配对设备:将 EV3 与 Android 设备配对(默认 PIN:1234)
- 开机:打开 EV3 并确认蓝牙已激活
- 启动应用:运行应用并从 ListPicker 选择已配对的设备
- 观察数据:观察屏幕上实时更新的传感器值
- 测试触碰:按下 EV3 的触碰传感器按钮,观察颜色变化
传感器数据说明
颜色传感器(光线强度模式)
| 值范围 | 说明 |
|---|---|
| 0 | 完全黑暗 |
| 50 | 中等光线 |
| 100 | 非常明亮 |
超声波传感器
| 模式 | 单位 | 范围 |
|---|---|---|
| 厘米模式 | cm | 0-255 |
| 英寸模式 | inch | 0-100 |
触碰传感器
| 状态 | 按钮颜色 |
|---|---|
| 按下 | 绿色 |
| 释放 | 红色 |
扩展建议
- 添加陀螺仪传感器:显示机器人的旋转角度
- 添加红外传感器:接收遥控器命令
- 数据记录:将传感器数据保存到文件
- 图表显示:使用图表组件可视化传感器数据变化
- 声音反馈:当传感器值超过阈值时播放提示音
相关资源
注意事项
- 蓝牙配对:首次连接需要在系统设置中配对 EV3,默认密码为 1234
- 传感器端口:确保传感器连接到正确的端口,否则无法读取数据
- 定时器间隔:200ms 的间隔可以保证流畅的数据更新,如需更快响应可以减小此值
- 电池电量:确保 EV3 电池电量充足,低电量可能影响蓝牙连接稳定性
原文链接
原版教程:Hackster.io - App Inventor x Lego EV3 robot Sensor Panel
作者:CAVEDU Education
许可证:GPL3+
扫码添加客服咨询