4. 协议分析。我先把用串口助手测试出来的协议。给大家分享一下吧。
ff 55………………0a
1.无人(9位)(50ms/条)
ff 55 05 16 01 01 03 00 0a
2.手动默认周期发送(7位)(2s/条)
ff 55 03 fa 01 00 0a
当控制量有变化才更新动作数据,否则更新。
向上一下(13位)
写状态值 ff 55 09 0002 0a 09 3d ff 00 00 00 0a
ff 55 09 00 02 0a 0a c6 00 00 00 00 0a
复位状态 ff 55 09 00 020a 09 00 00 00 00 00 0a
ff 55 09 00 02 0a 0a 00 00 00 00 00 0a
向下一下(13位)
写状态值 ff 55 09 0002 0a 09 d1 00 00 00 00 0a
ff 55 09 00 02 0a 0a 37 ff00 00 00 0a
复位状态 ff 55 09 0002 0a 09 00 00 00 00 00 0a
ff 55 09 00 02 0a 0a 00 00 00 00 00 0a
向左一下(13位)
写状态值 ff 55 09 0002 0a 09 f3 ff 00 00 00 0a
ff 55 09 00 02 0a 0a 5f ff 0000 00 0a
复位状态 ff 55 09 0002 0a 09 00 00 00 00 00 0a
ff 55 09 00 02 0a 0a 00 00 00 00 00 0a
向右一下(13位)
写状态值 ff 55 09 0002 0a 09 d6 00 00 00 00 0a
ff 55 09 00 02 0a 0a ce ff00 00 00 0a
复位状态 ff 55 09 0002 0a 09 00 00 00 00 00 0a
ff 55 09 00 02 0a 0a 00 00 00 00 00 0a
左上一下(13位)
写状态值 ff 55 09 0002 0a 09 88 ff 00 00 00 0a
ff 55 09 00 02 0a 0a c5 00 00 00 00 0a
复位状态 ff 55 09 0002 0a 09 00 00 00 00 00 0a
ff 55 09 00 02 0a 0a 00 00 00 00 00 0a
右上一下(13位)
写状态值 ff 55 09 0002 0a 09 31 ff 00 00 00 0a
ff 55 09 00 02 0a 0a 67 00 00 00 00 0a
复位状态 ff 55 09 0002 0a 09 00 00 00 00 00 0a
ff 55 09 00 02 0a 0a 00 00 00 00 00 0a
左下一下(13位)
写状态值 ff 55 09 0002 0a 09 9d 00 00 00 00 0a
ff 55 09 00 02 0a 0a 0f ff00 00 00 0a
复位状态 ff 55 09 0002 0a 09 00 00 00 00 00 0a
ff 55 09 00 02 0a 0a 00 00 00 00 00 0a
右下一下(13位)
写状态值 ff 55 09 0002 0a 09 e1 00 00 00 00 0a
ff 55 09 00 02 0a 0a 69 ff 0000 00 0a
复位状态 ff 55 09 00 02 0a 09 00 00 00 00 00 0a
ff 55 09 00 02 0a 0a 00 00 00 00 00 0a
3.赛道(9位)(50ms/条)
ff 55 05 0b 01 11 02 00 0a
4.重力 数据格式和手动模式相同
根据设备三轴加速度状态计算控制量
5.摇一摇 数据格式和手动模式相同
根据摇一摇的参数计算控制量
选择向前同向上、左上、右上。
选择向后同向下、左下、右下。
6.喇叭(9位)(按键控制发送)
按下喇叭 一、ff 55 05 00 02 2206 01 0a
二、ff 55 05 00 02 22 26 01 0a
三、ff 55 05 00 02 22 4a 01 0a
四、ff 55 05 00 02 22 5d 01 0a
五、ff 55 05 00 02 22 88 01 0a
六、ff 55 05 00 02 22 b8 01 0a
七、ff 55 05 00 02 22 ee 01 0a
7.灯光(12位)(按键控制发送)
按下灯光 一、ff 55 08 00 02 0807 00 00 00 0a 0a
二、ff 55 08 00 02 0807 00 00 00 00 0a
三、ff 55 08 00 02 0807 00 0a 0a 0a 0a
四、ff 55 08 00 02 08 07 00 0a 00 00 0a
五、ff 55 08 00 02 08 07 00 0a 0a 00 0a
六、ff 55 08 00 02 08 07 00 00 0a 00 0a
8.冲刺(13位)(按键控制发送)
按下冲刺 ff 55 09 00 02 0a 09 01 ff 00 00 00 0a
ff 55 0900 02 0a 0a ff 00 00 00 00 0a
五秒之后 ff 55 09 00 02 0a 09 00 0000 00 00 0a
ff 5509 00 02 0a 0a 00 00 00 00 00 0a
5. 简单的说一下协议。通信协议基本格式 ff 55…………0a。ff 55是开头,0a是结束。数据都是十六进制的哈。每种模式和功能会有不同的标记对应。我就不详细总结了。自己去看总结出来的协议吧。手动模式的时候。当摇杆固定不变位置的时候,是不会发送数据的。只有当数据发生变化的时候才发送新位置坐标的数据。我分析了一下摇杆的坐标数据对应关系。不知道是否正确,欢迎大家验证。Mbot软件的数据量贴别的大。买了几种蓝牙,都顶不住1.3K-1.5K/S的数据量。跑着跑着就挂了。Makeblock网店里原装的90多元没舍得买。
6. 最后一条。把我分析的摇杆数据坐标。给大家放出来。摇杆数据,一共三张图。比单纯前后左右方向按键的要复杂很多。也比走你app的单纯XY坐标系要复杂。我分析出了三张坐标。分别是两个电机的控制量还有方向的控制量。最后是三个坐标系的叠加。下面上图。说实话,我把这几个图画出来,也是云里雾里的。描述不清楚的地方,还请各位客官多担待。
7. 第一个电机控制量的图。左边09电机,右边0a电机。通过分析数据我们看到两个电机的给定是分开两条数据给出的。下一个图就是左边09电机右边0a电机。09是什么0a是什么? 我们看这条数据:
按下冲刺 ff 55 09 00 02 0a 09 01 ff 00 00 00 0a
ff 55 09 00 02 0a 0a ff 00 00 00 000a
红色09/0a分别代表着两个电机。紫色01/ff代表控制量。那么问题来了。冲刺啊。为毛一个01一个ff啊?再往后。蓝色ff/00代表方向和逻辑。ff代表反逻辑,01就是最大值。00代表正逻辑ff就是最大值。而ff和00也必定一个代表正转一个代表反转。
这个图的数据是从中心发散到四条斜线或者实际上是四条弧线,我没办法测定。然后再从四条斜线收敛到上下两个顶点。为毛这样搞。不知道。反正闲着没事反推坐标系的时候感觉很happy。你要说真能借用mbot的软件控制自己的小车,也是一个很好的事情。
8. 第一个电机控制量的图。左边0a电机,右边09电机。这张图比较简单。数据在四分之一圆弧里面是均匀分布的。由内向外按照从小到大或者从大到小的顺序分布。
9. 方向逻辑坐标。00给定量正逻辑。ff给定量反逻辑。
10. OK,实际的控制效果是以上三张坐标的叠加。对不对,请大家验证一下吧。有个问题,不知道为啥这个软件要做这么高速的数据传输。就是为了不让我们用??
往期回顾:
刀侠DIY洞洞板stm32两轮平衡小车---1.物料工具准备
刀侠DIY洞洞板stm32两轮平衡小车---2.底盘电池模块的组装改装
刀侠DIY洞洞板stm32两轮平衡小车---3.原理图和模拟走线
刀侠DIY洞洞板stm32两轮平衡小车---4.控制板焊接
刀侠DIY洞洞板stm32两轮平衡小车---5.APP软件Bluetooth RC Controller解析
刀侠DIY洞洞板stm32两轮平衡小车---6.APP软件“走你”解析
本期名称:
刀侠DIY洞洞板stm32两轮平衡小车---7.APP软件“mbot”解析
下期链接:
…………
凡是本帖内容涉嫌侵权违规,还请小编及时通知。
更多信息,请微信搜索关注公众号“幻影刀侠”或扫描下方二维码,谢谢!!!
`
7