Gebrekidan Yonatan Yakob
Department of mechanical and electrical engineering, university of electronic science and technology of
china, china, E-mail: yonatanyakob52@gmail.com.
1. Abstract
This paper proposes design of working prototype of radio controller (RC) controlled quadcopter
which is realized based on Arduino UNO microcontroller as a flight controller. In this paper
Arduino based quadcopter uses the flying advantage in order to provide a lot useful function to
humans, functions which are beyond the normal capability of a human. From defining and
explaining the parts used in the prototype, it further tries to describe the operating systems. A
schematic diagram that shows how the parts are interconnected to each other and work
instantaneously to make the desired output is also included. The results were displayed and the
programming was done on the Arduino IDE.
Key words: drone, UAV, quadcopter, Arduino, RC controller.
2. Introduction
A quadcopter drone (or un-crewed aerial vehicle) is a four-winged aircraft without a human pilot
on board and a type of unmanned Ariel vehicle (UAV). Drones are a component of an unmanned
aircraft system (UAS); which include a UAV, a ground-based controller, and a system of
communications between the two. the engineering materials used to build the quadcopter drone
are highly complex composites designed to absorb vibration, which decrease the sound
produced. These materials are very light weight.
Quadcopters are a type of drone which have four wings. Quadcopters generally use two pairs of
identical fixed pitched propellers; two clockwise (CW) and two counterclockwise (CCW). These
use independent variation of the speed of each rotor to achieve control. By changing the speed
of each rotor, it is possible to specifically generate a desired total thrust; to locate for the centre
of thrust both laterally and longitudinally; and to create a desired total torque, or turning force
[1]. In order for the drone to fly it needs a flight controller, A flight controller (FC) is the brain of
the aircraft. It’s basically a circuit board with sensors that detects orientation changes of the
drone. It also receives user commands, and controls the motors in order to keep the quadcopter
in the air. Nearly all flight controllers have basic sensors such as Gyro (Gyroscopes) and Acc
(Accelerometer). Some FC might include more advanced sensors such as Barometer (barometric
pressure sensors) and magnetometer (compass). Flight controller is also a hub for many other
peripherals, such as GPS, LED, Sonar sensor etc. [2]. There are many kinds of flight controllers
available commercially. But for this project Arduino is used as a flight controller. The reason why
Arduino is used to build this quadcopter is that most of other flight controllers are expensive and
they are not flexible, that means a person can edit and change only some basic settings. But when
it comes to Arduino, compared to other flight controllers it is cheaper and it is very flexible. It can
be edited, as it is an open source hardware, also there are many resources on YouTube and other
websites. it is also possible for Arduino to be equipped with different state of the art technology
such as infrared cameras, GPS and laser (consumer, commercial and military UAV), ultrasonic
sensors, cameras and many others. So using Arduino as a flight controller is beneficial.
3. Flight controllers
A flight controller (FC) is a small circuit board of varying complexity. Its function is to direct the
RPM of each motor in response to input. A command from the pilot for the multi-rotor to move
forward is fed into the flight controller, which determines how to manipulate the motors
accordingly [3].
A lot of flight controllers have been manufactured over the years. DJI Naza Lite flight controllers
and CC3D flight controllers are the most popular flight controllers. DJI Naza Lite flight controllers
are the ultimate flight controllers, easy to set up, with a multitude of features, optimized ease of
use, and relatively straightforward setup. The CC3D too is relatively easy to set up, leaning on a
software wizard to configure the board, step-by-step. It features multiple flight modes, including
self-leveling and completely manual input. It lacks the autonomous natures of the Naza, as well as
GPS lock.
4. Components
The components which are used to build the Arduino based quadcopters are listed below.
i)
Drone frame
Basically, the drone frame is the most important to build a drone. It helps to mount the motors,
battery, and other parts on it. If you want to build a copter or a glide, you first need to decide what
frame you will buy or build. For example, if the drone is a tri-copter, the drone will be smaller, the
number of motors will be three, the number of propellers will be three, the number of ESC will be
three, and so on. If the drone is a quadcopter it will require four of each of the earlier specifications.
For the gliding drone, the number of parts will vary. So, choosing a frame is important as the target
of making the drone depends on the body of the drone. And a drone's body skeleton is the frame.
In this paper for the purpose of this experiment quadcopter frame F450 is used.
ii)
Electronic speed control
A quadcopter’s flight must be controlled and balanced in a certain way. The motors are controlled
by little units called electronic speed controllers (ESCs) [7]. An electronic speed control or ESC
is an electronic circuit that controls and regulates the speed of an electric motor. It may also provide
reversing of the motor and dynamic braking. Miniature electronic speed controls are used in
electrically powered radio-controlled models. Full-size electric vehicles also have systems to
control the speed of their drive motors. An electronic speed control follows a speed reference
signal (derived from a throttle lever, joystick, or other manual input) and varies the switching rate
of a network of field effect transistors (FETs). By adjusting the duty cycle or switching frequency
of the transistors, the speed of the motor is changed. The rapid switching of the transistors is what
causes the motor itself to emit its characteristic high-pitched whine, especially noticeable at lower
speeds. Different types of speed controls are required for brushed DC motors and brushless DC
motors. A brushed motor can have its speed controlled by varying the voltage on its armature.
(Industrially, motors with electromagnet field windings instead of permanent magnets can also
have their speed controlled by adjusting the strength of the motor field current.) A brushless motor
requires a different operating principle. The speed of the motor is varied by adjusting the timing
of pulses of current delivered to the several windings of the motor. Brushless ESC systems
basically create three-phase AC power, NOT like a VFD variable frequency drive, to run brushless
motors. Brushless motors are popular with radio-controlled airplane hobbyists because of their
efficiency, power, longevity and light weight in comparison to traditional brushed motors.
Brushless DC motor controllers are much more complicated than brushed motor controllers. The
correct phase varies with the motor rotation, which is to be taken into account by the ESC: Usually,
back EMF from the motor is used to detect this rotation, but variations exist that use magnetic
(Hall effect) or optical detectors. Computer-programmable speed controls generally have userspecified options which allow setting low voltage cut-off limits, timing, acceleration, braking and
direction of rotation. Reversing the motor's direction may also be accomplished by switching any
two of the three leads from the ESC to the motor. For this experiment Simonk 30A ESC is used.
iii)
Brushless DC electric motor
A brushless DC electric motor (BLDC motor or BL motor), also known as electronically
commutated motor (ECM or EC motor) and synchronous DC motors, are synchronous motors
powered by direct current (DC) electricity via an inverter or switching power supply which
produces an alternating current (AC) electric current to drive each phase of the motor via a closed
loop controller. The controller provides pulses of current to the motor windings that control the
speed and torque of the motor.
iv)
Propellers
We have two kinds of propellers, also called props, used in a quadcopter drones. They are as
follows:
1) Standard Prop
The “tractor” propeller are the props at the front of the quadcopter. These props pull the quadcopter
through the air like a tractor. Most drone propellers are made of plastic and the better quality made
of carbon fiber. It is also possible to buy and use drone prop guards which is necessary especially
if you are flying indoors or near people. This is also an area where we are seeing plenty of
innovation. Better prop design will assist with giving a better flying experience and longer flight
times. There is also some big innovation towards low noise UAV props. It is always a good practice
to inspect the props before flying and carry an extra set in case there is some damage on a prop. It
is too risky to fly with a damaged or bent prop.
2) Pusher Prop
The Pusher props are at the back and push the UAV forward hence the name “Pusher props”. These
contra-rotating props exactly cancel out motor torques during stationary level flight. Opposite pitch
gives downdraft. Again, can be made of plastic with the better pusher props made of carbon fiber.
You can also purchase guards for the pusher props. Same as for tractor props. It is good to Inspect
before each flight and carry a spare set.
v)
Arduino as flight controller
Arduino is open-source hardware. The hardware reference designs are distributed under a Creative
Commons Attribution Share-Alike 2.5 license and are available on the Arduino website. Layout
and production files for some versions of the hardware are also available.
Arduino board designs use a variety of microprocessors and controllers. The boards are equipped
with sets of digital and analog input/output (I/O) pins that may be interfaced to various expansion
boards or breadboards (shields) and other circuits. The boards feature serial communications
interfaces, including Universal Serial Bus (USB) on some models, which are also used for loading
programs from personal computers. The microcontrollers are typically programmed using a dialect
of features from the programming languages C and C++. In addition to using traditional compiler
toolchains, the Arduino project provides an integrated development environment (IDE) based on
the Processing language project. Many Arduino-compatible and Arduino-derived boards exist.
Some are functionally equivalent to an Arduino and can be used interchangeably. Many enhance
the basic Arduino by adding output drivers, often for use in school-level education, to simplify
making buggies and small robots. Others are electrically equivalent but change the form factor,
sometimes retaining compatibility with shields, sometimes not. Some variants use different
processors, of varying compatibility.
IDE
The Arduino integrated development environment (IDE) is a cross-platform application (for
Windows, macOS, Linux) that is written in the programming language Java. It originated from the
IDE for the languages Processing and Wiring. It includes a code editor with features such as text
cutting and pasting, searching and replacing text, automatic indenting, brace matching, and syntax
highlighting, and provides simple one-click mechanisms to compile and upload programs to an
Arduino board. It also contains a message area, a text console, a toolbar with buttons for common
functions and a hierarchy of operation menus.
Sketch
A sketch is a program written with the Arduino IDE. Sketches are saved on the development
computer as text files with the file extension of .ino. Arduino Software (IDE) pre-1.0 saved
sketches with the extension of .pde.
A minimal Arduino C/C++ program consists of only two functions:
•
setup (): This function is called once when a sketch starts after power-up or reset. It is used
to initialize variables, input and output pin modes, and other libraries needed in the sketch.
•
loop (): After setup () function exits (ends), the loop () function is executed repeatedly in
the main program. It controls the board until the board is powered off or is reset [4].
vi)
Battery
A lithium polymer battery, or more correctly lithium-ion polymer battery (abbreviated as LiPo,
LIP, Li-poly, lithium-poly and others), is a rechargeable battery of lithium-ion technology using a
polymer electrolyte instead of a liquid electrolyte. High conductivity semisolid (gel) polymers
form this electrolyte. These batteries provide higher specific energy than other lithium battery
types and are used in applications where weight is a critical feature, like mobile devices and radiocontrolled aircraft [5]. Lithium polymer (LiPo) batteries offer the best combination of energy
density, power density, and lifetime on the market. It’s always great to carry a spare battery or 2.
It is necessary to Read and follow the instructions for charging and storing the battery to make
sure it lasts a long time. It is also important to check the battery doesn’t overheat. So for this
experiment LIPO batteries are used.
vii)
RC transmitter and receiver
•
•
Transmitter: - It is and held controller that sends the pilots inputs to the airplane. The
transmitter converts the pilot's movements into a radio signal in a process called
modulation. The transmitter then broadcasts this signal to the receiver.
Receiver: - It is electronic unit that is placed in the quadcopter. It receives signals
from the transmitter and send these signals to the Arduino board in order to control
the motors. The receiver inside the quadcopter picks up this signal. The receiver
pulls the information from the radio waves and relays this information to the flight
controller.
viii)
MPU-6050 accelerometer and gyroscope
The MPU6050 is a Micro Electro-Mechanical Systems (MEMS) which consists of a 3-axis
Accelerometer and 3-axis Gyroscope inside it. This helps us to measure acceleration, velocity,
orientation, displacement and many other motions related parameter of a system or object. This
module also has a (DMP) Digital Motion Processor inside it which is powerful enough to perform
complex calculation and thus free up the work for Microcontroller.
3) Schematic diagram of the circuit board connection
Schematic diagram of the circuit board connection of the quadcopter is given below on figure 1
[6].
figure 1:
4) Working principle
for this quadcopter to work we need 4 brushless motors, 4 ESCs, a transmitter and a receiver,
Arduino UNO as a flight controller, MPU-6050 gyroscope, LIPO battery as a main part and we
have some resistors, diodes and LED as an indicator. As in the schematic diagram above in fig 2.1,
the battery is directly connected to the electronic speed controllers and the electronic speed
controllers are connected to each of the dc motors respectively. And also, the ESC is connected to
the Arduino board in order to receive a command to control the motors. The command to control
the motors speed is going to be send from the flight controller, for this case it is Arduino. On the
other hand, the gyroscope is connected to the Arduino board in order for the Arduino to know the
exact position and level of the drone. The receiver is also connected to the Arduino board, which
is useful to receive data or a command from a person on the ground and transmit the command to
the Arduino, and after receiving the command the Arduino compares the incoming command with
position information which is obtained from the gyroscope, then after comparing the Arduino
sends a controlling signal to ESC to control the motors. The working principle looks very easy but
the Arduino program and the process of controlling the whole system is difficult. The whole system
is powered by a rechargeable lithium ion battery. It is applied directly on the electronic speed
controllers (ESC). Then the Arduino UNO is connected to the 5v output of motor controller. The
components and their position on the quadcopter are shown on figure 2.
Gyroscope
RC transmitter
ESC (electronic
speed controllers)
Arduino
UNO board
Quadcopter
frame F450
figure 2:
Receiver
Brushless dc
electric motors
propellers
5) Control system
The whole frame of the quadcopter including ESCs, motors, the gyroscope, the receiver and
other components work and controlled by the Arduino UNO as mentioned above. For this project
the program on the Arduino is divided into three parts. The first program is for calibrating the
ESC. The second program is for the flight controller. The last one is for transmitter setup. As a
sample a part ESC calibrating code is shown on Figure 3.
Figure 3:
6) Future promises
For the future this Arduino based quadcopter can be optimized. It can add many features
including self-balancing without human interference, collision omitting ability by using some
additional sensors, by adding a GPS module to the quadcopter it is possible to make it follow a
specific path.
7) Conclusion
Generally, a quadcopter is a lifting device which is capable of moving, often used for lifting heavy
loads for industrial or construction purpose. In this design of the quadcopter Arduino UNO was
used as a flight controller device, which is an open-source microcontroller board based on
the Microchip ATmega328P chip and developed by Arduino.cc. And F450 quadcopter was chosen
to implement the design. The final prototype was built and the result seemed very satisfying. For
the future in order to improve the performance and the ability of this Arduino based quadcopter,
adding some additional features mentioned in the future promises would be great.
References
[1]. Stafford, Jesse (Spring 2014). "How a Quadcopter works | Clay Allen". University of Alaska,
Fairbanks. Retrieved 2015-01-20.
[2]. https://oscarliang.com/best-flight-controller-quad-hex-copter/
[3].https://www.tomshardware.com/reviews/multi-rotor-quadcopter-fpv,3828-3.html
[4]. https://en.wikipedia.org/wiki/Arduino
[5]. https://en.wikipedia.org/wiki/Lithium_polymer_battery
[6]. http://www.brokking.net/ymfc-32_main.html
[7]. Justo P, 2016, “make: DIY drone and quadcopter projects”, San Francisco, Maker Media,
Inc.,