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

针对四轮避障小车,学习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,中断等等。

后续仍在写。。

相关推荐
小李做物联网1 小时前
【物联网毕设】60.1基于单片机物联网嵌入式项目程序开发之智能家庭安防感应报警
stm32·单片机·嵌入式硬件·物联网
沉在嵌入式的鱼1 小时前
STM32--BH1750光敏传感器
stm32·单片机·嵌入式硬件·bh1750·光敏模块
bai5459361 小时前
STM32 单片机 按键控制led灯亮灭
stm32·单片机·嵌入式硬件
学编程的闹钟1 小时前
75【虚拟主机和ftp】
学习
松涛和鸣1 小时前
24、数据结构核心:队列与栈的原理、实现与应用
c语言·开发语言·数据结构·学习·算法
三佛科技-187366133971 小时前
FT60F210-URT是什么芯片?FT60F210-URT(系统框图及管脚定义)
单片机·嵌入式硬件
可可苏饼干1 小时前
Docker命令与知识点归纳
运维·学习·docker·容器
灰灰勇闯IT1 小时前
Flutter 适配 OpenHarmony 全流程实战:基于 GitCode 社区项目快速落地
笔记·学习·harmonyos
传感器与混合集成电路1 小时前
提升多轴同步精度:DSP+FPGA架构在高端特种装备伺服控制中的应用
嵌入式硬件·fpga开发·架构