手机APP蓝牙遥控

为了能够使用智能手机,平板电脑等设备遥控,Crazepony上配置了蓝牙遥控的模块。使用我们专门为Crazepony开发的APP,就能够通过手机进行遥控。

  • 传统蓝牙2.1版本已经不再生产
  • Android手机需要系统在Android 4.3及以上,才能够支持BLE
  • 暂时不支持手机体感控制

Crazepony支持传统蓝牙2.1和蓝牙4.0 BLE两种模式。我们使用了济南华茂科技有限公司的蓝牙透传模块HM-06(蓝牙2.1)和HM-11(蓝牙4.0 BLE)。这两块模块的大小,引脚定义都是完全一致的,所以可以互换(飞控固件和APP不能够兼容)。

现在传统蓝牙2.1(HM-06模块)已经不再生产。

蓝牙2.1通信

蓝牙2.1透传模块是传统的蓝牙串口模块,现在该产品(HM-06模块)已经停产,Crazepony已经全部使用最新蓝牙4.0 BLE透传模块。

蓝牙2.1通信带宽大,连接复杂,而且时间长。配对的时候需要使用PIN码:1234

蓝牙4.0 BLE通信

蓝牙BLE技术(bluetooth Low Energy)是在蓝牙4.0中引入的一个全新的2.4G通信协议,原则上它和传统的蓝牙协议(蓝牙2.1)并没有技术迭代上的关系。它有功耗低,连接方便等特点,非常适合对功耗要求高的可穿戴式设备。

我们使用的是基于TI BLE方案CC2541的蓝牙透传模块,由济南华茂科技有限公司研发生产。

Crazepony_5.3以上的蓝牙使用的是BM-S02A透传模块,由深圳市信驰达科技有限公司研发生产。

使用该模块进行Crazepony开发的时候,最应该注意的就是带宽问题。BLE技术本身的带宽就比较小,大数据量可能会导致模块死机。下面有我们在开发中遇到的实际案例。

更多关于BLE技术笔记

BLE对应的APP

需要手机系统Android 4.3及以上才能够支持BLE。

BLE是无法在手机系统的蓝牙设置中搜寻到的,必须配备BLE相关APP。我们提供了支持BLE的Android APP Crazepony_5.2_ble.apk下载。 新的APP版本Crazepony_5.3.apk

蓝牙4.0 BLE连接时,无需配对,无需PIN码。

新的Crazepony5.3的APP界面

iphone手机的APP我们即将推出。

由printf引起的血案

使用BLE透传模块进行Crazepony开发的时候,最应该注意的就是带宽问题。BLE技术本身的带宽就比较小,大数据量可能会导致模块死机。

另外,比较特殊的一点是,Crazepony的串口使用是比较特殊的。STM32的串口1(UART1)同时连接CP2102(USB转串口芯片,用于和PC通信)和HM-11(BLE蓝牙透传模块,用于和手机通信),这个设计本来是不合串口使用规范的。会导致原来用于输出导PC的串口调试信息(printf函数输出)会同时被BLE模块接收到。

我们测试发现在启动过程中BLE蓝牙模块会概率性的出现死机现象,后来查询发现是启动信息中有大量printf输出。修改之后就不再出现该问题。

详见Github提交616542bcd