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 per controllare il Drone ( Link Acquisto )
- 1x Remote Cam Kit – Telecamera Wireless ( Link Foto )
- 1x VideoIn to USB – Adattatore ingresso video ( Link Acquisto )
Materiale Meccanico Necessario :
- 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 )
Materiale Opzionale :
- 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 )
—————————————————————————————————————————-
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
Questo articolo viene aggiornato periodicamente con nuove caratteristiche. E’ da considerarsi parzialmente completo, nella versione attuale è già possibile pilotare il drone. Non ho ancora rilasciato i sorgenti dei software in quanto ancora instabili e richiedono ancora un pò di lavoro per essere ottimizzati.
Se vuoi rimanere aggiornato iscriviti alla mia newsletter, non riceverai mai spam ma un email periodica con gli ultimi aggiornamenti. Iscriviti alla Newsletter


















