声明:该设计资料转自lb8820265网友分享,仅供学习参考,不可用于商业用途。
继电路城之前该小车资料,
手机遥控蓝牙平衡小车V1资料全部开源(https://www.cirmall.com/circuit/6201/detail?3),
现介绍该蓝牙平衡小车V1.1(BlueNRG+虚拟摇杆)开源设计(https://www.cirmall.com/circuit/6202/detail?3)。
前面介绍了基于CC2541的蓝牙模块平衡小车,之前BlueNRG由于损坏所以才采用CC2541,这次又得到了一块BlueNRG,现在集齐三块ST的模组可以召唤神龙了,之前预留了BlueNRG的6个接口,所以只需要直接将扩展板插在传感器板上就可以了,然后再增加一点高度。
这里主要是虚拟的摇杆的实现,详细“相关文件”下载
视频演示:
CC2541模块厂家已经写好相关代码使其变成一个透传模块,而BlueNRG是需要自己写好代码的,不过好在ST已经有了例程,而且也是使用STM32F4来驱动,这就大大的方便了开发,BlueNRG相关工具和软件下载地址:https://www.st.com/web/en/catalog/tools/PF261442点击最下面download。
进入X-CUBE-BLE1ProjectsMultiApplicationsSampleApp,这是一个简单的使用蓝牙对话的例程,可以直接烧到STM32F411板子中查看效果,打开手机蓝牙搜索,可以搜索到BlueNRG_Chat的蓝牙,连接就后可以发送和接收数据了,查看工程中的代码也是十分简单的,有详细的注释,初始化之后,就是两个函数HCI_Process()与User_Process(),第一个函数用来处理各种事件,第二个是用户函数里面是一个监听按键并发送的函数。
数据的收取主要是在ample_service.c中case EVT_BLUE_GATT_ATTRIBUTE_MODIFIED:和case EVT_BLUE_GATT_NOTIFICATION:两个事件中,第一个用来接收数据,第二个用来接收通知信息。
另一个重要的改进是添加了虚拟摇杆,可以在虚拟摇杆与SEEKBAR之间切换,同时简化了界面,如下图所示:
更新:修复复杂环境下搜索BLE崩溃BUG,
采用JUMA SDKAndroid源代码:https://github.com/flyloong/NUCLEO_Balance_Car_Android
STM32F411源代码:https://github.com/flyloong/NUCLEO_Balance_Car_STM32