用App Inventor 2蓝牙组件给遥控车装上"手机方向盘"——实战教程

0 阅读1分钟

你有过这样的想法吗?想用手机控制家里的玩具车、小机器人,但又觉得那些复杂的蓝牙协议和Android开发门槛太高?其实,用App Inventor 2的蓝牙客户端组件,只需要几十行逻辑积木就能实现。

项目背景

家里一台闲置的遥控车,儿子想用手机操控。硬件选型:HC-05蓝牙模块(约15元)+ Arduino Nano(约20元),软件端用App Inventor 2完成。总成本不到40元。

核心实现流程

手机端(App Inventor 2)

组件布局:

  • BluetoothClient — 蓝牙连接
  • ListPicker — 选择配对设备
  • Canvas + Ball — 触摸方向盘
  • Clock(间隔100ms)— 轮询发送指令

连接设备:

ListPicker1.元素列表 = BluetoothClient1.地址及名称
→ 选择后调用 BluetoothClient1.连接(选中的地址)

发送控制指令: 自定义通讯协议:4字节包 [速度(0-100), 转向(-50~50), 校验, 0xFF]

硬件端(Arduino)

if (Serial.available() >= 4) {
  读取4字节 → 校验帧尾和校验位 → 驱动电机和舵机
}

避坑要点

  1. 波特率务必匹配:HC-05默认9600,Arduino通讯代码要一致
  2. 发送间隔别太密:100ms以上比较稳妥,太密会使缓冲区溢出
  3. 蓝牙无接收事件:SPP蓝牙没有"收到数据"自动事件,双向通信需用Clock轮询
  4. 权限问题:Android 12+需要动态申请 BLUETOOTH_CONNECT 权限

延伸

如果对耗电有要求,建议替换为BLE低功耗蓝牙方案(App Inventor 2中文网提供了专用拓展,支持"收到数据"事件自动触发)。


参考文档: App Inventor 2 通信连接组件文档