Difference between revisions of "Microduino-Quadcopter Tutorial"

From Microduino Wiki
Jump to: navigation, search
Line 4: Line 4:
{| class="wikitable" style="background-color:#FEF9E7;"
{| class="wikitable" style="background-color:#FEF9E7;"
|View the <b>[[Quadcopter_Kit:_Quickstart_Guide]]</b> here!
|View the <b>[[Quadcopter Kit: Quickstart Guide]]</b> here!

Revision as of 22:35, 4 October 2018

Language: English  • 中文
View the Quadcopter Kit: Quickstart Guide here!


Quadcopter is one kind of aircraft that is equipped with four propellers. Similar to the helicopter, it can finish the action of hover and flight. A traditional helicopter uses a main rotor to generate thrust and a tail rotor to offset the torque from the main rotor, namely, locking the tail. While the quadcopter adopts positive and negative propeller design and therefore, needs no extra structure to lock the tail. Four propellers distribute symmetrically in the shape of a cross. The No. 1 and No. 2 propellers rotate anticlockwise while the No.3 and No.4 rotate
clockwise. When the four propellers generate the same thrust, the anti-torque imposed on the body by the two groups offset, balancing in the vertical direction
and making sure flight stability.

According to the user-defined fore and aft direction of the aircraft, the quadcopter can be divided into the cross mode and X mode. The cross mode means that the fore and aft direction points to
a certain propeller and the X mode refers to that the fore and aft direction points to the middle of two propellers.

For most aircraft adopting X mode, the X mode is harder to control but more flexible.
Pitchd Roll1.jpg


System Structure


As the picture shows, the Quadopcter consists of a remote controller, a flight controller and four motors. And for the flight controller includes a microcontroller, a remote control signal receiving module, a motor driving module and sensor modules (A gyroscope, an accelerator, an electronic compass and a GPS module).

Flying Principle

Vertical Motion

Vertical motion includes rising or falling vertically. As the text mentioned previously, the quadcopter can keep balance horizontally by four motors maintaining the same rotation rate. As you can see from picture 2.2.1, if the four motors increase to the same speed, the generated thrust will be large enough to overcome the quadcopter weight and rise, and vice versa. Under the condition of no surrounding interruption, the four motors can generate enough thrust to overcome the weight and therefore, the quadcopter can suspend in the air.

The quadcopter can fly steadily in the vertical direction as long as the four motors maintain the same speed.

Front & Lateral Motion

The motor 1 is the head of the aircraft and the motor 2 is the rear.
How does the quadcopter move forward? Get a thrust in the horizontal direction: By increasing the speed of the motor 2 and the thrust increases in the rear. By decreasing the speed of the motor 1, the thrust will get reduced in the head. In this case, the aircraft will move forward. At the same time, by maintaining the speed of the motor 3 and 4 to keep the anti torque balance, the aircraft will fly forward steadily and vice versa.

Since the quadcopter is symmetrical in the middle, the action of controlling the quadcopter forward or laterally is similar. Just keep in mind, the control of the two groups of motors should be reversed while trying to fly the aircraft laterally. For example, by keeping the speed of the motor 1 and 2 the same, increasing the speed of the motor 4 and decreasing the speed of the motor 3, it will generate horizontal thrust to the left and the aircraft will move left.



Yawing Motion

The three kinds of motion mentioned above all happen in the directions of the three axes. Next, we'll introduce the motion around the three axes.

Yawing motion is the rotation in the horizontal direction, namely rotation around the Z-axis.

During the rotation, it will form an anti-torque opposite to the rotation due to air resistance. Yawing rotation is realized by using the reverse torque. When the aircraft suspends, the speed of the four motors is the same, which can offset torque in both horizontal and vertical direction, and achieve balance. When the speed of the four motors is different, unbalanced anti-torque will cause horizontal rotation and the aircraft will deviate from the route. As the picture shows, by increasing the speed of the motor 1 and 2, and decreasing that of the motor 3 and 4, the clockwise anti-torque generated by the motor 1 and 2 will be larger than the counter clockwise anti-torque generated by the motor 3 and 4, causing clockwise rotation of the aircraft horizontally and generating no vertical displacement when there is no change in the thrust upside.

Pitch and Roll Motion

Pitch motion refers to the rotation in the Y-axis direction while the roll motion refers to the rotation in the X-axis direction.

As the picture shows, by increasing the speed of the motor 1 and decreasing that of the motor 2, and keeping the same of the variable quantity as well as the speed of the motor 3 and 4: The thrust of the head is larger than that of the rear. The unbalanced torque makes the body rise. Similarly, the roll motion is realized by reducing the speed of the motor 1 and increasing that of the motor 2, generating a torque forward.
The principle of the roll and pitch motion is the same due to symmetry in the middle. By keeping the speed of the motor 1 and 2 unchanged, and changing the speed of motor 3 and 4, it'll generate unbalanced torque and make the aircraft rotate around the X-axis direction.


Turn over-sport.jpg

Control Procedure

The remote controller sends out control command, such as take-off or flying left. The control signal is received wirelessly.

  • A remote control signal receiving module receives a control signal, which is converted into PWM, PPM or other signals and then transmitted to the flight controller.
  • Micro controller uses the remote control signal and the sensor's value (the current state of the aircraft, such as acceleration, direction and other information) to control the four motor and achieve the desired action through the PWM.
Since the four-motor combination control can only reach to six directions, which is an under actuated system. So here we must have a flight controller to control the whole system.
In the flight controllers, sensors such as gyroscope and accelerator are dispensable. Micro controller can calculate data from the two sensors, get the current aircraft's attitude and then adjust the rotation rate with algorithms such PID to keep the stability. Sure you can add an electronic compass to get the direction or a GPS module to get the geographic location. Simply speaking, the quadcopter is system with two closed-loops to control---the large loop gets input volume from the remote receiving device and the small loop acquires input volume from the attitude sensor.
Generally speaking, the quadcopter kit includes an aircraft and a remote controller, the two of which controls instructions through the CoreRF transmission.
The quadcopter is composed of a frame, Microduino-CoreRF , Microduino-Motion and other modules. For Microduino-motion, it integrates a three-axis gyroscope + a three-axis accelerator(MPU6040), a magnetic field intensity sensor(HMC5883L) and a digital pressure sensor(BMP180), and have communication through IIC.
MPU6050 is the most important attitude sensor with a three-axis accelerator and a three-axis gyroscope integrated inside, which not only offsets adjustment errors for the combination of a three-axis accelerator and a three-axis gyroscope, and also has a built-in low pass filter.

Buildup and Debugging

Bill of Materials

  • Microduino Equipment
Module Number Function
Microduino-CoreRF 1 Core board
Microduino-USBTTL 1 Program download module
Microduino-Motion 1 Attitude adjustment
Microduino-QuadCopter 1 Quadcopter driver
2.4G Antenna 1
  • Other Equipment
Component Number Function
USB Cable 1
Frame 1
Battery 1 Power supply
Screw 8
Screwdriver 1
Quadcopter Material List.jpg
Quadcopter 1.jpg
Quadcopter 2.jpg
Quadcopter 3.jpg
Quadcopter 4.jpg
Quadcopter 5.jpg
Quadcopter 6.jpg
    • Please be noted of the electrode of the two wires, which is "red wire connects to red wire" and "black to black".
    • Make sure all wires are connected well in order to prevent accident while flying.

Program Download


  • Stack Microduino-CoreRF and Microduino-USBTTL together.
    • Connect the Microduino-USBTTL with USB cable and prepare to upload the program.
    • Note: You'd better upload the programs before stacking all the modules together.
  • Open the Arduino IDE for Microduino environment(Reference of setting up: AVR Core:Getting started
  • Click 【File】, confirm board card (Microduino-CoreRF) selected rightly, and choose the corresponding port number (COMX).
  • Click 【File】->【Open】, browse to the project program address, and click "MultiWii_for_CoreRF.ino" to open it.
  • After confirming all these are right, click "→" to download the program to the development board.
  • Microduino-USBTTL download module is used when download programs and debug serial ports and correct the quadcopter, and you can not stack it at other time.

Operating Instruction

Correction Guide of Qaudcopter


  • After programming, under the configuration mode of free host computer by default, you can play on getting.
  • The ways of gyro calibration, self-stabilization and unlocking in this mode by default are as following configuration:
    • It will automatically correct the gyroscope on starting up.
    • Open the self-stabilization function and self-stabilization mode.
    • AUX unlocking mode is invalid by default, and it adopts traditional unlocking way.

Manual Correction

  • When you want to correct the quadcopter manually, you can refer to the following steps:
  • Close the automatic correction function.
    • You must configure manually after close the automatic correction.
    • Open the config.h file in the quadcopter code, and note all the following code:
      • //#define MICRODUINO_AUTO_CALIBRATING // configuration of the free host computer, autocorrection of the gyroscope on starting up
      • //#define MICRODUINO_AUTO_ANGLE //configuration of the free host computer, and open of the configuration of the self-stabilization function
      • //#define MICRODUINO_AUTO_ARM //configuration of the free host computer, AUX1 channel a key to unlock. At this time, the traditional unlocking way is invalid.
  • Put the quadcopter right horizontally.
    • Make sure that the quadcopter is level on the desk, to make well preparation for the following correction.
  • Connect the host computer software
    • Open the host computer program of the corresponding type in MultiWiiConf folder.(Note:JAVA environment is needed)
    • On the left of the host computer software, connect PORT COM with corresponding port.
  • Set PID parameter.
    • We recommend you load our configuration file.
    • On the left of the host software, LOAD choose the files in \MultiWiiConf\Microduino.mwi.
    • You can also complete the modification of the PID through dragging the values on the counterpart with the left key on the mouse.
    • Click WRITE to write the setting into flight control.
  • Open the self-stabilization mode. (important)
    • Find the corresponding ANGLE function of AUI1 in the channel map area of the host computer.
    • Activate LOW, MID and HIGH.(Click the left mouse button on the empty space, and the gray square will change into white, then the activation is completed. )
    • Click WRITE to write the setting into the flight control. And the configuration is completed.
  • Accelerometer correction.
    • Click CALIB_ACC button.
    • About during 5s, just wait for the data smooth.
    • Click WRITE to write the values into the flight control, to complete the correction.

Microduino QuadCopter MultiWiiConf4.jpg

  • Debugging with sensor values.
    • Lean the body of the fuselage to the right( lift the left side up):
      • The values of ACC_ROLL and GYRO_ROLL increase.
      • The value of ACC_Z decreases.
    • Make the fuselage lean forward(lift the tail up):
      • The values of ACC_PITCH and GYRO_PITCH increase.
      • The value of ACC_Z decreases.
    • Make the fuselage rotate in clockwise direction(yaw):
      • The value of CYRO_YAW increases.
    • The fuselage keeps level:
      • The value of ACC_Z is positive.
  • After the correction, we recommend that download Microduino-USBTTL] module to reduce the weight of the quadcopter.

Joypad Remote Controller Guide

  • Configuration of Joypad communication mode*
  • You can refer to the following page for mode configuration: For Quadcopter
    • When we use Microduino-CoreRF as the communication, Joypad pick "Quadro" accordingly.
  • Instruction of Joypad Battery*
  • Special attention should be paid to the battery instruction:Instruction for Battery

Guide of Joypad Unlocking/Locking

Traditional Method

  • Confirm the corresponding switch state of Joypad:
    • Whether locked or unlocked, you need confirm the state of Joypad switch is as following:
    • Dial Joypad top left shift switch down(the throttle lock is open).
    • Dial Joypad top right shift switch up(the rocker amplitude is the largest).
  • Initialization of the quadcopter:
    • Place the quadcopter on the horizontal ground and open the power supply.
    • Wait the indicator light on the quadcopter stop flashing.
  • Unlock:
    • Turn the left stick to the rightest from the midst, and wait for about 2S.
    • If the indicator light keep lighting, it is unlocked. Otherwise, turn the left stick to the midst, and operate this step again.
    • If you can't unlock after many times of attempt, you need to reset the core of the quadcopter and then try again.
  • Lock:
    • Under the situation that it is unlocked, and the quadcopter stay still
    • Turn the left stick to the leftest from the midst and wait for about 2S.
    • If the indicator light goes out, it is locked. Otherwise, turn the left stick to the midst and reoperate this step.

A Key Method

  • Modify the cod, and start a key to unlock.
    • Open the config.h file in quadcopter code, and cancel the following code comments, and download quadcopter program again:
        1. define MICRODUINO_AUTO_ARM //free host computer configuration, and AUX1 channel a key to unlock. The traditional unlocking method is invalid at this time.
  • Confirm the state of the corresponding switch of Joypad:
    • Whether locking of unlocking, you need to make sure the state of Joypad switch is as following:
    • Dial the Joypad top left shift switch down(the throttle lock is open).
    • Dial the Joupad top sight shift switch up(the rocker amplitude is the largest).
    • The quadcopter's AUX1 channel is low(key1 button control).
  • Quacopter initialization:
    • Pu the quadcopter level on the ground and open the power supply.
    • Wait the indicator light on the quadcopter stop blinking(if it is blinking all the time, please check whether the AUX1 channel is low).
  • Unlock:
    • Press the key1 of Joypad down, and put the AUX1 channel high.
    • If the indicator light keep lighting, it is unlocked.
    • If it can't be unlocked after many times of attempt, you should reset the core of the quadcopter and try again.
  • Lock:
    • Under the situation that it has been unlocked, and the quadcopter is still
    • Press key1 of Joypad down, and put AUX1 channel low.
    • If the indicator light goes out, it is locked.

Control Guide of Joypad

  • Be sure to read the following letters, to guarantee your security:
    • The quadcopter is unlocked, and put on the open area.
    • Make sure your Joypad has enough power.
    • Make sure you won't be in the quadcopter unlocking state, and close Joypad at first.
    • The direction of the nose of quadcopter is that of the orange oar.
    • Before remove the lock of the throttle, make sure that the throttle of Joypad is closed(adjust the left rocker to the lowest).
  • For the beginners, the following operations are recommends to improve the precision of the control to make the flight more stable.
    • Dial the Joypad top right shift switch down(rocker amplitude is minimal).
Microduino QuadCopter Remote6.jpg
  • Next, you can prepare for the flight:
    • Dial the Joypad top left switch up(close the throttle lock).
  • Gently push the throttle to make the four propellers rotate.
  • Step on the gas slowly, make the quadcopter rise to around 1m, in order to avoid the near-earth airflow interference.
  • Then control the balance of the quadcopter with the bearing rocker.
  • Caution of operation
    • Open ( dial up) the top left throttle control switch to control. You can shake the rocker, and watch the change on the screen.
    • The switch on the right is precision adjustment switch. Dialing it up can control significantly, otherwise, it can be only controlled at small amplitude, which is good for stable control.
    • The left rocker controls the throttle vertically. The upper the rocker is , the larger the throttle is, the larger the motivation is and the higher it flies. Control the quadcopter to rotate horizontally in the horizontal direction.
    • The right rocker controls the movement to front and back direction vertically. Up is front, and down is back. And control movement to right and left horizontally.

Program Description


Although the above contents list a lot of problems that should be paid attention to, they need to be summarized here.

  • For installation
    • The four propellers of the quadcopter are installed in order. If you install wrongly, it is likely to lead to that the aircraft can't fly.
    • The positive and negative of the lithium battery. The red line is for the positive pole, and the black line is for the negative pole. The circuit is easy to burn out once connect wrongly. Especially when supply power to Microduino-Joypad, because there is no design for avoiding plugging inversely, it should be noted.
  • For adjustment of the parameters
    • Refer to the content of section 4 to adjust the PID parameter of the aircraft and the flight mode. And you'd better modify them on the basis of the recommended configuration. If you want to manually modify the PID parameters, you’d better modify one parameter at one time, otherwise it is difficult to see which parameters work.
  • For debugging
    • You must correct the controller(Microduino-Joypad)and aircraft, or it is easy to cause the aircraft flying unstably.
  • For the flight control
    • You must choose an empty place to test, such as the playground in the school, and larger lawn in the park.
    • Before unlocking with the remote controlled, please dial the top left switch to the bottom(close the throttle), and when start the test, please turn the throttle to the lowest at first to avoid accidents.
  • If you want to turn off the aircraft, you must switch off the power of the quadcopter, and then switch off the power of the remote controller, or the quadcopter will be out of control, and it is easy to cause accidents.
  • For charging/dry battery
    • The aircraft plate has the function of charge the battery of the aircraft directly, so you only need to plug the USB cable to supply power to the baseboard directly.
    • Joypad adopts dry battery to supply power, and you should dial the battery selection switch to Dry bat. Set up the dry battery, and on supplying power to joypad with USB cable, pull out at once(It can't be charged with USB cable for a long time after installing the dry battery), then you can successfully activate the dry battery to supply power.

If other problems appear, please put forward in the discussion part.