This website requires JavaScript.
入驻
发布

4路直流有刷电机控制器

7H7512l796 发布于2023-12-08 15:43:07 CC BY-NC协议 分类:嵌入式 侵权投诉
销量: 3
3
2
1
简介:

可驱动4路电机,支持编码器、modbus通信。支持PID速度控制、位置控制。预留电流检测电路。

应用场景:

智能小车、简易机械臂

一、产品简介

支持正交增量编码器的4路有刷直流电机控制器。设计输入电压6~12V,单路持续输出电流4A。预留电流检测电路,支持modbus通信。

二、应用场景

适用于2S~3S锂电池供电,需要相对较大输出电流,驱动多个有刷电机的场景。支持增量式编码器,可实现速度和位置闭环控制。

  • 4轮驱动的智能小车
  • 简易机械臂

 

三、产品概述

本作品最初针对智能小车应用设计。鉴于电机控制的实现比较复杂,但功能又比较常用,因此将其剥离出来,制成模块,有助于提高复用性,简化主控的设计。


在功能上,支持驱动4路直流有刷电机,以及4个增量编码器,可实现速度和位置闭环控制。每个编码器使用一个通用定时器用于脉冲计数。硬件上还预留了电流检测电路,可以通过测量串联采样电阻上的电压,计算出电机电流。如不需要电流检测功能,不焊相关器件,并用导线代替采样电阻即可。为了与主控通信,采用通用的modbus协议。使用modbus的好处是,已经有很多上位机可以使用。


速度控制和位置控制通过PID实现,实际使用可能需要修改PID参数。通过modbus协议,可以选择每个电机是采用速度控制还是位置控制。为了便于调试,还可以选择第三种控制模式,直接设置PWM的占空比。

 

3D简介图

4路直流有刷电机控制器硬件项目图1

4路直流有刷电机控制器硬件项目图2


 

四、产品参数

  • 输入电压:6~12V
  • 单路电机持续电流:4A
  • 支持电机数量:4个
  • 支持增量编码器数量:4个
  • UART隔离光耦电源电压:3.3V或5V。
  • UART(modbus)波特率:9600.


五、使用说明

使用非常简单,匹配好各插座的线序,插上电源、电机、串口就可以用了。串口可以用USB转TTL模块,由于使用了光耦隔离,所以要将USB转TTL模块上的电源也接上,一共4根线。

接线完毕之后,就可以通过modbus设置控制参数了。

 

总装图

4路直流有刷电机控制器硬件项目图3

 

六、备注

1.     附件包含源代码及Hex。

2.     预留SWD接口,可通过ST-Link调试或烧录。

3.     固件在keil下完成开发和调试(没错,我是山顶洞人)。

4.     使用的器件都很便宜,个人制作的话,单板成本应该在30以内。

 

特别提醒,本作品为个人出于爱好制作,未经全面测试。硬件单路4A的指标是按1Oz 1mm 2A 的经验法则来设计的,并未遵守严格的规范,也没有做过全面的测试,因此若需要应用于大电流的场景,最好在保证安全的前提下做好压力测试,确定可以满足需求。

 

七、测试视频

视频演示了通过位置控制模式,实现4种不同型号电机(370、310、130、N20)位置同步的速度控制。


控制方法是,根据设定速度,计算出目标位置,然后下发位置指令,所以电机会以设定速度运行,并保持位置同步。由于电机特性不同,且PID不可避免地引入振荡,所以可以看到电机启动时并不同步,但经过调整之后,4只电机均实现了同步匀速旋转。

 


下方视频展示了位置控制的效果。程序中给定设定角度不变,然后用手将电机轴拧动电机轴,在PID控制的作用下,电机轴会回到原位置。


 

 

八、设计说明

该作品在硬件上基于以下几个思路设计:

  • 尽量使用国产芯片。
  • 电路板的尺寸应尽可能的小,所以尽量采用小封装、高集成度的芯片。
  • 采用单芯片H桥的同时,工作电流尽可能大(2A以上)。

 

为了在电机控制模块化的同时,尽可能减小PCB的体积,器件选型上尽量选用小封装和高集成度的芯片。国产芯片在DCDC和LDO方面已经比较成熟,相对容易地就找到了小封装的XP3182和ME6211。但是大电流的集成H桥就比较难找,常用方案如DRV8833,虽然集成度很高,但是支持的电流只有1A,很多国产集成H桥也是这个规格。经过一番辛苦的搜寻,终于找到TMI8260,可以在SOP8的封装下提供4A的持续电流。


比较难受的是,为了实现4对互补PWM,使用了2个高级定时器,而F103系列又只有大容量产品才有这个配置,对应的封装最小也有64pin,占用了不小PCB的面积。


另一个比较难受的地方是,电流检测使用了TI的电流检测专用运放INA181,占用了非常小的PCB面积,但是暂时没找到该芯片的国产替代,否则就可以实现板上器件全国产了。如果有网友知道替代型号的话,麻烦在评论区告诉我,我去尝试一下。


软件上,预期是通过C语言,基于模块化和面向对象的思路编写。但是由于水平有限,加之对STM32系列的单片机也还在学习阶段,所以为了实现功能,代码开始变得越来越混乱。实现modbus协议,使用了freemodbus库,非常感谢开源大佬和网络上各位前辈的无私奉献。

电机 嵌入式 智能小车 编码器 机械臂
最近更新时间 2023-12-08 15:43:07
描述
PCB
元件清单
原理图
附件
讨论