LEGO EV3 机器人按键控制
项目概述

这是一个基于MIT App Inventor开发的LEGO EV3机器人控制应用。通过蓝牙连接手机与EV3机器人,使用界面上的方向按键和滑块来控制机器人的移动和电机功率。
项目作者:CAVEDU Education
项目分类:机器人控制
![]()
下载
示例项目文件:
机器人组装说明
请按照图1组装您的机器人。如果您的机器人结构有所不同,不必担心,只需确保两个电机(连接到端口B和C)位于机器人的相对两侧即可。

这种类型的机器人底座被称为差分驱动平台(Differential Drive Platform)。因为机器人的行为可以根据电机速度轻松调整:
- 前进:两个电机以相同速度移动
- 右转:左电机比右电机移动稍慢
- 左转:右电机比左电机移动稍慢
- 后退:两个电机以相同速度反向移动
- 原地旋转:两个电机以相同速度反向运动
电机连接要求
- 左电机:连接到EV3的B端口
- 右电机:连接到EV3的C端口
- 电机方向:确保电机安装方向相对,可以实现前进和后退
项目特性
主要功能
- 蓝牙连接:通过ListPicker组件选择并连接EV3机器人
- 方向控制:提供前进、后退、左转、右转、停止五个方向按键
- 功率调节:滑块控制电机功率(0-100%)
- 实时控制:按键状态实时响应,支持持续控制
界面组件
- 连接控制器:ListPicker用于蓝牙设备选择
- 方向键组:TableArrangement布局中的3x3按键矩阵
- 功率滑块:Slider组件调节电机输出功率
- 断开按钮:安全断开蓝牙连接
技术实现
组件架构
| 组件类型 | 名称 | 功能描述 |
|---|---|---|
| ListPicker | ListPicker1 |
蓝牙设备选择和连接 |
| Label | Label1 |
显示”Slide to adjust motor power”提示文本 |
| Slider | Slider1 |
电机功率调节(0-100) |
| Button | Button_Forward |
前进控制 |
| Button | Button_Stop |
停止控制 |
| Button | Button_Backward |
后退控制 |
| Button | Button_Left |
左转控制 |
| Button | Button_Right |
右转控制 |
| Button | Button_Disconnect |
断开蓝牙连接 |
| BluetoothClient | BluetoothClient1 |
蓝牙通信客户端 |
| Ev3Motors | Ev3Motor1 |
EV3电机控制器(BC端口) |
电机配置
- 控制端口:BC端口(连接左右两个电机)
- 控制方式:差速转向实现左右转
- 功率范围:0-100%可调节
界面布局
按键布局
界面采用TableArrangement组件实现3x3的按键矩阵布局:
[ ] [Forward] [ ]
[Left] [ Stop ] [Right]
[ ] [Backward][ ]
组件层级结构
Screen1 (主屏幕)
├── ListPicker1 (连接选择器)
├── Label1 (功率调节提示)
├── Slider1 (功率滑块)
├── TableArrangement1 (按键布局容器)
│ ├── Button_Forward (前进)
│ ├── Button_Stop (停止)
│ ├── Button_Backward (后退)
│ ├── Button_Left (左转)
│ └── Button_Right (右转)
├── Button_Disconnect (断开连接)
├── BluetoothClient1 (蓝牙客户端)
└── Ev3Motor1 (EV3电机控制)
教程步骤
步骤1:项目设置

在App Inventor中创建新项目,添加必要的组件。
步骤2:界面设计

使用TableArrangement组件创建3x3的按键布局,添加方向控制按钮。
步骤3:连接控制

添加ListPicker用于蓝牙连接选择,添加蓝牙客户端组件。
步骤4:电机配置

配置EV3电机组件,设置控制端口为BC。
步骤5:功率控制

添加Slider组件用于电机功率调节。
步骤6:程序逻辑

编写按钮事件处理程序,实现机器人的基本移动控制。
App Inventor 界面设计
屏幕设计

这是主要的屏幕设计,包含所有控制组件。

垂直布局设计,展示组件的排列方式。
连接流程图

蓝牙连接和控制的详细流程图。
控制逻辑图

按键控制与电机响应的逻辑关系图。
使用说明
1. 应用设置
- 应用名称:cavedu_ev3
- 屏幕尺寸:Fixed(固定尺寸)
- 版本信息:1.0 (version code 1)
2. 连接步骤
- 打开应用,点击”Connect”按钮
- 在弹出的设备列表中选择EV3机器人
- 等待蓝牙连接建立
- 连接成功后按键变为可用状态
3. 控制操作
- 前进:点击”Forward”按钮
- 后退:点击”Backward”按钮
- 左转:点击”Left”按钮
- 右转:点击”Right”按钮
- 停止:点击”Stop”按钮
- 功率调节:拖动滑块调整电机功率(50%为默认值)
4. 断开连接
使用完毕后,点击”Disconnect”按钮安全断开蓝牙连接。
开发要点
蓝牙通信
- 使用App Inventor的BluetoothClient组件
- 支持标准蓝牙协议连接EV3机器人
- 提供连接状态反馈和错误处理
电机控制
- 通过Ev3Motors组件控制EV3电机
- 支持多电机同步控制(BC端口)
- 实时功率调节和方向控制
用户体验
- 初始状态控制按钮禁用,连接后启用
- 直观的按键布局,符合用户操作习惯
- 实时功率反馈,精确控制电机输出
技术规格
- 开发平台:MIT App Inventor
- 目标设备:Android智能手机
- 通信协议:Bluetooth Classic
- 硬件要求:LEGO Mindstorms EV3
- 最小系统版本:Android 4.4+(蓝牙支持)
扩展建议
功能增强
- 传感器反馈:添加EV3传感器数据读取功能
- 路径记录:记录机器人移动轨迹
- 速度显示:实时显示电机转速
- 多机器人控制:支持同时控制多个EV3设备
界面优化
- 图形化控制:添加虚拟摇杆控制
- 自定义主题:支持颜色主题切换
- 全屏模式:提供沉浸式控制体验
- 快捷操作:添加手势识别功能
故障排除
常见问题
- 连接失败:检查EV3蓝牙是否开启并可见
- 控制延迟:减少蓝牙传输距离,避免干扰
- 按键无响应:确认蓝牙连接状态正常
- 电机异常:检查电机连接和端口配置
解决方案
- 重启蓝牙连接
- 重新配对设备
- 检查电机物理连接
- 更新App Inventor组件版本
注意:本项目基于MIT App Inventor 159版本开发,项目文件包含完整的视觉块程序和组件配置。建议在使用前确保EV3固件为最新版本以获得最佳兼容性。
项目文件结构
EV3_ButtonControl.aia
├── src/appinventor/ai_nissin/EV3_ButtonControl/
│ ├── Screen1.bky (视觉块程序)
│ └── Screen1.scm (屏幕组件配置)
└── youngandroidproject/
└── project.properties (项目属性)
文件大小:约22KB 创建日期:2017年7月29日 开发者:CAVEDU 教育团队
版权声明
原作者:CAVEDU Education
原项目链接:https://www.hackster.io/CAVEDU/app-inventor-lego-ev3-robot-button-control-5e6533
版权归属:本文档中所有内容版权归原项目作者所有。
扫码添加客服咨询