新入手一枚 arduino pro mini ATmega328P 没有 usb-to-ttl 转换器,于是考虑使用树莓派给 arduino 下载,也省了转换器的钱。过期的不负责任的教程害人,<font color="red">不要设置 force_turbo = 1,否则树莓派的保修就没了!!!</font>说在前面,树莓派型号是三代 B+,2017年6月最新系统 rasbian,与老教程里系统的文件不太相同。
标签 arduino 下的文章
车总体上能立起来了,但对于较大的干扰,车会向一个方向加速倒去。可能pid参数调得不太好吧,从某些角度考虑参数确实很难调,电机的死区电压较高,而且不同,pwm也是8位精度的,这样可用的pwm范围就更小了,而电机的齿缝较大,有3度左右的偏差。
对于整个系统来说输入量有以下几种,角度,角速度,电机编码器反馈的速度。而输出量便是pwm。
再说下滤波,我用的是卡尔曼滤波,互补融合我没试过,不过据说这两种差不多。
arduino 主函数
还有就是pid,比例积分微分,在直立车中,控制主要分三个环节,直立环,速度环,转向环,最主要的便是直立环,直立环是基础,其他两环其实就是干扰,所以其参数尽量小,这有利于增加系统的稳定性。
直立环,主要是一个式子
平衡车的配件都到货了,买了arduino pro mini 作为主控板,双电机买的是现成的,自带霍尔编码器,还有就是拜托靠点谱的mpu6050加速度计陀螺仪传感器,当然还有电机驱动,反正买回来测试后都能用,只能说都能用,原来家里有一个arduino pro mini,不知道为什么烧不进去程序,这就尴尬了,只能买个新的,开始其实想用两块核心板做的,iic的通信比较麻烦,而且一块板子差不多还够用,atmel328p 16MHZ还是差不多的,不过主要是因为原先有的一块板子坏了,买两块太贵了,所以就。反正一个多小时,管脚啥的就分好了,核心板的硬件资源异常,额,刚好够,两个外部中断,给了编码器,还剩5个pwm,分四个给电机,两个iic的接口,也就这么多了。板子也焊得差不多了,线挺多,mpu6050直接上漆包线,主要是电机编码器啥的线多不好焊,其他的没什么,唉,核心板就是小,不过总体上硬件就搭好了。