项目与PID
项目
PID算法
pid.out可以是电压,占空比等,关键在于设置了之后,对3个参数的调试,看是否能达到预期值
妈的傻逼野火串口,修改PID怎么没用啊,解析尼玛戈壁的数据还要int,传float给老子乱解析


差速控制不算是增量型,因为没有PID累加没有累加



增量型要把得到的PID结果与历史结果进行累加,再将结果去控制
P就相当于原始力量,可被加持或削弱
I就相当于历史误差的累积,根据偏离程度来给P的力量进行调节
D就相当于抑制力量下一步的突变,如果力量不稳定,被加持或削弱程度太大,在二者极值来回震荡,可以增大D,D合适大,曲线就平滑
MPU6050
可以中断触发,连IN线,在外部中断里面进行姿态解算
他妈的堆栈爆了,可以尼玛逼
傻逼零点漂移,原始yaw值尼玛不做处理偏到美国去了
自己看手册了解驱动库
正点原子的傻逼库,init函数乱写,我的MPU9250是不是烂了?对,
上电数据清零:库自带的,以当前位置为基点,必须放置水平才能初始化;
上电数据不为0,以标准固定位置为基点,在自检函数里面加

这样不是水平也能初始化,并且以一个固定位置为基点
MPU6050安装位置不是标准位置,导致数据增减不对,右手定则增减角度
z:yaw x:roll,y:pitch
求AI,改原始数据位置矩阵

YAW值不能用,偏移很严重,算法解决不了
总结:
不动驱动函数,MPU水平放置才能初始化,并且上电清零
改写驱动函数,MPU可不在水平位置初始化,并且上电不清零
根据安装方向改写矩阵,保证方向增减符合右手定则
编码器电机
这个垃圾电机,转一圈,在两个通道上都计数的话,会产生他妈1040个脉冲,计算速度定时器间隔他妈的不能太小了,最好弄他妈个50ms,才能精确
垃圾电机本来就是歪货,编码器定时器就不要设置预分频了,不然轱辘转一圈才计尼玛几个数
F103C8T6
我尼玛不愧是廉价芯片,4个定时器用尼玛呢?这尼玛点引脚用的抠抠搜搜
5月8日
屎一样的PID到底怎么调?到处都是问题,弄个上位机调,问题一堆啊,手动调更不用说,烧写慢的批爆
弃赛了
9月6日
2天完成双环串级PID曲线循迹,就是调,拼耐心,会看图,配置好协议用上位机,但是角度突变(尖角)无法处理;还有MPU陀螺仪,视觉识别没加上,另一个模式来
我认为关于PID的实现,我要做的就是把得到的pid结果,来调节(直接或间接)pid的采集数据参数(速度),形成闭环
比如
寻迹pid里采集的是寻迹的偏离程度,而循迹的偏离又是由车轮的转速控制的,车轮的转速又是电机的占空比控制的,所以我们要让得到的结果去调节占空比。这样参数会越来越接近目标
PID 输出的作用,就是强迫测量值往目标值靠拢。它本身并没有什么含义,关键在于应用的系统
方向环和速度环双环调节,方向环先将自己的输出结果作为速度目标(间接调节参数:偏移程度)传递给速度环,速度环采集实时速度将结果设为占空比(直接调节参数:速度)
陀螺仪控制舵机
9月22日
完成陀螺仪控制舵机,调PID依旧很傻逼,mpu6050一步一坑

