Autonomous Quad Copter

Hello everybody,
we have a few problems with our quadcopter which we bought from the following link:

Our aim was letting this quadcopter fly autonomously from A to B. So we removed the original circuit, the camera, the LEDs etc. and implemented the following hardware components:

• an Arduino Mega 2560 µController board
• a self-designed circuit with PNP-transistors
• an MPU6050 sensor board and
• 5 ultrasound sensors showing in different directions for collision avoidance

In the following list, the attached pictures will be described:
• The 1st picture illustrates our test environment for testing the balance of opposite rotors.
• The 2nd picture shows our quad copter from above. In the centre there is the battery and the MPU6050 sensor.
• In the 3rd picture the MPU6050 sensor is placed on foam which avoids vibrations when the rotors are rotating and causing vibrations.
• In the last picture there is a CD casing which includes our self-built circuit with transistors as well as the Arduino Mega 2560 board at the bottom and the wires. The 5 ultrasound sensors are fixed on the CD casing from outside.

There haven’t been any problems running the DC-motors via PWM and our self-built circuit. The ultrasound sensor also delivered accurate distance values. Then we tested the MPU6050 sensor values, everything seemed to be OK. Afterwards we took an online source code for the PID-regulation (GitHub - helscream/MPU6050_Arduino: A small librabry file which can be used for reading MPU6050) and adapted it in our software.

So we tried to adapt the PID components. In the test environment the PID regulation seemed to be OK as well. So last, we let the quadcopter “fly” in our lab. Our first aim was letting the quadcopter just hover in a height of about 20-30 cm. Unfortunately, this didn’t work as we expected. At this point, we cannot make several tests like this, because it can get dangerous and we don’t want our quadcopter collide against the wall or any other object, because the PID regulation doesn’t work properly.

Now we don’t know where the problems are? We have some considerations as listed below:

  1. Shall we use ESCs instead of our self-built circuit which is maybe too slow with the transistors?
  2. Do we have to adapt the PID components in another way because the current PID values are maybe useless?
  3. Do we need another test environment in which we can adapt the PID values in a better way?
  4. How can we boost up the Arduino Mega 2560?
  5. Shall we use another sensor than the MPU6050?

We appreciate all your tips and suggestions.