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

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

后续仍在写。。

相关推荐
没有医保李先生14 分钟前
esp32和stm32的工程宏定义
stm32·单片机·嵌入式硬件
szxinmai主板定制专家1 小时前
基于ZYNQ MPSOC船舶数据采集仪器设计(一)总体设计方案,包括振动、压力、温度、流量等参数
arm开发·人工智能·嵌入式硬件·fpga开发
2501_918126912 小时前
学习所有6502写游戏存档的语句
汇编·嵌入式硬件·学习·游戏·个人开发
普中科技2 小时前
【普中STM32F1xx开发攻略--标准库版】-- 第 38 章 RS485 通信实验
stm32·单片机·嵌入式硬件·开发板·通信·rs485·普中科技
星雨流星天的笔记本2 小时前
2.用洗洁精洗过的三口烧瓶的处理方法
学习
DLGXY2 小时前
STM32(二十七)——独立看门狗&窗口看门狗
stm32·嵌入式硬件·算法
weixin_462901972 小时前
方案 3:手机控制 ESP32
单片机·嵌入式硬件
云边散步2 小时前
godot2D游戏教程系列二(18)
笔记·学习·游戏
風清掦2 小时前
【江科大STM32学习笔记-09】USART串口协议 - 9.1 STM32 USART串口外设
笔记·stm32·单片机·嵌入式硬件·学习
奶茶精Gaaa3 小时前
AI实战(二)生成ui自动化
功能测试·学习·自动化