电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
基于RT-THREAD nano的平衡车--微信小程序
分 享
扫描二维码分享
基于RT-THREAD nano的平衡车--微信小程序
RTThread
平衡车
Rice嵌入式开发
关注
发布时间: 2021-01-29
丨
阅读: 458
## 简要 - 平衡车文章分为4篇进行说明: 1. 《平衡车 - 硬件》:讲解平衡车的硬件设计。 2. 《平衡车 - 软件》:讲解平衡车的软件设计,算法。 3. 《平衡车 - 上位机》:讲解调参上位机的设计 4. 《平衡车 - 微信小程序》:讲解微信小程序作为遥控器的实现。 - github连接:https://github.com/RiceChen/Balance_Car.git - 为了能够方便的控制小车,PC上位机虽然容易开发,但是不方便。安卓原生APP虽然方便,但是不懂安。所以我选择了微信小程序,虽然我不会JS,但是他的选择是最正确的。开发容易,而且方便。 - 因为平衡车板载BLE,微信小程序也支持BLE,所以完美搭配 ## 软件设计 1. 其实微信小程序我在之前已经写过一文章: - [R-Plan 手把手教你开发BLE微信小程序](https://mp.weixin.qq.com/s/BysvMmigDRyr6o0QTiFUWg) 2. 上面这篇描述了最基本BLE版本的微信小程序开发。 3. 而在我的平衡车中,也是基于上面的代码进行补充,包括UUID的过滤,数据包的打包等功能。 - 过滤UUID, 获取对应UUID(0000FFE0-0000-1000-8000-00805F9B34FB)的属性: ``` C // 获取要连接设备的服务 getBLEDeviceServices(deviceId) { this.printLog("获取设备服务: " + deviceId) wx.getBLEDeviceServices({ deviceId, success: (res) => { for (let i = 0; i < res.services.length; i++) { if(res.services[i].uuid == "0000FFE0-0000-1000-8000-00805F9B34FB") { this.getBLEDeviceCharacteristics(deviceId, res.services[i].uuid) } } } }) }, ``` - 数据打包,协议上跟PC上位机与下位机通信协议一致,这样不用定义两套协议: ```C //发送前进命令 up_command() { var that = this; that.sendData = "bc,02,01,00,00,00,00,00,00,00,00,0a"; this.writeBLECharacteristicValue(that.sendData) }, writeBLECharacteristicValue(sendData) { var that = this; let data = sendData.split(',') let buffer = new ArrayBuffer(data.length) let dataView = new DataView(buffer) for (let j = 0; j < data.length; j++) { dataView.setUint8(j, '0x' + data[j]) } wx.writeBLECharacteristicValue({ deviceId: this._deviceId, serviceId: this._serviceId, characteristicId: this._characteristicId, value: buffer, success (res) { // that.printLog("发送数据成功"); }, fail (res) { that.printLog("发送数据失败") } }) }, ``` ## 效果: ![](https://RiceChen0.gitee.io/picture/balance_car/bc_mp/1.png)
关注微信公众号『Rice嵌入式开发技术分享』,后台回复“微信”添加作者微信,备注”入群“,便可邀请进入技术交流群。 ![](https://RiceChen0.gitee.io/picture/logo/logo_.jpg)
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
Rice嵌入式开发
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交