声明
书接上文,本人并非该专业相关。也仅利用暑假学了STM32(江科大好评),兴趣使然做了这个无人机,分享一下过程中遇到的问题。该无人机仍然存在一定的问题,解锁过程不够安全,气压计、磁力计(已写好驱动)数据未能实现与遥控端通信。仅实现了基本的滤波 pwm nrf24l01 mpu6050数据融合。大部分代码手写,一部分移植,感谢所有开源的大佬。
代码部分
不说废话,源码已经上传hub。需要的自取(如果有用的话,自认为注释还是很详细的)
https://github.com/muli25946/STM32F103_Quadcopter.git
目前使用仍存在问题(pid调节不明显,控制时间一长程序堵塞),但驱动部分实现了主要功能,可放心使用
硬件部分
机架:F330
无刷电机:xxd2212
电调:xxd30A
姿态传感器
这个虽说是九轴传感器,但我买的始终读不到磁力计,也有很多人说这个的磁力计有毛病,买了一个,最终放弃选用MPU6250
无线通信
最开始买的NRF24L01带天线款,但无法驱动,怀疑供电不足,无法驱动功放。也有的只需要在电源端加电容就能解决,很魔幻。最后选用NRF24L01板载天线那款
其他(没有遇到问题)
气压计 BMP280
磁力计 QMC5883L(有的商家写的和卖的不一样)
算法
使用卡尔曼算法融合数据解算PITCH ROLL(mohany算法在源码的压缩包里)
CSDN也有很多大佬讲的很好
PID:
https://blog.csdn.net/skythinker616/article/details/123019829?spm=1001.2014.3001.5506
IMU:
https://blog.csdn.net/u012836279/article/details/90384003?spm=1001.2014.3001.5506
kalman:
https://blog.csdn.net/qq_37214693/article/details/130927283
遥控器
严格来说,应该不算自己设计的板子,就是一块有插孔的洞洞板,但是白嫖。放个图吧,很简单