前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于RT-THREAD nano的平衡车--微信小程序

基于RT-THREAD nano的平衡车--微信小程序

作者头像
Rice加饭
发布2022-05-10 17:43:49
3650
发布2022-05-10 17:43:49
举报
文章被收录于专栏:Rice嵌入式

简要

  • 平衡车文章分为4篇进行说明:
    1. 《平衡车 - 硬件》:讲解平衡车的硬件设计。
    2. 《平衡车 - 软件》:讲解平衡车的软件设计,算法。
    3. 《平衡车 - 上位机》:讲解调参上位机的设计
    4. 《平衡车 - 微信小程序》:讲解微信小程序作为遥控器的实现。
  • github连接:https://github.com/RiceChen/Balance_Car.git
  • 为了能够方便的控制小车,PC上位机虽然容易开发,但是不方便。安卓原生APP虽然方便,但是不懂安。所以我选择了微信小程序,虽然我不会JS,但是他的选择是最正确的。开发容易,而且方便。
  • 因为平衡车板载BLE,微信小程序也支持BLE,所以完美搭配

软件设计

  1. 其实微信小程序我在之前已经写过一文章:
  1. 上面这篇描述了最基本BLE版本的微信小程序开发。
  2. 而在我的平衡车中,也是基于上面的代码进行补充,包括UUID的过滤,数据包的打包等功能。
  • 过滤UUID, 获取对应UUID(0000FFE0-0000-1000-8000-00805F9B34FB)的属性:
代码语言:javascript
复制
    // 获取要连接设备的服务
    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上位机与下位机通信协议一致,这样不用定义两套协议:
代码语言:javascript
复制
    //发送前进命令
    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("发送数据失败")
        }
      })
    },

效果:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rice 嵌入式开发技术分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简要
  • 软件设计
  • 效果:
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档