机器人姿态(15):安卓系统无线通讯App开发
- 无线通讯
小车、平衡车、飞行器等,出于调试和使用目的,需要不依赖线缆连接的通讯功能。这个通常是手机。
小车或飞行器的MCU本身提供的是串口,如果需要无线的数据转发,要用到数据透传。所谓透传, 就是MCU把数据通过串口经由透传模块以无线电波而非线缆连接的形式传递出去。
T宝有很多现成模块:蓝牙透传(10米),wifi透传(100米),远距离的有2.4g透传(10km),目前常用的是蓝牙。
- 蓝牙透传
蓝牙透传常见的有两种:一种使用BC417芯片的是蓝牙2.0版本,一般手机蓝牙都支持;另一种使用CC2540芯片的是蓝牙4.0版本,也就是BLE:Bluetooth Low Energy,要求手机硬件在4.0以上同时要求Android4.3(API level 16)以上,这样才支持BLE协议。
只要把这种模块的Rx/Tx连接到MCU相应串口的Rx/Tx,同时接好VCC/GND,就可以正常工作。
- 手机程序
检验是否工作有两种方式:一个是在手机安装蓝牙App,通过App可以接收到发来的串口数据;一种是在PC机另安装一个蓝牙透传模块,也可以接收到数据。
要注意的地方,是在通过AT-command修改透传模块的波特率的时候,要注意以0x0A/0x0D结尾。
安卓App程序,整体很简单。
注意不要操作常规Services和Characteristics,只要根据UUID判断出硬件的蓝牙特征码,然后操作特征码即可。
Setting: 9600, Both NL and CR.
AT
OK
AT+BAUD=?
OK:BAUD=9600
AT+NAME=?
OK:NAME=LanQianTech
AT+ROLE=?
OK:ROLE=S
M: 主设备
S: 从设备
常见的问题,一般是App软件中的特征码和硬件模块的特征码不匹配,那么通信不成功。
发表评论
Want to join the discussion?Feel free to contribute!