LEGO EV3 机器人传感器面板

« 返回LEGO首页

LEGO EV3 机器人传感器面板

项目概述

LEGO EV3 Sensor Panel

这是一个基于 MIT App Inventor 开发的 LEGO EV3 传感器监控应用。通过蓝牙连接手机与 EV3 机器人,实时显示颜色传感器、超声波传感器和触碰传感器的状态数据。

项目作者:CAVEDU Education

难度级别:中级

预计时间:1小时

项目分类:传感器应用

下载

示例项目文件:

EV3_SensorPanel.aia

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:设备连接

步骤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:传感器轮询

步骤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:断开连接

步骤3 - 断开连接

Button_Disconnect.Click 事件断开蓝牙连接、禁用定时器并重置屏幕标题。

代码逻辑

当 Button_Disconnect.Click 时
  调用 BluetoothClient1.Disconnect
  设置 Clock1.TimerEnabled 为 false
  设置 Screen1.Title 为 "Disconnected"

通信协议

本应用使用 Lego EV3 Direct Command(乐高 EV3 直接命令)协议 - 这是可由 EV3 主机直接执行的字节数组命令。无需在机器人本身上进行任何编程。

操作说明

  1. 配对设备:将 EV3 与 Android 设备配对(默认 PIN:1234)
  2. 开机:打开 EV3 并确认蓝牙已激活
  3. 启动应用:运行应用并从 ListPicker 选择已配对的设备
  4. 观察数据:观察屏幕上实时更新的传感器值
  5. 测试触碰:按下 EV3 的触碰传感器按钮,观察颜色变化

传感器数据说明

颜色传感器(光线强度模式)

值范围 说明
0 完全黑暗
50 中等光线
100 非常明亮

超声波传感器

模式 单位 范围
厘米模式 cm 0-255
英寸模式 inch 0-100

触碰传感器

状态 按钮颜色
按下 绿色
释放 红色

扩展建议

  1. 添加陀螺仪传感器:显示机器人的旋转角度
  2. 添加红外传感器:接收遥控器命令
  3. 数据记录:将传感器数据保存到文件
  4. 图表显示:使用图表组件可视化传感器数据变化
  5. 声音反馈:当传感器值超过阈值时播放提示音

相关资源

注意事项

  1. 蓝牙配对:首次连接需要在系统设置中配对 EV3,默认密码为 1234
  2. 传感器端口:确保传感器连接到正确的端口,否则无法读取数据
  3. 定时器间隔:200ms 的间隔可以保证流畅的数据更新,如需更快响应可以减小此值
  4. 电池电量:确保 EV3 电池电量充足,低电量可能影响蓝牙连接稳定性

原文链接

原版教程:Hackster.io - App Inventor x Lego EV3 robot Sensor Panel

作者:CAVEDU Education

许可证:GPL3+

文档反馈