Arduino Quadcopter

Arduino Quadcopter

AVAILABLE FOR WORK

AVAILABLE FOR WORK

AVAILABLE FOR WORK

AVAILABLE FOR WORK

Arduino Quadcopter

Robotics

Embedded Systems

Arduino Quadcopter:

  • Arduino Uno

  • MPU6050 IMU

  • 4 ESC 20A

  • 4 2200KV Brushless Motors

  • Rig for 1 axis Test

  • Drone Chassis

  • 1 Lipo Battery 3S - 12v

Arduino Quadcopter

Robotics

Embedded Systems

Arduino Quadcopter:

  • Arduino Uno

  • MPU6050 IMU

  • 4 ESC 20A

  • 4 2200KV Brushless Motors

  • Rig for 1 axis Test

  • Drone Chassis

  • 1 Lipo Battery 3S - 12v

Arduino Quadcopter

Robotics

Embedded Systems

Arduino Quadcopter:

  • Arduino Uno

  • MPU6050 IMU

  • 4 ESC 20A

  • 4 2200KV Brushless Motors

  • Rig for 1 axis Test

  • Drone Chassis

  • 1 Lipo Battery 3S - 12v

Arduino Quadcopter

Robotics

Embedded Systems

Arduino Quadcopter:

  • Arduino Uno

  • MPU6050 IMU

  • 4 ESC 20A

  • 4 2200KV Brushless Motors

  • Rig for 1 axis Test

  • Drone Chassis

  • 1 Lipo Battery 3S - 12v

The goal of this project is to create a stabilized Quadcopter with 100% homemade software. To achieve that goal why not also built the drone itself ? To make my life easier I've chosen parts with a big user-base.

To get started in a safely manner, I've built a rig allowing 2 motors to balance a 1 axis aluminum tube. The goal with this rig is to write a library to use the IMU, the ESC's and to balance the axis.

For the IMU library, I've implemented a Kalman filter to reduce the noise. Unfortunately my IMU data was really noisy and I needed to add a really strong low-pass filter.

For the stabilisation algorithms, I used 2 PID:

  • One to stabilize the rig at the desired angle

  • One to stabilize the rig at the desired angle rate

After a lot of trials and errors, I finally managed to stabilize the rig and it's reacting well to environnemental changes (wind, bumps…)

I had a lot of problems when implementing the program for 3 axis on the drone:

  • Firstly my motors output differs greatly, sometimes 50% of difference, I had to implement a dynamic offset on each motors based on throttle. I picked matching ones on the rig

  • No matter how hard I tried, I couldn't stabilize the drone. Hours passed adjusting the PIDs the Offsets, the filters on the IMU with no results. It was like the drone was reacting with a delay. So I timed the main loop. It turned out it was taking way too much time (20ms)

I couldn't resolve this problems with the current state of the project, the STM32 Quadcopter project aims to solve theses problems.

Github: