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

基于RT-THREAD nano的平衡车--上位机软件

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

简要

  • 平衡车文章分为4篇进行说明:
    1. 《平衡车 - 硬件》:讲解平衡车的硬件设计。
    2. 《平衡车 - 软件》:讲解平衡车的软件设计,算法。
    3. 《平衡车 - 上位机》:讲解调参上位机的设计
    4. 《平衡车 - 微信小程序》:讲解微信小程序作为遥控器的实现。
  • github连接:https://github.com/RiceChen/Balance_Car.git
  • PC上位机采用QT开发,主要功能,参数设置,方向控制,数据波形显示。

软件设计

  1. 上位机与下位机通信,是采用串口通信,我自己定义了一个协议:
代码语言:javascript
复制
struct data_packet {
  unsigned char head;
  unsigned char type;
  unsigned char channel;
  unsigned char reserver1;
  int data;
  int reserver2 :24;
  int tail :8;
};
  • 其中head和tail是固定的。head为oxbc,tail为'\n'
  • type:参数设置类型,方向控制类型,波形显示控制类型
代码语言:javascript
复制
typedef enum {
    BC_PARAM_TYPE = 0x01,
    BC_DIRECTION_TYPE,
    BC_WAVEFORM_TYPE,
}BC_DATA_TYPE;
  • channel:根据不同类型选择不同的通道类型:
代码语言:javascript
复制
// BC_PARAM_TYPE
typedef enum {
    BC_BALANCE_P_PARAM_CHANNEL = 0x01,
    BC_BALANCE_I_PARAM_CHANNEL,
    BC_BALANCE_D_PARAM_CHANNEL,
    BC_SPEED_P_PARAM_CHANNEL,
    BC_SPEED_I_PARAM_CHANNEL,
    BC_SPEED_D_PARAM_CHANNEL,
    BC_SPEED_PARAM_CHANNEL,
}BC_PARAM_CHANNEL;

// BC_DIRECTION_TYPE
typedef enum {
    BC_UP_DIRECTION_CHANNEL = 0x01,
    BC_DOWN_DIRECTION_CHANNEL,
    BC_LEFT_DIRECTION_CHANNEL,
    BC_RIGHT_DIRECTION_CHANNEL,
    BC_LEFT_UP_DIRECTION_CHANNEL,
    BC_LEFT_DOWN_DIRECTION_CHANNEL,
    BC_RIGHT_UP_DIRECTION_CHANNEL,
    BC_RIGHT_DOWN_DIRECTION_CHANNEL,
}BC_DIRECTION_CHANNEL;

// BC_WAVEFORM_TYPE
typedef enum {
    BC_BALANCE_PID_WAVEFORM_CHANNEL = 0x01,
    BC_SPEED_PID_WAVEFORM_CHANNEL,
    BC_SPEED_WAVEFORM_CHANNEL,
}BC_WAVEFORM_CHANNEL;
  • data: 具体类型,具体通道对应的数值。
  1. 其中波形图显示,采用QT的chart组件,Qt开发我不熟悉,所以我只能上github搬砖,果真有人写了对应的demo,所以我就直接搬过来了。它包含四个文件:callout.cpp, callout.h, chartview.cpp,chartview.h。

效果:

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

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

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

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

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