PID:从入门到放弃
前言
前段时间参加了智能小车的比赛,为了方便和快速性,我们采用了四个麦克纳
姆轮结构的小车,并用 openmv 做视觉导航定位。由于这个项目是第一次做,
而且没有学长学姐的指导,不过好歹跌跌撞撞的走过来了。现在,横跨在我们
面前的是“如何使小车启动后直走”这一个大魔王。为了战胜它,我们决定去寻
找传说中的“pid 调节器”圣剑……
什么是模拟量
前情回顾:
首先,单片机的一般 GPIO 口输入输出量为 0 和 1,也就是对应的 0V 和 5V
(或 3.3V),但是现在的 STM32 系列的单片机不仅可以输入输出 0V 和 5V,
同时也可以输入输出 05V 之间的电压。但由于 05V 电压变化范围很小,并且
电压值属于一个物理量,这个量并不直观,并且这个量并不能由单片机直接输
入输出或处理。我们可以把这个物理量转变为更加直观的数字量,这个数字量
不仅可以表现出电压的相对高低,而且这个数字量可以直接给单片机进行数据
处理。我们把 05 这一段区域等分成 256 等份(这里的 256 是单片机标准库里
所提供的对于模拟量精度的设置,当然用户也可以自己去写一个精度更高的模
拟量输出函数),那么 05V 电压我们就可以用 0~255 这些整数来表示。这样
用一个直观的数字量去表示一个测量量(电压、电流、频率、温度等),这个
数字量就是称为模拟量。
————by 李杰大佬
什么是 PWM:
我们普通的控制,只需要给其高电平,或者是低电平就可以进行控制了,如果
想让其在中间某个值进行控制,就需要使用 pwm 来控制,也就是快速的对该
器件进行开关动作。一个比较常用的 pwm 控制情景就是,来调节灯的亮度,
根据占空比的不同,就可以完成灯亮度的不同控制。pwm 的占空比,就是指
高电平保持的时间,与该 pwm 时钟周期时间之比。一般用单片机来产生