电机驱动学习以及闭环控制和硬件连接

针对四轮避障小车,学习tb6612驱动和控制370减速电机和42步进电机。

在单片机通过TB6612连接至电机时,前面学习过32控制普通的直流电机,发现当下比赛常用电机如减速跟42步进,存在霍尔编码器(读取电机实时转动方向和转速),精度更高和控制起来更难一些。

通过学习b站和cncs网站相关部分知识,关于TB6612(2pin普通电机,6pin编码器电机)的个人笔记:

入门知识:

硬件连接知识

右侧VM外部电压驱动电机正常需12v,而VCC是指对TB6612的内部电路供电,一般需3.3V或5V,GND即接地,观察共地即可,下面四个out口(AO1,AO2,BO1,BO2)分别是连接两个电机。

左侧PWM输入,在32学习过它即为一种模拟信号,类似于占空比,大小决定了轮子转动的快慢,下面的四个in口是对应gpio口,单片机驱动板子工作(通过给高低电平控制),这里需说明in口的高低电平模式对应了轮子工作的转动方式(具体看图中举例的四个模式)通过芯片发送给out口处电机,STBY是使能口一般默认为3.3v(即高电平),决定着板子能否正常工作。

如需驱动减速电机跟42步进电机(6pin),则可根据自带 TB6612驱动板和面包板连接,下图为用32最小系统板连接TB6612测试电机。

也可以是跟自带稳压模块的TB6612驱动板连接,个人觉得更好用一些

要有初始化,启用外部中断,调PID先通过编码器读取测速,然后使用pid算法控制,推荐https://pid-simulator-web.skythinker.top/

上方链接是一个入门学习调节pid网站。Kp是产生主要的作用力(使物体作用力返回目标点),Ki是消除静态误差,Kd是产生阻尼效果减小震荡和超调系数。

开环控制 vs. 闭环控制

特性 开环控制 闭环控制
核心思想 "命令-执行":我命令你以400的速度转,你就尽力转,转得怎么样我不管。 "命令-执行-反馈-校正":我命令你以400的速度转,你告诉我现在是350,那我就加大力度让你到400。
硬件需求 电机驱动板 + 2根方向线 + 1根PWM线。 开环所有硬件 + 编码器 + 2根编码器信号线。
软件需求 配置GPIO输出 + PWM输出。 开环所有软件 + 定时器编码器模式 + 中断或轮询读取 + 速度计算 + PID算法。
优点 简单、快速、稳定。代码写完就能跑,几乎不会出bug。 精确、自适应。能抵抗负载变化、电压波动,实现精确的速度和位置控制。
缺点 不精确、不可靠。电机实际速度受电压、负载影响很大,两个电机转速会不一致,导致小车跑偏。 复杂、调试困难。就像您现在遇到的情况,一个微小的问题就可能导致系统不工作。

个人理解:开环控制,相对于要求一个眼睛被蒙上的人先前走10m,简单指令但效果不行(可能会走歪或者没走到规定地点);而开环控制,则是一个睁开眼走10m,他会有反馈的信息(必然走了8m还剩两米,反馈回来就是还有继续走直到到达目的地),高效但复杂。

推荐入门也可以是先实现小车的开环控制,直接使能主板对应的gpio口,让其接收pwm信号无反馈,通过代码写规定的速度和方向控制。

软件部分:

代码(使用的是keil的32标准库函数),要有主函数main,串口usart,信号pwm,定时器tim,延时delay,中断等等。

后续仍在写。。

相关推荐
西岸行者3 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意3 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码3 天前
嵌入式学习路线
学习
Lester_11013 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元3 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133973 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315203 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
毛小茛3 天前
计算机系统概论——校验码
学习
babe小鑫3 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms3 天前
ROS2知识大白话
笔记·学习·ros2