之前有段时间因为机器狗项目的缘故,一直在使用小米微电机,但是苦于没有一个详尽的奶妈级教程,在控制电机的学习中踩了不少的坑。今天咱们就从头至尾一步一步的实现使用按键控制小米微电机。本文将会分析小米电机驱动库,并简要介绍相关的CAN通信知识。阅读本文之前建议先看一遍小米电机说明书,直接百度就有。
一、前置知识
小米微电机是一款伺服电机,那什么是伺服电机呢?
伺服电机的最大特征要素是伺服机构。
伺服机构是以物体的位置、方位、姿态等控制量,跟随目标(或给定值)变化的自动控制系统。伺服的英文“servo”以拉丁语中表示“奴隶”的“servus”为词根,意思是按照指令动作的控制。
就拿小米电机来说,有多种控制模式,其运控模式流程图如下
不过对我们来说,可以把小米微电机看做一个黑盒,只要给他供电之后,再向它发送命令,它就可以安装命令进行转动,我们不需要关系电机的电流电压或者相关的控制算法,因为这些都已经被打包在伺服系统之中
CAN通信是什么?如何进行CAN通信?
CAN(Controller Area Network),是ISO国际标准化的串行通信协议
它的诞生是为了满足汽车产业的“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需求。
低速CAN(ISO11519)通信速率10~125Kbps,总线长度可达1000
高速CAN(ISO11898)通信速率125Kbps~1Mbps,总线长度≤40米
CAN FD 通信速率可达5Mbps,并且兼容经典CAN,遵循ISO 11898-1 做数据收发
CAN总线以“帧”形式进行通信。CAN协议定义了5种类型的帧:数据帧、遥控帧、错误帧、过载帧、间隔帧,其中数据帧最为常用。数据帧又分为标准帧和扩展帧。
以上内容了解即可,不需要我们重点关注
我们只需要知道:小米微电机使用的是:高速CAN,波特率1M,扩展帧格式!
点击 《STM32 HAL库》小米微电机控制例程——通信协议分析及驱动库——古月居可查看全文