Hey guys, in this
post I will show you how to make
flight controller with Arduino for drone or quad-copter. The flight controller is a
device used to control multi-rotor vehicles such as quad-copters, drones, etc. It
is one of the most important devices for it to work properly. It is almost
impossible for a person to control multi motors at the same time to keep it
stable and turn stable. This is where the flight controller comes in help. However,
they are not that cheap. You can make one yourself with Arduino. We will use
this flight controller for our Arduino based drone.
So our drone will have these:
Please note the direction of the
propeller rotation. It is very important to make the propeller rotate in this
direction to cancel the torque and therefore make it stable. We can see that all
the motors on every side are rotating in the opposite direction of the
adjacent motor. This cancels the torque. Therefore, it is very important to use
the same size motors, the same rated speed, voltage current. If any of the motor is
different from the other, it will cause a huge problem on the drone. So, make
sure you are buying the same type of motor for all.
We will have a receiver
based on Arduino, a flight controller also based on Arduino and motor speed
controller. We all know that Arduino is a powerful microcontroller for an interesting project. But using it as a drone flight controller is more
difficult than you can ever think. The flight controller has to be very reactive to
sensible movements in other to adjust the speed of the motors to keep the drone
stable. That is also why we are using the 16Mhz version of the Arduino pro mini.
It performs its calculations faster. If we use the 8Mhz version, it would
probably have some reactive errors. The 16MHz version is quicker as it has a
higher frequency clock speed.
we need a microcontroller to control the receiver and also the flight controller. We will
control the speed of the motor with N-channel Mosfets by sending a PWM signal
from the Arduino to its gate. This will change the average voltage and
therefore control the speed of the motors.
Using 2 Arduinos and 3 a circuit like this will make the quadcopter too heavy. As we are using coreless
dc motors, our quadcopter has to be as light as possible to create lift. The
coreless DC motors are not as powerful as brushless DC motor. Our drone will
weight around 100g. So, each motor has to generate 25g of thrust to create
lift. So, we will use only one Arduino to control both the receiver and the
flight controller. we will reduce it into 2 circuits with one Arduino
controlling both. For a more complex drone, such as the drone with brushless
motors and lots of sensors, we would use 2 Arduinos as we would require more
connections. For brushless Dc motor drone, using two Arduino, which adds more weight
won’t affect the drone too much as brushless dc motors are very powerful and can
lift heavier weight.
So this is how our control system will look like. For this part, we will concentrate only on the flight controller.
So our circuit will look like this:
So let's design it. I am using easyEDA to design my circuit.
Our Schematic will look like this:
Now, we have to make the
schematic of the circuit first which is the connections between components
that the software will use to generate a PCB version of the circuit. So, you
have to make sure that all the connections are correct. Once you have created your
schematics, generate the PCB version. You can now place the components where
you want it to be in the circuit and then draw tracks to connect all the
components. I recommend using tracks of width hither than 0.4 mm. You can use
below 3 mm for places that have no other way to connect.
Note this arrangement. I chose this arrangement to make it as small as possible. The circuit is just
3.3 cm X 4 cm.
Note that I have designed everything in the bottom layer. Since we will have SMD Mosfet and diode and every component will be soldered in one layer, we have to design everything in the bottom layer else the SMD component will be inverted while doing toner transfer.
And we now common all the ground using solid copper.
So this is our final circuit. We just have to export it as a PDF for printing.
Here is the youtube video for it:
Hope you guys like it... We will make the PCB in the next post.
1 Comments
Can I use an Arduino Nano on the receiver instead?
ReplyDeletePost a comment