`
硬件上,MCU选用STM32f407zgt6,imu选用gy-86(mpu6050+hmc5883+ms5611)。电机为大疆无刷电机m2006,电机驱动为电调c610,所以选用6s航模锂电池,所以需要设计24V转5v,5v转3.3v稳压电路,分别使用lm2576-5.0和asm1117-3.3稳压芯片,由于电调使用can总线通信,所以需要单片机外接can芯片,选用TJA1050,除此之外就是MCU的一些接口电路,包括led,key,sw下载接口、多路串口、PWM和IO。总得来说比较简单(需要注意一点是:电池24v输出到电调24v输入,是在PCB上走线,单路额定电流10A,线宽需要注意,最好双面都布线)。 这是AD18的PCB工程链接,这是pcb的3d图:
https://github.com/iamluoyijie/snowstorm_car/blob/master/%E6%BA%90%E4%BB%A3%E7%A0%81/boarddrivers/ps2.c
1、速度内环的pid效果不太理想,500的电机目标转速,实际转速波动有正负50。角度外环0度的期望角度,有正负0.5度的波动,小车运动过程中,速度过快就会倒。我感觉最重要的原因就是电池太重,导致小车重心偏高,其次就角度更新频率太慢,电机转速值不准,pid参数也不是最优。
2、代码上,使用了太多全局变量。led的状态显示没好好弄,ps2的好多按键没利用上。
3、接下里的工作就是,使用RT-Thread的IPC机制,尽量减少全局变量的使用。 通过yaw角度或电机编码器,实现转向环 速度 的闭环控制。增加 前进 和 转向 的位置控制。(前面的都是速度控制),也就是说还要增加3组pid控制。
4、可能会重新设计电机支架,把电池放到电机下面,降低平衡车重心。会增加树莓派,用opencv实现简单的目标跟踪等工作。
`