Skip to content

The project was an IoT based project to make an Arduino based drone that can both fly as well as got mobility wheels to move on the terrain. It is more of a kind of military-based conceptual project that is still undergoing some testing.

Notifications You must be signed in to change notification settings

iamscratches/Hybrid-Drone

Repository files navigation

Content:
YMFC-AL_setup.ino
YMFC-AL_esc_calibrate.ino
YMFC-AL_Flight_controller.ino
YMFC_scematic.pdf

Revision update:
=====================================================================================================================================================

Version 1.4 April 30, 2017
The calibration sketch stops working when a character or number is send. When sending a character via the serial monitor of some Arduino IDE’s
a line feed is also send. Because the ESC calibration program only expects one character the program stops working.

In the code the line:
data = Serial.read();                                                               //Read the incomming byte.

Is changed into:
data = Serial.read();                                                               //Read the incomming byte.
delay(100);                                                                         //Wait for any other bytes to come in
while(Serial.available() > 0)loop_counter = Serial.read();                          //Empty the Serial buffer.
=====================================================================================================================================================

Version 1.3 October 30, 2016
With the newer Arduino IDE versions (1.6.x and up) the setup program hangs due to optimization of the compiler. This is fixed in this version.

The starting speed of the motors is reduced to 1100us.

Added a new schematic in pdf
=====================================================================================================================================================

Version 1.2 - July 12, 2016
The last code did not fix the complete problem so I had to make another adjustment to the code. The acc_x and acc_y values can also be negative so a simple smaller or greater test does not work.
Therefor I changed the code to:

if(abs(acc_y) < acc_total_vector){                                        //Prevent the asin function to produce a NaN
  angle_pitch_acc = asin((float)acc_y/acc_total_vector)* 57.296;          //Calculate the pitch angle.
}
if(abs(acc_x) < acc_total_vector){                                        //Prevent the asin function to produce a NaN
  angle_roll_acc = asin((float)acc_x/acc_total_vector)* -57.296;          //Calculate the roll angle.
}

This prevents a division by zero and the input value for the asin function will always be smaller than 1.
=====================================================================================================================================================

Version 1.1 - July 11, 2016
There was a NaN (not a number) problem in the code. When flying more aggressive the quadcopter could become uncontrolable. The NaN problem is caused by the following:
When the absolute value of acc_y or acc_x becomes larger that the acc_total_vector the values provided to the asin function is larger than 1 and the asin function produces a NaN.
It recovers when the acc_total_vector becomes larger that the acc_x or acc_y values. But due to the complimentary filter the NaN error persists.
This problem will only occur when flying aggressive / fast descents. 

I changed the code as followed:
from:
angle_pitch_acc = asin((float)acc_y/acc_total_vector)* 57.296;            //Calculate the pitch angle.
angle_roll_acc = asin((float)acc_x/acc_total_vector)* -57.296;            //Calculate the roll angle.

to:
if(acc_y > acc_total_vector){
  angle_pitch_acc = asin((float)acc_y/acc_total_vector)* 57.296;            //Calculate the pitch angle.
}
if(acc_x > acc_total_vector){
  angle_roll_acc = asin((float)acc_x/acc_total_vector)* -57.296;            //Calculate the roll angle.
}
=====================================================================================================================================================

Version 1.0 - July 3, 2016
Release
=====================================================================================================================================================

About

The project was an IoT based project to make an Arduino based drone that can both fly as well as got mobility wheels to move on the terrain. It is more of a kind of military-based conceptual project that is still undergoing some testing.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages