Quadcopter
This is a DIY quadcopter that controlled by a DIY remoter. It is an open-source project in github. I bought the relevant hardwares, and revived this project.
The hardware is divided into three parts, the flying machine, the main control board, the remote control board and the battery.
The craft includes motor, paddle and shell.
The main control board consists of STM32F103C8T6 minimal system, BL8530s boost module, 662K voltage regulator module, six-axis sensor MPU6050, LEDs, and NRF24L01 2.4GHz module.
The remote control board consists of STM32F103C8T6 minimal system, multiple buttons, two joysticks, NRF24L01 2.4GHz module, LEDs, MIC5219 voltage regulator module, and AT24C02 module which stored the fine tuning values.
For the main control board, after the necessary system and device initialization, the six-axis data from the mpu6050 and the received control data are acquired every 5 ms, followed by Kalman filtering and quaternion attitude settlement, followed by PWM output control using PID.
For the remote control board, after the necessary system and device initialization, the joystick values and key values are acquired by ADC (DMA) every 10 ms, followed by NRF data transmission.
After this project, I have a more comprehensive knowledge about system control.