NON TROVERETE ALTRI ARTICOLI COSI DETTAGLIATI IN TUTTO INTERNET
In questo articolo fornisco l’elenco dei componenti e i link d’acquisto per creare il vostro drone (quadricottero) telecomandato da pc. Chi non ha mai sognato almeno una volta di avere un giocattolo Realmente Hi Tech da mandare in giro. A tutorial finito avrete un drone a regola d’arte.
Partiamo dal punto chiave. Cosa Acquistare ?
Hardware Necessario :
- 1x Arduino UNO ( Link Acquisto )
- 1x Arduino Xbee Shield ( Link Acquisto )
- 2x Antenne Wifi Xbee Pro ( Link Acquisto )
- 1x Adattatore Wifi Xbee Pro per Pc ( Link Acquisto )
- 1x Hobby King ControlBoard v3 ( Link Acquisto) ( Link Foto )
- 1x Cavetto per Programmare Control Board ( Link Acquisto )
- 2x Batterie per Drone ( Link Acquisto ) + Caricabatterie Speciale ( Link Acquisto )
- 1x Notebook entry level per controllare il Drone ( Link Acquisto )
- 1x Remote Cam Kit – Telecamera Wireless ( Link Foto )
- 1x VideoIn to USB – Adattatore ingresso video ( Link Acquisto )
- 1x Drone Frame – Telaio ( Link Acquisto )
- 2x di questi per un estetica migliore ( Link Acquisto )
- 30x Viti con bullone, dal vostro negozio ferramenta di fiducia
- 4x motori -> Turnigy D2836/11 750KV Brushless Outrunner Motor ( Link Acquisto ) Carico Massimo 1,8 Kg
- 4x Regolartori di velocità per motori – Hobbyking SS Series 25-30A ESC ( Link Acquisto )
- 2x coppie di eliche – Slow Fly Electric Prop 12×4.5R SF ( Link Acquisto )
- 1x Connettori vari – Per control board ( Link Acquisto )
- 1x Radiocomando 4 Canali ( Link Acquisto )
Software Necessario :
- Arduino IDE ( Link Download )
- Programma in C# da me creato per installare il sistema operativo del drone su Arduino ( Link Download )
- Programma in C# da me creato per testare i motori con arduino ed inviare segnali alla control board ( Link Download )
- Programma in C# per telecomandare tramite wifi XBee il nostro drone ( Link Download )
In questa guida ho emulato i segnali del radi-comando tramite Arduino, in questo modo posso pilotare il Drone dal pc
Sorgente Arduino -> Controllare la HobbyKing Multi-Rotor Control Board V3.0 con Arduino (da scrivere dentro ad Arduino tramite la sua IDE)
#include
Servo ail;
Servo ele;
Servo thr;
Servo rudd;
void setup()
{
Serial.begin(9600); // Abilito l'ascolto dei comandi tramite seriale
ail.attach(3); // AIL
ele.attach(5); // ELE
thr.attach(9); // THR
rudd.attach(11); // RUDD
}
void sail(int speed){
int angle = map(speed, 0, 100, 0, 180);
ail.write(angle);
}
void sele(int speed){
int angle = map(speed, 0, 100, 0, 180);
ele.write(angle);
}
void sthr(int speed){
int angle = map(speed, 0, 100, 0, 180);
thr.write(angle);
}
void srudd(int speed){
int angle = map(speed, 0, 100, 0, 180);
rudd.write(angle);
}
void loop() // Inizio Loop
{
int speed;
if (Serial.available() > 0) {
int comando = Serial.read(); // Creo una variabile chiamata Comando
// Se comando è uguale ad 1
// AIL
//-----------------------------------------------------------------------------------------
if (comando == 10) { sail(0); Serial.println("AIL 0"); delay(100); }
if (comando == 11) { sail(10); Serial.println("AIL 10"); delay(100); }
if (comando == 12) { sail(20); Serial.println("AIL 20"); delay(100); }
if (comando == 13) { sail(30); Serial.println("AIL 30"); delay(100); }
if (comando == 14) { sail(40); Serial.println("AIL 40"); delay(100); }
if (comando == 15) { sail(50); Serial.println("AIL 50"); delay(100); }
if (comando == 16) { sail(60); Serial.println("AIL 60"); delay(100); }
if (comando == 17) { sail(70); Serial.println("AIL 70"); delay(100); }
if (comando == 18) { sail(80); Serial.println("AIL 80"); delay(100); }
if (comando == 19) { sail(90); Serial.println("AIL 90"); delay(100); }
if (comando == 110) { sail(100); Serial.println("AIL 100"); delay(100); }
// ELE
//-----------------------------------------------------------------------------------------
if (comando == 20) { sele(0); Serial.println("ELE 0"); delay(100); }
if (comando == 21) { sele(10); Serial.println("ELE 10"); delay(100); }
if (comando == 22) { sele(20); Serial.println("ELE 20"); delay(100); }
if (comando == 23) { sele(30); Serial.println("ELE 30"); delay(100); }
if (comando == 24) { sele(40); Serial.println("ELE 40"); delay(100); }
if (comando == 25) { sele(50); Serial.println("ELE 50"); delay(100); }
if (comando == 26) { sele(60); Serial.println("ELE 60"); delay(100); }
if (comando == 27) { sele(70); Serial.println("ELE 70"); delay(100); }
if (comando == 28) { sele(80); Serial.println("ELE 80"); delay(100); }
if (comando == 29) { sele(90); Serial.println("ELE 90"); delay(100); }
if (comando == 210) { sele(100); Serial.println("ELE 100"); delay(100); }
// THR
//-----------------------------------------------------------------------------------------
if (comando == 30) { sthr(0); Serial.println("THR 0"); delay(100); }
if (comando == 31) { sthr(10); Serial.println("THR 10"); delay(100); }
if (comando == 32) { sthr(20); Serial.println("THR 20"); delay(100); }
if (comando == 33) { sthr(30); Serial.println("THR 30"); delay(100); }
if (comando == 34) { sthr(40); Serial.println("THR 40"); delay(100); }
if (comando == 35) { sthr(50); Serial.println("THR 50"); delay(100); }
if (comando == 36) { sthr(60); Serial.println("THR 60"); delay(100); }
if (comando == 37) { sthr(70); Serial.println("THR 70"); delay(100); }
if (comando == 38) { sthr(80); Serial.println("THR 80"); delay(100); }
if (comando == 39) { sthr(90); Serial.println("THR 90"); delay(100); }
if (comando == 310) { sthr(100); Serial.println("THR 100"); delay(100); }
// RUDD
//-----------------------------------------------------------------------------------------
if (comando == 40) { srudd(0); Serial.println("RUDD 0"); delay(100); }
if (comando == 41) { srudd(10); Serial.println("RUDD 10"); delay(100); }
if (comando == 42) { srudd(20); Serial.println("RUDD 20"); delay(100); }
if (comando == 43) { srudd(30); Serial.println("RUDD 30"); delay(100); }
if (comando == 44) { srudd(40); Serial.println("RUDD 40"); delay(100); }
if (comando == 45) { srudd(50); Serial.println("RUDD 50"); delay(100); }
if (comando == 46) { srudd(60); Serial.println("RUDD 60"); delay(100); }
if (comando == 47) { srudd(70); Serial.println("RUDD 70"); delay(100); }
if (comando == 48) { srudd(80); Serial.println("RUDD 80"); delay(100); }
if (comando == 49) { srudd(90); Serial.println("RUDD 90"); delay(100); }
if (comando == 410) { srudd(100); Serial.println("RUDD 100"); delay(100); }
Serial.flush();
}
} // Fine Loop
——————————————————————————————————————————————-Riepilogo foto del materiale acquistato
Fonte:http://www.bartoloilliano.com/arduino-tutorial-costruire-un-drone-con-webcam-telecomandato-da-pc-tramite-csharp.html