
stm32最小系统板的拓展板(电机舵机驱动)
简介
华中科技大学机甲大师校内赛RM启动队(3队)拓展板开源项目,经过比赛验证,搭配淘宝stm32f103c8t6最小系统板食用。MPS电源芯片可以免费申领~
简介:华中科技大学机甲大师校内赛RM启动队(3队)拓展板开源项目,经过比赛验证,搭配淘宝stm32f103c8t6最小系统板食用。MPS电源芯片可以免费申领~开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
扩展功能:四路有刷电调+编码器连接+8路舵机
基本信息:
xt30电源输入,推荐电压7.4~20V。
电机驱动电压为电源直供,电流达5A每路(理论)。
舵机由5V5A降压模块供电。推荐使用MP2482降压模块,可通过后文链接免费申领。同时可以直接购买MP1584模块,但电流可能较小。
所有板内电机和舵机均使用A11、A12的I2C总线调制,空闲引脚引出。
详细介绍:
焊接说明:没3D图的部分MP2482模块用2.54排针向上,stm32部分用排母向上,stm32SWD下载引脚朝外插在排母上
电源部分:电机驱动为电源直供。舵机的5V由MP2482供电MP2482降压模块,最大5A电流。SPX5205为3.3V的LDO芯片,给STM32供电。注意电机线序,注意模块不要焊反,其他没什么好说的。
信号部分:使用PCA9685的I2C转PWM芯片,支持每个输出IO都有自己的12位分辨率(4096步)固定频率单个PWM控制器,以典型的24 Hz至1526 Hz的可编程频率工作,占空比从0%到100%可调。芯片可扩展实现PWM舵机的控制和有刷电机正反转及调速。I2C地址可调,A0~A5为可调地址位,不焊为0,拉高为1。
特别注明,使用arduino扫描或使用本芯片,未考虑读写位,地址为7位(默认为0x40,二进制1000000);使用stm32时,一般考虑读写位,地址位为8位(默认为0x80,二进制10000000)。但是网上资料几乎没有,导致电路组和嵌软组怀疑人生好几天。
电机驱动部分:使用RZ7899双向马达驱动电路,经典中等功率电机驱动芯片。真值表见数据手册。
控制逻辑:电机驱动芯片输入IO同低输出为高阻态,一高一低输出为一高一低,一低一高输出为一低一高,同高输出为都接入VCC,表现为电机刹车。
当一路为PWM,另一路为低时,电机即可按照PWM占空比调速。建议PWM频率为500HZ以上。舵机控制逻辑太简单了省略。
代码实现:推荐使用软件模拟I2C
主要寄存器及功能:
Mode1寄存器各位状态对应的功能:
使用步骤:
1. 设频率
先给一个初始模式,
根据要设的频率确认频率寄存器应写入的值
公式参考(等式左边就是写入寄存器的值,分母即为目标频率)
进行写入频率寄存器操作时,需先进入sleep模式
2:确定占空比:
即写这些寄存器
Pca9685内部有一个12位的计数器,取LED0_ON_L作为低八位,取LED0_ON_H的低4位作为高4位,由此组成一个12位的数记为ON,当计数器计数值达到ON时,输出为高电平。同理能组成一个12位的数记为OFF,当计数器计数值达到OFF时,输出为高电平。
常把ON置为0,这样0FF/4096就是占空比。
具体代码如下:
再结合此前所说的控制逻辑编写代码即可实现对舵机和电机的控制。
在校大学生免费申领MPS芯片(例如电源小板上的MP2482):
MPS中国大学计划开启于2018年,紧跟国家“新工科建设”的战略方向,从前沿技术出发,致力于高等教育理论与实际应用的有机结合,投身中国“卓越工程师培养”大计。目前MPS已在全国多所高校开展了各项教学科研及竞赛支持活动,深受教师与同学的好评。
若需要MP2482DN/DS测试样品可以再填一下【MPS大学计划】免费样品申请单:
请备注推荐人:电源练习生
感激不尽
设计图
BOM


评论