Project showcase
UAV Arduino

UAV Arduino

This is one of my personal budget/project made for University to graduate. This Airplane (UAV) is made fully homemade using only Arduino.

  • 35,609 views
  • 27 comments
  • 174 respects

Components and supplies

Necessary tools and machines

Dremel
Homemade PCB

Apps and online services

About this project

Story

This project was made to graduate my University, the project and budget was all mine idea and money, I chose this project because I was optimist to build a fully homemade airplane using only Arduino. The airplane is build as well by me, no help, i made tons of research on internet and decided to make this personal design, using isolation foam and hot wire I managed to cut the pieces and hand sanding them to look nice and smooth.

Testing the Brushless motor

Hardware:

Decided to use arduino Uno because that's what I had and more than 10x Atmegas328p so I made the circuit design using EAGLE added the components:

  • MPU6050 Gyro Axx.
  • GPS
  • DHT Temp humidity sensor
  • Geiger counter for nuclear radiation sensor mSv
  • BMP for pressure and altitude
  • and many other SD card for black box saving all my data..etc

So made the Circuit design and came up with 3 circuits on of the top of other as shield/sandwich.

Etching process (photos)/instructions.

I made the PCB's in EAGLE (free version) software using as base the ATmega328p microcontroller and adding the parts that I need, buttons, LEDs, regulators, pins for nRF24L01 .etc

Using the transfer paper process I used laser printer and photo glossy paper to print the circuit then cut exactly the side of it and cutting as well a double side copper PCB. After that carefully cleaning and placing the papers and locking them with paper tape, ironing it about 10 minutes both sides, pressing hard and carefully the sides. After 10 minutes placing the PCB in the water so the paper to get wet and being easy to peel.

Peel really carefully/gently the the paper, after cleaning all the paper is time for etching, using warm water making the process faster and a small sponge which is not in the picture carefully cleaning it.

At the end use a high sand paper sponge or a dish cleaner sponge to rub all the black ink / color on the PCB and finally you get a clean homemade ready PCB to use.

<<< Press the arrows to see the process >>>

All PCB are double side, hand made/homemade

This is the 1st PCB only there is more.

Radio Control:

As well managed to control the ESC and motor with the Arduino and used a cheap joystick and nRF24L01 PA as Radio Control, took the gaming joystick modified it added and extra pot as speed control and programmed the joystick with another circuit I made.

Testing the Transmitter homemade PCB

Testing the modified joystick on/off button

Testing the modified joystick buttons

Same joystick, open and testing the potentiometers

General purpose

The airplane was made to fly and collect data in regions not accessible for humans or hazard zones or just collect weather data. The airplane is capable to collect, temperature, humidity, radiation (x,gama) in mSv, as well collecting altitude data, GPS coordinates, gyro, Gforce..etc

The airplane as well is capable to fly like autopilot just need to insert the coordinates and it will go then come back, it's self stabilized using MPU6050 and it's hard to crash.

Total build/design time: 35~40 days. Took me like an year to build because I worked with this project only in my free time + I had to wait the components to arrive from China.

P.s. Sadly I don't have more footage or info, I will keep looking in my project folder and update what else I got. Keep up, be optimists and always keep walking and make your dreams come true.

Support me if you can: https://patreon.com/user?u=4303713

Youtube:

Thanks,

Domino60

Code

Transmitter CodeC/C++
Modified Joystick, nRF24L01 and 3x buttors , 3x leds
/* ©Gorceag Victor / Domino60 2016 / Arduino 1.0.5
   Components/modules
   
   - Joystick 3 Potentiometers 
   - nRF24L01 PA 2db antenna
   - 3x Buttons 3x Leds 
   
*/

//-------------------------------------- nRF24
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>


RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;


int dataToSend[6];

//----------------------------------------POT's
int PotSpeed;
int PotY;
int PotX;

long nowP = 0;
long intervalP = 60;

void Potentiometers(){
    
    if(millis() - nowP >= intervalP){      
   PotSpeed = analogRead(A0);  
   PotY = analogRead(A1); 
   PotX = analogRead(A2);   
     nowP = millis();
    }
}

// ************************************************************ LED_BUTTON 1
int led1 = 3;
int button1 = 6;

long now1 = 0;
long interval1 = 1000;
int x1 = 0;
void Button1_Led1(){
   if(millis() - now1 >= interval1){
  int valofbutton1 = digitalRead(button1); //value of the button 0 or 1 (LOW or HIGH) 
   if(valofbutton1 == 1){ //if button HIGH
     x1++;  // x+1;  x=1
     if(x1 == 1){  //if x = 1 
        digitalWrite(led1, HIGH); //then led HIGH
     }
     if(x1 == 2){  // if we press again x=2  
        digitalWrite(led1, LOW); // if x = 2 led LOW
        x1 =0;   // making x = 0 for the next loop
     }
   }
   now1 = millis();
  } 
}

// ************************************************************ LED_BUTTON 2
int led2 = 4;
int button2 = 7;

long now2 = 0;
long interval2 = 1000;
int x2 = 0;
void Button1_Led2(){
   if(millis() - now2 >= interval2){
  int valofbutton2 = digitalRead(button2); //value of the button 0 or 1 (LOW or HIGH) 
   if(valofbutton2 == 1){ //if button HIGH
     x2++;  // x+1;  x=1
     if(x2 == 1){  //if x = 1 
        digitalWrite(led2, HIGH); //then led HIGH
     }
     if(x2 == 2){  // if we press again x=2  
        digitalWrite(led2, LOW); // if x = 2 led LOW
        x2 =0;   // making x = 0 for the next loop
     }
   }
   now2 = millis();
  } 
}

// ************************************************************ LED_BUTTON 3
int led3 = 5;
int button3 = 8;

long now3 = 0;
long interval3 = 1000;
int x3 = 0;
void Button1_Led3(){
   if(millis() - now3 >= interval3){
  int valofbutton3 = digitalRead(button3); //value of the button 0 or 1 (LOW or HIGH) 
   if(valofbutton3 == 1){ //if button HIGH
     x3++;  // x+1;  x=1
     if(x3 == 1){  //if x = 1 
        digitalWrite(led3, HIGH); //then led HIGH
     }
     if(x3 == 2){  // if we press again x=2  
        digitalWrite(led3, LOW); // if x = 2 led LOW
        x3 =0;   // making x = 0 for the next loop
     }
   }
   now3 = millis();
  } 
}

// -----------------------------------------SETUP
void setup() {                
  Serial.begin(9600);
  
   radio.begin();
  radio.setAutoAck(false);
  radio.setChannel(108); //108 - 2.508 Ghz //0-124 2.4gHz-2.5gHz
  radio.setDataRate(RF24_250KBPS);
  radio.setPALevel(RF24_PA_MAX);
  radio.openWritingPipe(pipe);
  
  pinMode(led1, OUTPUT);  
  pinMode(button1, INPUT);
  pinMode(led2, OUTPUT);  
  pinMode(button3, INPUT);
  pinMode(led3, OUTPUT);  
  pinMode(button3, INPUT);
}

// -----------------------------------------LOOP
void loop() {
  
  Button1_Led1();
  Button1_Led2();
  Button1_Led3();
  Potentiometers();

    dataToSend[0] = PotSpeed;     
    dataToSend[1] = PotY;    
    dataToSend[2] = PotX;     
    dataToSend[3] = x1;    
    dataToSend[4] = x2;    
    dataToSend[5] = x3;
    radio.write(dataToSend, sizeof(dataToSend));
}

Schematics

Transmitter circuit
Personal Design using EAGLE software
Hqhk5lkicewvs5c3dsoo

Comments

Similar projects you might like

Home Automation Using Raspberry Pi 2 And Windows 10 IoT

Project tutorial by Anurag S. Vasanwala

  • 297,267 views
  • 98 comments
  • 706 respects

OpenCat

Project in progress by Team Petoi

  • 216,699 views
  • 185 comments
  • 1,567 respects

Head Tracking for Wireless 3D First Person Vision

Project showcase by twhi2525

  • 8,552 views
  • 7 comments
  • 54 respects

Windows 10 IoT Core: UltraSonic Distance Mapper

Project showcase by Anurag S. Vasanwala

  • 51,777 views
  • 23 comments
  • 138 respects

Security Access Using RFID Reader

by Aritro Mukherjee

  • 260,262 views
  • 42 comments
  • 281 respects

OttoDIY Build Your Own Robot in One Hour!

Project tutorial by Camilo Parra Palacio

  • 105,928 views
  • 129 comments
  • 304 respects
Add projectSign up / Login