Come costruire un Drone con Arduino e Webcam Telecomandato da pc tramite C#


Tutorial Costruire Un Drone Con Arduino E Webcam Telecomandato Da Pc Tramite C#



In questo articolo fornisco le informazioni per Costruire un drone con Arduino 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 ?

Potrebbe interessarti anche -> Patente ed assicurazione obbligatoria per pilotare Droni

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 )

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 testare i motori con arduino ed inviare segnali alla control board ( Link Download )

—————————————————————————————————————————-

In questa guida ho emulato i segnali del radiocomando tramite Arduino, e di conseguenza 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

































Questo articolo viene aggiornato periodicamente con nuove caratteristiche. E’ da considerarsi completo, nella versione attuale è già possibile pilotare il drone con un radicomando 4 ch.

Non ho ancora rilasciato i sorgenti dei software per il pilotaggio da pc in quanto ancora instabili e richiedono ancora un pò di lavoro per essere ottimizzati.

A breve lo schema di montaggio per assemblare il Drone cosi come in foto. Il costo totale del materiale si aggira attorno ai 600 €, nel caso vogliate pilotare il vostro drone con un radiocomando non avete bisogno di Arduino.

fonte: www.bartoloilliano.com/arduino-tutorial-costruire-un-drone-con-webcam-telecomandato-da-pc-tramite-csharp.html

Altri links interessanti:


Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi sulla rappresentazione della virgola mobile IEEE 754 (Floating Point)