Arduino – Scheda di controllo volo per Drone con Multiwii

Informatica Taranto

Il controllore di volo è il centro nevralgico di un drone. I sistemi di controllo del volo dei droni sono molti e vari. Dai sistemi di autopilota abilitati al GPS che volano via collegamenti telemetrici bidirezionali a sistemi di stabilizzazione di base utilizzando hardware di controllo radio di tipo hobby.

I moderni controllori di volo con droni possono rintracciare le loro radici negli elicotteri R/C. Storicamente, gli aerei R/C erano controllati direttamente dalla radio del pilota. Gli elicotteri hanno aggiunto i rotori di coda. Gli elicotteri usano il loro rotore di coda (o anti-coppia) per contrastare la coppia del rotore che tenta di far girare il corpo di tutto l’elicottero. Funziona tutto bene quando l’elicottero è in bilico, ma cosa succede quando il pilota aumenta la spinta per far salire il mezzo? Mentre il pilota da gas, la coppia aumenta, facendo sì che l’intero elicottero esegua una piroetta o due, fino a quando la coppia non si azzera di nuovo.

La soluzione a questo problema sono stati i giroscopi, pesanti pesi rotanti in ottone che si inclinavano in risposta al movimento dell’elicottero. Un sensore ad effetto hall rileva l’inclinazione e comanda il rotore di coda per contrastare la rotazione dell’elicottero. Con il passare degli anni, i giroscopi meccanici sono stati sostituiti da giroscopi MEMS allo stato solido. I microcontrollori entrarono nel quadro e portarono con sé tecniche di elaborazione avanzate. Mentre i giroscopi più vecchi andavano alla deriva, si muovevano, i gyros che bloccavano il muso dell’elicottero fino a quando il pilota non aveva comandato una virata. Questi controllori di volo ad asse singolo furono rapidamente adottati dalla comunità di elicotteri R/C.

I sistemi di controllo del volo di oggi hanno a disposizione molti sensori: GPS, sensori di pressione barometrica, sensori di velocità, la lista continua. I principali contributori ai calcoli di volo sono ancora i giroscopi, accoppiati con gli accelerometri che misurano l’accelerazione causata della gravità, da una virata alta o dalla forza di arresto.

Per questo progetto di controllore di volo fai da te, useremo il giroscopio MPU6050 e il modulo accelerometro perchè ha bisogno solo di 2 pin da arduino.

I moduli giroscopici rileveranno qualsiasi movimento su ciascuno dei 3 assi. Usando quei valori potremmo calcolare l’angolo del drone in ogni momento. Se conosciamo l’angolo, possiamo sempre dare una diversa potenza ai motori per stabilizzare e contrastare le forze indesiderate.

Ora che abbiamo definito la parte anteriore del nostro drone possiamo impostarne l’asse. Da sinistra a destra sarà l’asse “X” e dall’alto verso il basso l’asse “Y”. Dobbiamo posizionare il controllore di volo in posizione centrale in modo da rilevare il movimento del drone e regolare il segnale PWM per ciascuno dei quattro motori al fine di stabilizzare il drone.

Ogni motore ha un pin di segnale per gli ESC. Sia i motori posteriori sia quelli anteriori a coppia ruotano all’interno del drone.

Così ora possiamo dire che il controllore di volo ha bisogno di 4 pin di uscita per ogni motore e un IMU (unità di movimento inerziale) collegato ad esso. Ha anche bisogno di input da ciascuno dei 6 canali del ricevitore radio.

Quindi, ancora una volta usiamo la batteria lipo del drone per fornire il controllore di volo. Collegare la 11 V direttamente al pin Vin. L’arduino NANO ha già 5 e 3.3 regolatori di tensione. Colleghiamo i pin D3, D9, D10 e D11 a ciascuno dei quattro motori ESC. Ogni esc ha anche bisogno di condividere la massa con l’arduino per capire i segnali pwm.
Fornire 5 volt al modulo MPU6050 e collegare la terra. Collegare i pin SDA (A4) e SCL (A5) ai pin analogici arduino A4 e A5 e il gioco è fatto.

Per programmare il nostro codice abbiamo due opzioni. Uno è quello di creare l’intero codice per Arduino. L’altra opzione è usare un codice già testato. In questa parte useremo la seconda opzione. La piattaforma che useremo si chiama Multiwii. Multiwii è una piattaforma di controllo del volo che può adattarsi a una grande varietà di macchine volanti. Droni, aerei, elicotteri e così via. Il controllore di volo dovrebbe leggere le accelerazioni e i dati del giroscopio dal MPU.

Scarica il file zip multiwii da un link qui.

Decomprimere il file. All’interno della cartella decompressa troverai il codice Arduino che dovremmo caricare sulla scheda del controller di volo e anche una piattaforma Java / Procesing per la configurazione live della scheda. Apri l’IDE Arduino. Ora vai nella cartella e apri il file .ino. Questo aprirà un mucchio di librerie. Vai alla libreria config.h. Qui è dove faremo la configurazione del nostro drone. Non dobbiamo cambiare nulla nelle altre librerie. Per prima cosa scorgiamo fino al tipo di multicopter. Il tipo di drone che sto costruendo è un quad X con 4 motori posizionati a forma di X. Ora scendiamo ancora un po’.

Qui definiamo la valvola a farfalla minima. Per controllare i motori, dobbiamo inviare un segnale PWM all’esc. Il PWM viene modulato modificando la larghezza dell’impulso del segnale. Questa larghezza è misurata in micro secondi. I motori che sto usando hanno una gamma di throttle che va da 1000 us a 2000us dove 1000 non ha alcuna velocità e 2000 è a pieno regime. Mi piace che il mio drone abbia un minimo del 1150 o del 1200, perché questo mi garantirà di non avere alcun ritardo del motore quando cominciierà a volare. Ciò significherebbe anche che i motori gireranno a bassi regimi mentre sono in modalità stand-by.

Selezioniamo la scheda NANOwii poiché questa è per Arduino anno con una scheda MPU6050. Il passo successivo è stabilire una comunicazione PPM tra il ricevitore del controller della radio e il controller di volo. Il ricevitore che costruiremo invierà un segnale PPM a 8 canali con i valori di accelerazione, imbardata, beccheggio e rollio. Ora digita PPM e fai clic su Cerca.

Qui nel ricevitore somma PPM aggiungere questa linea.

#define SERIAL_SUM_PPM THROTTLE,YAW,PITCH,ROLL,AUX1,AUX2,AUX3,AUX4,8,9,10,11 // BELECTRONOOBS

Questo è l’ordine dei canali PPM che riceveremo. Ora salva e compila il codice. Collega l’Arduino del controller di volo a una USB e carica il codice. Il nostro controllore di volo è pronto. Ora per testarlo apri l’applicazione Java dall’altra cartella. Mantieni Arduino collegato all’USB e seleziona il com corrispondente. Fare clic su Avvia e spostare il controllore di volo.

Come puoi vedere, abbiamo un buon controllo in tempo reale. È possibile modificare i valori PID, calibrare il sensore o modificare i comandi.

Fonte:  electronoobs.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

 

GDPR - Utilizziamo Google Analytics

Conferma, se accetti di essere monitorato da Google Analytics. Se non accetti il monitoraggio, puoi comunque continuare a visitare il nostro sito web senza che alcun dato venga inviato a Google Analytics. Leggi la nostra Privacy Policy

Su questo sito utilizziamo strumenti nostri o di terze parti che memorizzano piccoli file (cookie) sul tuo dispositivo. I cookie sono normalmente usati per permettere al sito di funzionare correttamente (cookie tecnici), per generare statistiche di uso/navigazione (cookie statistici) e per pubblicizzare opportunamente i nostri servizi/prodotti (cookie di profilazione). Possiamo usare direttamente i cookie tecnici, ma hai il diritto di scegliere se abilitare o meno i cookie statistici e di profilazione. Abilitando questi cookie, ci aiuti ad offrirti una esperienza migliore con noi.