Sommario:

Arduino Drone con GPS: 16 passaggi
Arduino Drone con GPS: 16 passaggi

Video: Arduino Drone con GPS: 16 passaggi

Video: Arduino Drone con GPS: 16 passaggi
Video: How to make Drone with Arduino | How to make drone at home | DIY Arduino Drone 2024, Novembre
Anonim
Arduino Drone con GPS
Arduino Drone con GPS

Abbiamo deciso di costruire un drone quadricottero in prima persona (FPV) controllato da Arduino e stabilizzato, abilitato per GPS con funzioni di ritorno a casa, vai a coordinare e GPS hold. Abbiamo ingenuamente supposto che combinare i programmi Arduino esistenti e il cablaggio per un quadricottero senza GPS con quelli di un sistema di trasmissione GPS sarebbe stato relativamente semplice e che avremmo potuto passare rapidamente a compiti di programmazione più complessi. Tuttavia, una quantità sorprendente ha dovuto cambiare per collegare questi due progetti, e quindi abbiamo finito per realizzare un quadricottero FPV abilitato per GPS, senza alcuna funzionalità aggiuntiva.

Abbiamo incluso le istruzioni su come replicare il nostro prodotto se sei soddisfatto del quadricottero più limitato.

Abbiamo anche incluso tutti i passaggi che abbiamo intrapreso sulla strada per un quadricottero più autonomo. Se ti senti a tuo agio a scavare in profondità in Arduino o hai già molta esperienza con Arduino e vorresti prendere il nostro punto di sosta come punto di partenza per la tua esplorazione, allora questo Instructable è anche per te.

Questo è un ottimo progetto per imparare qualcosa sulla costruzione e la codifica per Arduino, non importa quanta esperienza hai. Inoltre, si spera che te ne andrai con un drone.

La configurazione è la seguente:

Nell'elenco dei materiali, le parti senza asterisco sono necessarie per entrambi gli obiettivi.

Le parti con un asterisco sono necessarie solo per il progetto incompiuto di un quadricottero più autonomo.

Le parti con due asterischi sono necessarie solo per il quadricottero più limitato.

I passaggi comuni a entrambi i progetti non hanno marcatore dopo il titolo

I passaggi richiesti solo per il quadricottero non autonomo più limitato hanno "(Uno)" dopo il titolo.

I passaggi richiesti solo per il quadricottero autonomo in corso hanno "(Mega)" dopo il titolo.

Per costruire il quad basato su Uno, segui i passaggi in ordine, saltando i passaggi con "(Mega)" dopo il titolo.

Per lavorare sul quad basato su Mega, segui i passaggi in ordine, saltando qualsiasi passaggio con "(Uno)" dopo il titolo.

Passaggio 1: raccogliere materiali

Componenti:

1) Un telaio quadrirotore (probabilmente il telaio esatto non ha importanza) ($ 15)

2) Quattro motori brushless da 2830, 900 kV (o simili) e quattro pacchetti di accessori di montaggio (4 x $ 6 + 4 x $ 4 = $ 40 in totale)

3) Quattro ESC UBEC da 20A (4x$10 = $40 in totale)

4) Una scheda di distribuzione dell'alimentazione (con connessione XT-60) ($ 20)

5) Una batteria LiPo 3s, 3000-5000mAh con connessione XT-60 (3000mAh corrisponde a circa 20 minuti di volo) ($25)

6) Molte eliche (queste si rompono molto) ($ 10)

7) Un Arduino Mega 2560* ($40)

8) Un Arduino Uno R3 ($ 20)

9) Un secondo Arduino Uno R3** ($20)

10) Uno scudo GPS Arduino Ultimate (non è necessario lo scudo, ma l'utilizzo di un GPS diverso richiederà un cablaggio diverso) ($ 45)

11) Due ricetrasmettitori wireless HC-12 (2x$5 = $10)

12) Un giroscopio/accelerometro MPU-6050, 6DOF (grado di libertà) ($5)

13) Una coppia di trasmettitore/ricevitore Turnigy 9x 2,4 GHz, 9 canali ($ 70)

14) Intestazioni Arduino femmina (impilabili) ($ 20)

15) Caricabatterie LiPo Battery Balance (e adattatore 12V DC, non incluso) ($ 20)

17) Cavo adattatore da USB A a B maschio a maschio ($ 5)

17) Nastro adesivo

18) Tubo termoretraibile

Attrezzatura:

1) Un saldatore

2) Saldare

3) plastica epossidica

4) Più leggero

5) Spelafili

6) Un set di chiavi a brugola

Componenti opzionali per la trasmissione video FPV (visualizzazione in prima persona) in tempo reale:

1) Una piccola fotocamera FPV (questa si collega a quella piuttosto economica e di cattiva qualità che abbiamo usato, puoi sostituirla con una migliore) ($ 20)

2) Coppia trasmettitore/ricevitore video a 5,6 GHz (832 modelli utilizzati) ($ 30)

3) Batteria LiPo da 500 mAh, 3 s (11,1 V) ($ 7) (l'abbiamo usata con una spina a banana, ma in retrospettiva ti consigliamo di utilizzare la batteria collegata, poiché ha un connettore compatibile con il trasmettitore TS832, e quindi non t richiedono saldatura).

4) 2 batterie LiPo da 1000 mAh 2s (7,4 V) o simili ($ 5). Il numero di mAh non è critico purché sia superiore a 1000 mAh o giù di lì. La stessa affermazione di cui sopra si applica al tipo di spina per una delle due batterie. L'altro sarà usato per alimentare il monitor, quindi dovrai saldare qualunque cosa. Probabilmente è meglio averne uno con una spina XT-60 per questo (è quello che abbiamo fatto). Un collegamento per quel tipo è qui: LiPo 1000mAh 2s (7,4V) con spina XT-60

5) Monitor LCD (opzionale) ($ 15). Puoi anche utilizzare un adattatore AV-USB e un software di copia di DVD per visualizzare direttamente su un laptop. Ciò offre anche la possibilità di registrare video e foto, anziché limitarsi a visualizzarli in tempo reale.

6) Se hai acquistato batterie con spine diverse da quelle collegate, potresti aver bisogno di adattatori appropriati. Indipendentemente da ciò, procurati un adattatore corrispondente alla spina per la batteria che alimenta il monitor. Ecco dove trovare gli adattatori XT-60

* = solo per progetti più avanzati

** = solo per progetti più basilari

Costi:

Se si parte da zero (ma con un saldatore, ecc…), nessun sistema FPV: ~$370

Se hai già un trasmettitore/ricevitore RC, un caricabatterie LiPo e una batteria LiPo: ~$260

Costo del sistema FPV: $ 80

Passaggio 2: assemblare il telaio

Assemblare il telaio
Assemblare il telaio
Assemblare il telaio
Assemblare il telaio
Assemblare il telaio
Assemblare il telaio

Questo passaggio è abbastanza semplice, soprattutto se si utilizza lo stesso telaio prefabbricato che abbiamo usato. Usa semplicemente le viti incluse e unisci il telaio come mostrato, usando una chiave a brugola o un cacciavite appropriato per il tuo telaio. Assicurati che i bracci dello stesso colore siano adiacenti l'uno all'altro (come in questa immagine), in modo che il drone abbia una parte anteriore e una posteriore libere. Inoltre, assicurati che la parte lunga della piastra inferiore sporga tra i bracci di colore opposto. Questo diventa importante in seguito.

Passaggio 3: montare i motori e collegare Escs

Montare i motori e collegare Escs
Montare i motori e collegare Escs
Montare i motori e collegare Escs
Montare i motori e collegare Escs
Montare i motori e collegare Escs
Montare i motori e collegare Escs
Montare i motori e collegare Escs
Montare i motori e collegare Escs

Ora che il telaio è assemblato, estrarre i quattro motori e i quattro accessori di montaggio. È possibile utilizzare le viti incluse nei set di montaggio o le viti rimaste dal telaio del quadricottero per avvitare i motori e i supporti in posizione. Se acquisti i supporti a cui abbiamo collegato, riceverai due componenti extra, nella foto sopra. Abbiamo avuto buone prestazioni del motore senza queste parti, quindi le abbiamo lasciate fuori per ridurre il peso.

Una volta che i motori sono stati avvitati in posizione, applicare con resina epossidica la scheda di distribuzione dell'alimentazione (PDB) in posizione sopra la piastra superiore del telaio del quadricottero. Assicurati di orientarlo in modo tale che il connettore della batteria punti tra i bracci di colore diverso (paralleli a una delle parti lunghe della piastra inferiore), come nell'immagine sopra.

Dovresti anche avere quattro coni dell'elica con filettatura femmina. Mettili da parte per ora.

Ora estrai i tuoi ESC. Da un lato usciranno due fili, uno rosso e uno nero. Per ciascuno dei quattro ESC, inserire il filo rosso nel connettore positivo sul PDB e il nero nel negativo. Si noti che se si utilizza un PDB diverso, questo passaggio potrebbe richiedere la saldatura. Ora collega ciascuno dei tre fili che escono da ciascun motore. A questo punto, non importa quale filo dell'ESC colleghi a quale filo del motore (a patto che tu stia collegando tutti i fili di un ESC con lo stesso motore!) Correggerai in seguito qualsiasi polarità all'indietro. Non è pericoloso se i fili sono invertiti; provoca solo la rotazione del motore all'indietro.

Passaggio 4: preparare Arduino e Shield

Prepara Arduino e Shield
Prepara Arduino e Shield
Prepara Arduino e Shield
Prepara Arduino e Shield

Una nota prima di iniziare

Innanzitutto, puoi scegliere di saldare direttamente tutti i fili insieme. Tuttavia, abbiamo trovato inestimabile utilizzare le intestazioni dei pin perché forniscono molta flessibilità per la risoluzione dei problemi e l'adattamento del progetto. Quella che segue è una descrizione di ciò che abbiamo fatto (e consigliamo ad altri di fare).

Prepara Arduino e shield

Estrai il tuo Arduino Mega (o uno Uno se fai il quad non autonomo), lo scudo GPS e le intestazioni impilabili. Saldare l'estremità maschio delle intestazioni impilabili in posizione sullo scudo GPS, nelle file di pin parallele ai pin pre-saldati, come mostrato nell'immagine sopra. Saldare anche in intestazioni impilabili sulla fila di pin etichettata 3V, CD, … RX. Usa un tronchese per tagliare la lunghezza in eccesso sui perni che sporgono dal fondo. Posiziona le intestazioni maschili con le parti superiori piegate in tutte queste intestazioni impilabili. Questi sono i fili a cui salderai i fili per il resto dei componenti.

Attacca lo scudo GPS alla parte superiore, assicurandoti che i pin corrispondano a quelli dell'Arduino (Mega o Uno). Nota che se usi il Mega, molto Arduino sarà ancora esposto dopo aver posizionato lo scudo.

Posiziona del nastro isolante sul fondo dell'Arduino, coprendo tutte le saldature dei pin esposte, per evitare cortocircuiti mentre l'Arduino poggia sul PDB.

Passaggio 5: collegare insieme i componenti e posizionare la batteria (uno)

Collegare insieme i componenti e posizionare la batteria (Uno)
Collegare insieme i componenti e posizionare la batteria (Uno)
Collegare insieme i componenti e posizionare la batteria (Uno)
Collegare insieme i componenti e posizionare la batteria (Uno)
Collegare insieme i componenti e posizionare la batteria (Uno)
Collegare insieme i componenti e posizionare la batteria (Uno)
Collegare insieme i componenti e posizionare la batteria (Uno)
Collegare insieme i componenti e posizionare la batteria (Uno)

Lo schema sopra è quasi identico a quello realizzato da Joop Brooking poiché abbiamo basato pesantemente il nostro design sul suo.

*Nota che questo schema presuppone uno scudo GPS montato correttamente, e quindi il GPS non appare in questo schema.

Lo schema sopra è stato preparato utilizzando il software Fritzing, che è altamente raccomandato soprattutto per gli schemi che coinvolgono Arduino. Per lo più abbiamo utilizzato parti generiche che possono essere modificate in modo flessibile, poiché le nostre parti generalmente non erano nella libreria delle parti inclusa di Fritzing.

-Assicurati che l'interruttore sullo scudo GPS sia impostato su "Scrittura diretta".

-Ora cablare tutti i componenti secondo lo schema sopra (tranne la batteria!) (Nota importante sui cavi dati GPS di seguito).

-Nota che hai già collegato gli ESC ai motori e al PDB, quindi questa parte dello schema è fatta.

-Inoltre, nota che i dati GPS (fili gialli) escono dai pin 0 e 1 su Arduino (non dai pin Tx e Rx separati sul GPS). Questo perché configurato su "Direct Write" (vedi sotto), il GPS invia direttamente alle porte seriali hardware dell'uno (pin 0 e 1). Questo è mostrato più chiaramente nella seconda immagine sopra del cablaggio completo.

-Quando si cabla il ricevitore RC, fare riferimento all'immagine sopra. Osserva che i cavi dati vanno nella riga superiore, mentre Vin e Gnd sono rispettivamente sulla seconda e terza riga (e sulla seconda colonna di pin più lontana).

-Per fare il cablaggio per il ricetrasmettitore HC-12, ricevitore RC e 5Vout dal PDB al Vin dell'Arduino abbiamo usato intestazioni impilabili, mentre per il giroscopio abbiamo saldato i fili direttamente alla scheda e utilizzando tubi termoretraibili attorno al saldare. Puoi scegliere di fare entrambe le cose per uno qualsiasi dei componenti, tuttavia si consiglia di saldare direttamente al giroscopio in quanto consente di risparmiare spazio, il che rende la parte piccola più facile da montare. L'utilizzo delle intestazioni richiede un po' di lavoro in più in anticipo, ma offre maggiore flessibilità. La saldatura diretta dei fili è una connessione più sicura a lungo termine, ma significa che l'utilizzo di quel componente su un altro progetto è più difficile. Nota che se hai utilizzato le intestazioni sullo scudo GPS, hai ancora una discreta flessibilità indipendentemente da ciò che fai. Fondamentalmente, assicurati che i cavi dati GPS nei pin 0 e 1 sul GPS siano facili da rimuovere e sostituire.

Alla fine del nostro progetto, non siamo stati in grado di progettare un buon metodo per collegare tutti i nostri componenti al telaio. A causa della pressione del tempo della nostra classe, le nostre soluzioni generalmente ruotavano attorno a nastro biadesivo in schiuma, nastro adesivo, nastro isolante e fascette. Ti consigliamo vivamente di dedicare più tempo alla progettazione di strutture di montaggio stabili se prevedi che questo sia un progetto a lungo termine. Detto questo, se vuoi solo realizzare un prototipo veloce, sentiti libero di seguire il nostro processo. Tuttavia, assicurati che il giroscopio sia montato saldamente. Questo è l'unico modo in cui Arduino sa cosa sta facendo il quadricottero, quindi se si muove in volo avrai problemi.

Con tutto cablato e in posizione, prendi la batteria LiPo e falla scorrere tra le piastre superiore e inferiore del telaio. Assicurati che il suo connettore punti nella stessa direzione del connettore del PDB e che possano effettivamente connettersi. Abbiamo usato del nastro adesivo per tenere in posizione la batteria (anche il nastro in velcro funziona, ma è più fastidioso del nastro adesivo). Il nastro adesivo funziona bene perché si può facilmente sostituire la batteria o rimuoverla per la ricarica. Tuttavia, devi assicurarti di fissare STRETTAMENTE la batteria con nastro adesivo, poiché se la batteria si muove durante il volo, ciò potrebbe compromettere seriamente l'equilibrio del drone. NON collegare ancora la batteria al PDB.

Passaggio 6: collegare insieme i componenti e posizionare la batteria (Mega)

Collegare insieme i componenti e posizionare la batteria (Mega)
Collegare insieme i componenti e posizionare la batteria (Mega)
Collegare insieme i componenti e posizionare la batteria (Mega)
Collegare insieme i componenti e posizionare la batteria (Mega)
Collegare insieme i componenti e posizionare la batteria (Mega)
Collegare insieme i componenti e posizionare la batteria (Mega)

Lo schema sopra è stato preparato utilizzando il software Fritzing, che è altamente raccomandato soprattutto per gli schemi che coinvolgono arduino. Per lo più abbiamo fatto uso di parti generiche, poiché le nostre parti generalmente non erano nella libreria delle parti inclusa di Fritzing.

-Nota che questo schema presuppone uno scudo GPS montato correttamente, e quindi il GPS non appare in questo schema.

-Ruota l'interruttore del tuo Mega 2560 su "Soft Serial".

-Ora cablare tutti i componenti secondo lo schema sopra (tranne la batteria!)

-Nota che hai già collegato gli ESC ai motori e al PDB, quindi questa parte dello schema è fatta.

-I cavi jumper da Pin 8 a Rx e Pin 7 a Tx ci sono perché (a differenza dello Uno, per il quale è stato realizzato questo shield), il mega manca di un ricevitore-trasmettitore asincrono universale (UART) sui pin 7 e 8, e quindi dobbiamo usare pin seriali hardware. Ci sono più ragioni per cui abbiamo bisogno di pin seriali hardware, discusse più avanti.

-Quando si cabla il ricevitore RC, fare riferimento all'immagine sopra. Osserva che i cavi dati vanno nella riga superiore, mentre Vin e Gnd sono rispettivamente sulla seconda e terza riga (e sulla seconda colonna di pin più lontana).

-Per eseguire il cablaggio per il ricetrasmettitore HC-12, il ricevitore RC e 5Vout dal PDB al Vin dell'Arduino abbiamo utilizzato intestazioni impilabili, mentre per il giroscopio abbiamo saldato i fili direttamente e utilizzando tubi termorestringenti attorno alla saldatura. Puoi scegliere di fare entrambe le cose per uno qualsiasi dei componenti. L'utilizzo delle intestazioni richiede un po' di lavoro in più in anticipo, ma offre maggiore flessibilità. La saldatura diretta dei fili è una connessione più sicura a lungo termine, ma significa che l'utilizzo di quel componente su un altro progetto è più difficile. Nota che se hai utilizzato le intestazioni sullo scudo GPS, hai ancora una discreta flessibilità indipendentemente da ciò che fai.

Alla fine del nostro progetto, non siamo stati in grado di progettare un buon metodo per collegare tutti i nostri componenti al telaio. A causa della pressione del tempo della nostra classe, le nostre soluzioni generalmente ruotavano attorno a nastro biadesivo in schiuma, nastro adesivo, nastro isolante e fascette. Ti consigliamo vivamente di dedicare più tempo alla progettazione di strutture di montaggio stabili se prevedi che questo sia un progetto a lungo termine. Detto questo, se vuoi solo fare un prototipo veloce, sentiti libero di seguire il nostro processo. Tuttavia, assicurati che il giroscopio sia montato saldamente. Questo è l'unico modo in cui Arduino sa cosa sta facendo il quadricottero, quindi se si muove in volo avrai problemi.

Con tutto cablato e in posizione, prendi la batteria LiPo e falla scorrere tra le piastre superiore e inferiore del telaio. Assicurati che il suo connettore punti nella stessa direzione del connettore del PDB e che possano effettivamente connettersi. Abbiamo usato del nastro adesivo per tenere in posizione la batteria (anche il nastro in velcro funziona, ma è più fastidioso del nastro adesivo). Il nastro adesivo funziona bene perché si può facilmente sostituire la batteria o rimuoverla per la ricarica. Tuttavia, devi assicurarti di fissare STRETTAMENTE la batteria, come se la batteria si muovesse durante il volo, ciò potrebbe compromettere seriamente l'equilibrio del drone. NON collegare ancora la batteria al PDB.

Passaggio 7: associazione del ricevitore

Ricevitore di associazione
Ricevitore di associazione
Ricevitore di associazione
Ricevitore di associazione

Prendi il ricevitore RC e collegalo temporaneamente a un alimentatore da 5 V (accendendo Arduino con alimentazione USB o 9 V o con un alimentatore separato. Non collegare ancora LiPo ad Arduino). Prendi il pin di collegamento fornito con il ricevitore RC e posizionalo sui pin BIND sul ricevitore. In alternativa, accorciare i pin superiore e inferiore nella colonna BIND come mostrato nella foto sopra. Una luce rossa dovrebbe lampeggiare rapidamente sul ricevitore. Ora prendi il controller e premi il pulsante sul retro mentre è spento, come mostrato sopra. Con il pulsante premuto, accendi il controller. Ora la luce lampeggiante sul ricevitore dovrebbe diventare fissa. Il destinatario è vincolato. Rimuovere il cavo di rilegatura. Se stavi usando un alimentatore diverso, ricollega il ricevitore al 5V dell'Arduino.

Passaggio 8: (opzionale) collegare insieme e montare il sistema di telecamere FPV

(Opzionale) Collegare insieme e montare il sistema di telecamere FPV
(Opzionale) Collegare insieme e montare il sistema di telecamere FPV
(Opzionale) Collegare insieme e montare il sistema di telecamere FPV
(Opzionale) Collegare insieme e montare il sistema di telecamere FPV

Innanzitutto, saldare l'adattatore XT-60 con i cavi di alimentazione e di terra sul monitor. Questi possono variare da monitor a monitor, ma l'alimentazione sarà quasi sempre rossa, la terra quasi sempre nera. Ora inserisci l'adattatore con i fili saldati nella tua LiPo da 1000 mAh con la spina XT-60. Il monitor dovrebbe accendersi con (di solito) sfondo blu. Questo è il passo più difficile!

Ora avvita le antenne sul ricevitore e sul trasmettitore.

Collega la tua piccola Lipo da 500 mAh al trasmettitore. Il pin più a destra (sotto l'antenna) è la massa (V_) della batteria, il pin successivo a sinistra è V+. Vengono i tre fili che vanno alla telecamera. La fotocamera dovrebbe essere dotata di una spina tre in uno che si inserisce nel trasmettitore. Assicurati di avere il cavo dati giallo nel mezzo. Se hai utilizzato le batterie a cui ci siamo collegati con spine destinate a questo scopo, questo passaggio non dovrebbe richiedere alcuna saldatura.

Infine, collega l'altra batteria da 1000 mAh con il cavo di uscita CC fornito con il ricevitore e, a sua volta, collegalo alla porta di ingresso CC sul ricevitore. Infine, collega l'estremità nera del cavo AVin fornito con il ricevitore alla porta AVin del ricevitore e l'altra estremità (gialla, femmina) all'estremità maschio gialla del cavo AVin del monitor.

A questo punto, dovresti essere in grado di vedere una vista della telecamera sul monitor. Se non puoi, assicurati che il ricevitore e il trasmettitore siano entrambi accesi (dovresti vedere i numeri sui loro piccoli schermi) e che siano sullo stesso canale (abbiamo usato il canale 11 per entrambi e abbiamo avuto un buon successo). Inoltre, potrebbe essere necessario cambiare il canale sul monitor.

Montare i componenti sul telaio.

Una volta che la configurazione funziona, scollega le batterie finché non sei pronto per volare.

Passaggio 9: impostare la ricezione dei dati GPS

Impostare la ricezione dei dati GPS
Impostare la ricezione dei dati GPS
Impostare la ricezione dei dati GPS
Impostare la ricezione dei dati GPS

Collega il tuo secondo Arduino con il tuo secondo ricetrasmettitore HC-12 come mostrato nello schema sopra, tenendo presente che l'installazione verrà alimentata come visualizzato solo se collegata a un computer. Scarica il codice del ricetrasmettitore fornito, apri il tuo monitor seriale a 9600 baud.

Se si utilizza l'impostazione di base, è necessario iniziare a ricevere le frasi GPS se lo scudo GPS è alimentato e correttamente cablato all'altro ricetrasmettitore HC-12 (e se l'interruttore sullo scudo è su "Scrittura diretta").

Con il Mega, assicurati che l'interruttore sia su "Soft Serial".

Passaggio 10: eseguire il codice di configurazione (Uno)

Questo codice è identico a quello usato da Joop Brokking nel suo tutorial sul quadricottero Arduino, e a lui va tutto il merito per la sua scrittura.

Con la batteria scollegata, utilizzare il cavo USB per collegare il computer ad Arduino e caricare il codice di installazione allegato. Accendi il tuo trasmettitore RC. Apri il tuo monitor seriale a 57600 baud e segui le istruzioni.

Errori comuni:

Se il codice non viene caricato, assicurati che i pin 0 e 1 siano scollegati dallo scudo UNO/GPS. Questa è la stessa porta hardware che il dispositivo utilizza per comunicare con il computer, quindi deve essere libera.

Se il codice salta una serie di passaggi tutti in una volta, controlla che il tuo interruttore GPS sia su "Scrittura diretta".

Se non viene rilevato alcun ricevitore, assicurati che ci sia una luce rossa fissa (ma fioca) sul ricevitore quando il trasmettitore è acceso. In tal caso, controlla il cablaggio.

Se non viene rilevato alcun giroscopio, ciò potrebbe essere dovuto al fatto che il giroscopio è danneggiato o se si dispone di un tipo di giroscopio diverso da quello su cui è progettato il codice per scrivere.

Passaggio 11: eseguire il codice di installazione (Mega)

Questo codice è identico a quello usato da Joop Brokking nel suo tutorial sul quadricottero Arduino, e a lui va tutto il merito per la sua scrittura. Abbiamo semplicemente adattato il cablaggio per il Mega in modo che gli ingressi del ricevitore corrispondessero ai pin di interruzione del cambio pin corretti.

Con la batteria scollegata, utilizzare il cavo USB per collegare il computer ad Arduino e caricare il codice di installazione allegato. Apri il tuo monitor seriale a 57600 baud e segui le istruzioni.

Passaggio 12: calibrare gli ESC (Uno)

Ancora una volta, questo codice è identico al codice di Joop Brokking. Tutte le modifiche sono state fatte nel tentativo di integrare il GPS e Arduino e possono essere trovate più avanti, nella descrizione della costruzione del quadricottero più avanzato.

Carica il codice di calibrazione ESC allegato. Sul monitor seriale, scrivi la lettera 'r' e premi Invio. Dovresti iniziare a vedere i valori del controller RC in tempo reale elencati. Verificare che varino da 1000 a 2000 agli estremi di acceleratore, rollio, beccheggio e imbardata. Quindi scrivi "a" e premi Invio. Lascia andare la calibrazione del giroscopio, quindi verifica che il giroscopio registri il movimento del quad. Ora scollega l'arduino dal computer, spingi l'acceleratore fino in fondo sul controller e collega la batteria. Gli ESC dovrebbero emettere diversi segnali acustici (ma questo potrebbe essere diverso a seconda dell'ESC e del suo firmware). Spingere l'acceleratore fino in fondo. Gli ESC dovrebbero emettere segnali acustici più bassi, quindi tacere. Scollegare la batteria.

Facoltativamente, a questo punto è possibile utilizzare i coni forniti con i pacchetti di accessori di montaggio del motore per avvitare saldamente le eliche. Quindi inserire i numeri 1 - 4 sul monitor seriale per alimentare rispettivamente i motori 1 - 4, alla potenza più bassa. Il programma registrerà la quantità di agitazione dovuta allo squilibrio delle eliche. Puoi provare a rimediare aggiungendo piccole quantità di scotch su un lato o l'altro degli oggetti di scena. Abbiamo scoperto che potevamo ottenere un buon volo senza questo passaggio, ma forse leggermente meno efficiente e più rumoroso di quanto avessimo bilanciato le eliche.

Passaggio 13: calibrazione degli ESC (Mega)

Questo codice è molto simile al codice di Brokking, tuttavia l'abbiamo adattato (e il cablaggio corrispondente) per funzionare con il Mega.

Carica il codice di calibrazione ESC allegato. Sul monitor seriale, scrivi la lettera 'r' e premi Invio. Dovresti iniziare a vedere i valori del controller RC in tempo reale elencati. Verificare che varino da 1000 a 2000 agli estremi di acceleratore, rollio, beccheggio e imbardata.

Quindi scrivi "a" e premi Invio. Lascia andare la calibrazione del giroscopio, quindi verifica che il giroscopio registri il movimento del quad.

Ora scollega l'arduino dal computer, spingi l'acceleratore fino in fondo sul controller e collega la batteria. Gli ESC dovrebbero emettere tre beep bassi seguiti da un beep alto (ma questo potrebbe essere diverso a seconda dell'ESC e del suo firmware). Spingere l'acceleratore fino in fondo. Scollegare la batteria.

Le modifiche che abbiamo apportato a questo codice sono state di passare dall'utilizzo di PORTD per i pin ESC all'utilizzo di PORTA e quindi di modificare i byte scritti su queste porte in modo da attivare i pin corretti come mostrato nello schema di cablaggio. Questa modifica è dovuta al fatto che i pin di registro PORTD non si trovano nella stessa posizione sul Mega come sono nell'Uno. Non siamo stati in grado di testare completamente questo codice poiché stavamo lavorando con un vecchio Mega off-brand che aveva il negozio della nostra scuola. Ciò significava che per qualche ragione non tutti i pin di registro PORTA erano in grado di attivare correttamente gli ESC. Abbiamo anche avuto problemi con l'utilizzo dell'operatore or equals (|=) in alcuni dei nostri codici di test. Non siamo sicuri del motivo per cui questo stava causando problemi durante la scrittura dei byte per impostare le tensioni dei pin ESC, quindi abbiamo modificato il codice di Brooking il meno possibile. Riteniamo che questo codice sia molto vicino alla funzionalità, ma il tuo chilometraggio può variare.

Passaggio 14: alzati in volo!! (Uno)

E ancora, questo terzo pezzo di codice geniale è opera di Joop Brokking. Le alterazioni a tutti e tre questi pezzi di codice sono presenti solo nel nostro tentativo di integrazione dei dati GPS nell'Arduino.

Con le tue eliche saldamente montate sul telaio e tutti i componenti legati, fissati con nastro adesivo o montati in altro modo, carica il codice del controller di volo sul tuo Arduino, quindi scollega l'Arduino dal tuo computer.

Porta fuori il tuo quadricottero, collega la batteria e accendi il trasmettitore. Facoltativamente, portare con sé un laptop collegato alla configurazione di ricezione GPS, nonché alla configurazione e al monitor di ricezione video. Carica il codice del ricetrasmettitore sul tuo Arduino terrestre, apri il tuo monitor seriale a 9600 baud e guarda i dati GPS che arrivano.

Ora sei pronto per volare. Spingi l'acceleratore verso il basso e imbardata a sinistra per armare il quadricottero, quindi alza delicatamente l'acceleratore per librarti. Inizia volando basso a terra e su superfici morbide come l'erba finché non ti senti a tuo agio.

Guarda il video incorporato di noi che voliamo eccitati con il drone la prima volta che siamo riusciti a far funzionare il drone e il GPS contemporaneamente.

Passaggio 15: alzati in volo!! (Mega)

A causa del nostro problema con il codice di calibrazione ESC per il Mega, non siamo mai stati in grado di creare il codice del controller di volo per questa scheda. Se sei arrivato a questo punto, immagino che tu abbia almeno armeggiato con il codice di calibrazione ESC per farlo funzionare per il Mega. Pertanto, probabilmente dovrai apportare modifiche simili al codice del controller di volo come hai fatto nell'ultimo passaggio. Se il nostro codice di calibrazione ESC per Mega funziona magicamente senza altre modifiche, allora ci sono solo poche cose che dovrai fare al codice stock per farlo funzionare per questo passaggio. Dovrai prima esaminare e sostituire tutte le istanze di PORTD con PORTA. Inoltre, non dimenticare di cambiare DDRD in DDRA. Quindi, sarà necessario modificare tutti i byte scritti nel registro PORTA in modo che attivino i pin corretti. Per fare ciò, utilizzare il byte B11000011 per impostare i pin su high e B00111100 per impostare i pin su low. Buona fortuna e facci sapere se voli con successo usando un Mega!

Passaggio 16: come siamo arrivati al punto in cui siamo attualmente con il mega design?

Questo progetto è stata un'immensa esperienza di apprendimento per noi principianti di Arduino e dell'hobby dell'elettronica. Pertanto, abbiamo pensato di includere la saga di tutto ciò che abbiamo incontrato durante il tentativo di abilitare il codice GPS di Joop Brokking. Poiché il codice di Brokking è così completo e molto più complicato di qualsiasi cosa stavamo scrivendo, abbiamo deciso di modificarlo il meno possibile. Abbiamo provato a fare in modo che lo scudo GPS invii i dati all'Arduino e poi l'Arduino ci invii tali informazioni tramite il ricetrasmettitore HC12 senza modificare in alcun modo il codice di volo o il cablaggio. Dopo aver esaminato gli schemi e il cablaggio del nostro Arduino Uno per capire quali pin erano disponibili, abbiamo modificato il codice del ricetrasmettitore GPS che stavamo utilizzando per aggirare il progetto esistente. Poi lo abbiamo testato per assicurarci che tutto funzionasse. A questo punto, le cose sembravano promettenti.

Il passo successivo è stato quello di integrare il codice che avevamo appena modificato e testato con il controllore di volo di Brokking. Non è stato troppo difficile, ma ci siamo subito imbattuti in un errore. Il controller di volo di Brokking si basa sulle librerie Arduino Wire e EEPROM mentre il nostro codice GPS utilizzava sia la libreria Software Serial che la libreria Arduino GPS. Poiché la libreria Wire fa riferimento alla libreria Software Serial, ci siamo imbattuti in un errore in cui il codice non veniva compilato perché c'erano "definizioni multiple per _vector 3_", qualunque cosa significhi. Dopo aver cercato su Google e aver scavato nelle librerie, alla fine ci siamo resi conto che questo conflitto di librerie rendeva impossibile l'uso di questi pezzi di codice insieme. Quindi, siamo andati alla ricerca di alternative.

Quello che abbiamo capito è che l'unica combinazione di librerie che non ci ha generato errori è stata il passaggio dalla libreria GPS standard a neoGPS e quindi l'utilizzo di AltSoftSerial invece di Software Serial. Questa combinazione ha funzionato, tuttavia, AltSoftSerial può funzionare solo con pin specifici, che non erano disponibili nel nostro design. Questo è ciò che ci ha portato ad utilizzare il Mega. Arduino Mega ha più porte seriali hardware, il che significava che potevamo bypassare questo conflitto di librerie non dovendo aprire affatto le porte seriali del software.

Tuttavia, quando abbiamo iniziato a utilizzare il Mega, ci siamo subito resi conto che la configurazione dei pin era diversa. I pin su Uno che hanno interruzioni sono diversi sul Mega. Allo stesso modo, i pin SDA e SCL erano in posizioni diverse. Dopo aver studiato i diagrammi dei pin per ogni tipo di Arduino e aver rifrequentato i registri chiamati nel codice, siamo stati in grado di eseguire il codice di configurazione del volo con un ricablaggio minimo e senza modifiche al software.

Il codice di calibrazione ESC è il punto in cui abbiamo iniziato a riscontrare problemi. Ne abbiamo parlato brevemente prima, ma fondamentalmente il codice utilizza i registri dei pin per regolare i pin utilizzati per controllare gli ESC. Ciò rende il codice più difficile da leggere rispetto all'utilizzo della funzione pinMode() standard; tuttavia, rende il codice più veloce e attiva i pin contemporaneamente. Questo è importante perché il codice di volo viene eseguito in un ciclo accuratamente programmato. A causa delle differenze di pin tra gli Arduino, abbiamo deciso di utilizzare il registro di porta A sul Mega. Tuttavia, nei nostri test, non tutti i pin ci hanno fornito la stessa tensione di uscita quando ci è stato detto di funzionare in alto. Alcuni dei pin avevano un'uscita di circa 4,90 V e altri ci hanno dato più vicino a 4,95 V. Apparentemente gli ESC che abbiamo sono alquanto pignoli, e quindi funzionerebbero correttamente solo quando usassimo i pin con la tensione più alta. Questo ci ha poi costretto a cambiare i byte che abbiamo scritto per registrare A in modo che stessimo parlando con i pin corretti. Ci sono maggiori informazioni su questo nella sezione calibrazione ESC.

Questo è quanto siamo arrivati a questa parte del progetto. Quando siamo andati a testare questo codice di calibrazione ESC modificato, qualcosa è andato in cortocircuito e abbiamo perso la comunicazione con il nostro Arduino. Siamo rimasti estremamente perplessi da questo perché non avevamo cambiato nessuno dei cablaggi. Questo ci ha costretto a fare un passo indietro e a realizzare che avevamo solo un paio di giorni per ottenere un drone volante dopo settimane di tentativi di far combaciare i nostri pezzi incompatibili. Questo è il motivo per cui siamo tornati indietro e abbiamo creato il progetto più semplice con Uno. Tuttavia, pensiamo ancora che il nostro approccio sia vicino a lavorare con il Mega con poco più tempo.

Il nostro obiettivo è che questa spiegazione degli ostacoli che abbiamo incontrato ti sia utile se stai lavorando alla modifica del codice di Brokking. Inoltre, non abbiamo mai avuto la possibilità di provare a codificare funzionalità di controllo autonomo basate sul GPS. Questo è qualcosa che dovrai capire dopo aver creato un drone funzionante con un Mega. Tuttavia, da alcune ricerche preliminari di Google sembra che l'implementazione di un filtro di Kalman possa essere il modo più stabile e accurato per determinare la posizione in volo. Ti suggeriamo di fare una piccola ricerca su come questo algoritmo ottimizza le stime di stato. A parte questo, buona fortuna e facci sapere se vai più lontano di quanto siamo stati in grado di fare!

Consigliato: