Tutorial sull`assemblaggio, taratura e collaudo di un multirotore

Transcript

Tutorial sull`assemblaggio, taratura e collaudo di un multirotore
Tutorial sull’assemblaggio, taratura e collaudo
di un multirotore 4 X basato su Crius All in One
di Eugenio Cosolo
[email protected]
www.missilistica.it
Rev. 1.2 del 30/08/12
La nascita del progetto Multiwii:
Multiwii è un progetto OPEN SOURCE per la gestione di modelli volanti multirotori, il cui software è di libero uso sotto licenza GPL.
L’obiettivo è di sfruttare una piattaforma hardware molto diffusa, basata sull’ambiente Arduino, usando come sensori gli
accelerometri e i giroscopi della console per videogiochi Wii della Nintendo (Wii Motion Plus e Wii Nunchuk).
In seguito sono nate diverse schede hardware dedicate al progetto, dotate di sensori dedicati.
Il software attuale è in grado di supportare anche sensori di pressione atmosferica (barometri), GPS ecc. ed è in continua
evoluzione.
Caratteristiche della scheda Crius All In One:
· Supporta il firmware MegaPirateNG e MultiWii
· Gestisce fino a 8 motori
· Accetta fino a 8 canali radio in ingresso
· 4 porte seriali per debug, bluetooth, OSD, GPS, telemetria
· 2 uscite per servocomandi per PITCH e ROLL nel sistema tricottero
· Uscita per servocomando per lo scatto della fotocamera
· 6 uscite analogiche per dispositivi ausiliari
· Porta I2C per sensori o dispositivi ausiliari
· Regolatore di tensione a 3.3V e 5V integrato
· Microprocessore ATMega 2560
· Giroscopio accelerometro a 6 assi MPU6050 con processore dedicato
· Bussola-magnetometro digitale a 3 assi HMC5883L
· Altimetro di precisione MS5611-01BA01
· Porta UBS FT232RQ USB-UART
· Convertitore di livello logico dei segnali seriali
· Rispetta le direttive RoHS (smaltimento)
Flight mode for Multiwii
· Una delle seguenti modalità base :
- Acrobatic
- Autolivellamento
- Quota automatica
- Blocco della direzione
·Modalità opzionali (richiede GPS esterno)
- HeadFree (CareFree)
- GPS Hold (Need GPS receiver or Extend Board)
- GPS Back to home position (Need GPS receiver or Extend Board)
1
Installazione scheda:
Scegliere innanzitutto la direzione di prua del nostro velivolo, questa va marcata sulle travature con del nastro adesivo colorato, in
modo da essere visibile anche a distanza. Sarebbe inoltre opportuno installare dei LED BIANCHI in corrispondenza della prua e
dei LED ROSSI in corrispondenza della poppa, magari lampeggianti.
La scheda va installata con la freccia bianca rivolta verso la prua, al centro geometrico del velivolo, su una basetta in plastica
leggera posta su un cuscinetto di gommapiuma, per smorzare le vibrazioni. La ricevente radio va installata davanti o dietro la
scheda. Una soluzione molto usata è quella di impiegare una custodia vuota da 50 CD, che funghe anche da coperchio.
Nel caso classico di quad in configurazione X, le connessioni della scheda ai motori vanno effettuate nel seguente modo:
ESC motore anteriore destro > pin 5
ESC motore anteriore sinistro > pin 2
ESC motore posteriore destro > pin 3
ESC motore posteriore sinistro > pin 6
I cavetti degli ESC (regolatori trifase) hanno un senso di inserimento che deve essere rispettato: il NERO (G) verso l’esterno della
scheda, il ROSSO (V) al centro, mentre il cavo segnale (S, di solito arancione) deve essere rivolto verso l’interno della scheda.
Sui motori devono essere installate le eliche secondo questo schema:
motore anteriore destro > rotazione antioraria
motore anteriore sinistro > rotazione oraria
motore posteriore destro > rotazione oraria
motore posteriore sinistro > rotazione antioraria
Prima dell’installazione controllare il perfetto bilanciamento delle eliche.
Queste sono le connessioni con la ricevente dell’impianto radio, riferito in questo caso ad una Futaba T6J mode 2 :
canale 1 (Roll o Aileron)
> pin A11 della scheda
canale 2 (Pitch o Elevator) > pin A10 della scheda
canale 3 (Throttle o Gas) > pin A8 della scheda
canale 4 (Yaw o Rudder) > pin A9 della scheda
canale 5 (Gear o mode)
> pin A12 della scheda (Aux 1)
canale 6 (Aux)
> pin A13 della scheda (Aux 2)
Installazione firmware:
-
Scaricare l’ultima versione del programma Multiwii dal sito: http://code.google.com/p/multiwii/downloads/list
Scaricare l’ultima versione dell’ambiente di sviluppo Arduino dal sito: http://www.arduino.cc/
Scompattare i file ed installarli su un PC, possibilmente portatile (per l’uso sul campo).
Scaricare i driver delle schede USB ed installarli sul PC controllando che vengano correttamente riconosciuti.
Controllate di aver impostato correttamente il microprocessore (Arduino Mega 2560 / Mega ADK) sul menu “strumenti” di Arduino,
oltre alla seriale (che dipende dalla porta alla quale collegate il cavo) ed infine il programmatore (USBasp).
Tramite l’ambiente Arduino aprire il file : MultiWii_2_1.ino ed inserire le seguenti personalizzazioni:
-
Decommentare in config.h la riga
#define QUADX
Decommentare in config.h la seguente riga : #define CRIUS_AIO_PRO_V1
Inserire in def.h il seguente blocco di righe (che nell’ultima versione sono già state inserite):
// parametri aggiuntivi per la Crius
/*************** IMU Orientations and Sensor definitions ********************/
#if defined(CRIUS_AIO_PRO_V1)
#define MPU6050
#define HMC5883
#define MS561101BA
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = -X; accADC[PITCH] = -Y; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = -Z;}
#define MPU6050_EN_I2C_BYPASS
// MAG connected to the AUX I2C bus of MPU6050
#undef INTERNAL_I2C_PULLUPS
#endif
2
A questo punto è possibile compilare e trasferire il firmware sulla scheda Crius, collegando il cavo USB e cliccando sull’icona
“freccia a sinistra“ nell’ambiente di sviluppo Arduino. Se tutto va bene il programma di controllo viene copiato nella memoria flash
del micropocessore. Se sorge qualche problema controllate le variabili d’ambiente e il setup di Arduino (vedi sopra).
A questo punto il microprocessore presente sulla scheda possiede tutte le informazioni necessarie alla gestione del volo per un
quadricottero a “X”, ed equipaggiato di scheda Crius All In One Pro.
Ora possiamo lanciare la procedura “MultiWiiConf2_1” che avete scaricato insieme ai file sorgenti.
Dopo aver attivato la porta COM (in questo caso la 4) e cliccato sul START, apparirà la seguente videata (denominata Graphic
User Interface), strumento essenziale per le tarature e personalizzazioni:
Possiamo notare che nel programma base sono stati inseriti tutti i parametri di default, che come vedremo non avranno necessità
di grandi modifiche. Il sistema riconosce automaticamente la presenza degli accelerometri (ACC), del barometro (BARO), e del
magnetometro (MAG).
In caso di installazione del GPS (vedi capitolo dedicato), anche questo viene riconosciuto automaticamente.
Accendere la radio e controllare che tutti i trim siano a zero e non siano state impostate miscelazioni.
La cosa migliore (se la radio lo permette) è quella di creare un nuovo profilo dedicato esclusivamente al multirotore.
Impostare anche gli eventuali REVERSE sui canali, che nel caso della mia FUTABA T6J (mode 2) sono i seguenti:
Ch 1 (Yaw) > NOR
Ch 2 (Pitch) > REV
Ch 3 (Throt) > REV
Ch 4 (Roll) > NOR
Ch 5 (Aux1) > NOR
Ch 6 (Aux2) > NOR
Per altre marche e modelli di radio verificare le risposte degli stick ed eventualmente riconfigurarli.
Verificare che spostando gli stick della radio, le risposte sulla GUI corrispondano al seguente schema (mode 2):
3
Attivazione motori :
Per questioni di sicurezza, per attivare i motori con il sistema Multiwii non è sufficiente collegare l’accumulatore.
Si deve invece procedere come descritto di seguito:
Con il comando throttle (gas) al minimo, spingere la leva del comando Yaw (lo stesso stick del throttle) verso destra.
Ora i motori gireranno al minimo, secondo il valore impostato nella linea MINTHROTTLE nel file config.h.
Per spegnere i motori, porre nuovamente lo stick del throttle al minimo e spostalo verso sinistra.
Se i motori non si armano, controllare che il valore del throttle con lo stick al minimo non superi il valore impostato nel valore
MINCOMMAD nel file config.h. Eventualmente trimmare il throttle verso il basso.
Calibrazioni iniziali
Compass:
Una delle prime cosa da fare è la calibrazione del magnetometro (Compass o Bussola).
Questa va fatta inizialmente (una tantum) e successivamente in caso di necessità.
Le calibrazioni vanno effettuate con il gas (throttle) al minimo e con i motori DISARMATI.
Cliccare sul tasto CALIB_MAG, noteremo che i led sulla scheda inizieranno a lampeggiare (per i prossimi 30 secondi).
Afferrare il quad e ruotarlo di 360 gradi intorno all'asse di imbardata per la calibrazione degli assi X e Y.
Ruotarlo ora di 360 gradi intorno all'asse di beccheggio per la calibrazione degli assi Y e Z.
Infine ruotare di 360 gradi intorno all’asse verticale per la calibrazione degli assi X e Z.
Maggiori dettagli si trovano qui : http://www.multiwii.com/forum/viewtopic.php?f=8&t=1387&p=10658
Accelerometri:
Gli accelerometri sono utilizzati per mantenere una posizione orizzontale stabile senza intervenire con i comandi di correzione via
radio. In questa fase il velivolo deve essere posizionato assolutamente orizzontale.
Per calibrare lo zero dei sensori è necessario disarmare i motori, mettere lo stick del throttle al massimo, poi spingere lo stick del
comando di coda a sinistra, contemporanemente spingere lo stick del pitch verso il basso per qualche secondo.
Questa operazione va effettuata come taratura iniziale, in questo modo i valori degli accelerometri vengono memorizzati nella
memoria flash della scheda. Questa taratura può anche realizzata direttamente dalla GUI tramite il pulsante di calibrazione.
Trim Accelerometri:
Con l’aiuto dello stick di rollio e beccheggio, ora possiamo trimmare gli accelerometri.
Con i motori disarmati spingere lo stick del gas al massimo, porre lo stick del PITCH tutto avanti, poi lo stick del ROLL tutto indietro
e a sinistra e poi a destra (2 possibilità per asse). Il LED di stato lampeggerà per confermare l’esecuzione della trimmatura.
Maggiori dettagli si trovano qui : http://www.multiwii.com/wiki/index.p...bration_Compas
e qui: http://www.multiwii.it/home-www-multiwii-com/
Calibrazione degli ESC (Electronic Speed Control):
Ogni motore del velivolo multirotore è alimentato da uno speciale dispositivo che converte la tensione continua dell’accumulatore in
una tensione trifase idonea ad alimentare gli avvolgimenti dello statore dei motori brushless (senza spazzole).
In sostanza sono dei motori in corrente alternata, contrariamente ai motori a spazzole che sono alimentati in corrente continua.
L’enorme vantaggio di non avere le spazzole (e le relative perdite per resistenza di contatto e scintillazione) assicura il massimo
rendimento e le migliori prestazioni. Lo svantaggio è che richiedono uno speciale convertitore CC>CA chiamato appunto ESC.
Quasi sempre gli ESC sono dotati del circuito BEC (Battery Eliminator Circuit), che serve a fornire l’alimentazione regolata in
tensione (5V) alla ricevente e/o alle schede di controllo.
Gli ESC sono connessi direttamente alla fonte di energia e sono comandati per mezzo dei segnali digitali generati dalla ricevente o
nel nostro caso della scheda Crius.
Necessitano però di una taratura iniziale, per garantire che tutti girino alla stessa velocità con lo stesso segnale di controllo.
Per far questo esiste un’apposita procedura nel firmware Multiwii, si procede dunque così:
1- Rimuovere le eliche
2- Decommentare in config.h la riga define ESC_CALIB_CANNOT_FLY
3- Compilare il programma, caricarlo sulla CPU e lanciarlo
4- Dopo 10 secondi la procedura ha termine, commentare nuovamente la riga, ricompilare e ricaricare il firmware.
Se necessario è possibile modificare i valori di ESC_CALIB_LOW e ESC_CALIB_HIGH
Metodo alternativo di calibrazione degli ESC
Esiste anche un altro motodo di calibrazione, che non richiede modifiche software.
Si deve allestire uno speciale connettore con 4 serie di 3 pin in parallelo, dove saranno collegati i motori tutti nello stesso verso.
Si può usare un pezzetto di piastra millefori e dei pin multipli a saldare. Gli stessi pin sono collegati ad un cavo a tre poli dotato di
spina femmina, da collegare direttamente alla ricevente sul canale del throttle, rispettando le corrette polarità.
Accendere la radio, porre lo stick del gas al massimo, collegare l’accumulatore ed attendere i pigolii degli ESC (circa 10 secondi),
rimettere a zero lo stick e staccare l’accumulatore. Ora gli ESC sono calibrati.
4
Sonar:
Il software Multiwii è in grado di gestire un sonar ultrasonico per stabilizzare la quota di volo.
Nella fattispecie è previsto questo prodotto: http://jaktek.com/wp-content/uploads/2011/12/HC-SR04.pdf
Ha una portata utile di 5 metri e una risoluzione di 3 mm.
Va collegato alla scheda secondo questo schema:
HC-SR04 Pin GND
HC-SR04 Pin Trig
HC-SR04 Pin Echo
HC-SR04 Pin Vcc
> AIO PRO Pin GND
> AIO PRO Pin 9 TRIGGER
> AIO PRO Pin 10 ECHO
> AIO PRO Pin +5V
GPS:
Per attivare il GPS aggiungere queste righe nella sezione GPS del config.h :
#define GPS_SERIAL 2
#define GPS_BAUD 115200
Configurazione del GPS:
Per prima cosa dobbiamo configurare il GPS a 115200 baud e 10 Hz di aggiornamento, mentre di fabbrica è settato a 9600 baud e
1 Hz. Per fare questo serve un adattatore di protocollo seriale, ad esempio questo:
http://www.rctimer.com/index.php?gOo=goods_details.dwt&goodsid=684&productname=
Colleghiamo i terminali +5V, RX a TX ed TX a RX, poi scarichiamo il software da questo sito:
http://www.u-blox.com/images/Support/Support_Products/EvaluationSoftware/u-centersetup-6.2.0.0.zip
Il software deve essere configurato a 9600 baud, 8 bit, nessuna parità, nessun controllo di flusso.
- (in lavoro)
This program allows you to connect to the serial port of your USB to serial interface. Set it to 9600 baud, 8 bit, No parity, no flow control for now, as that’s what the u-blox
module uses by default. You don’t need to change anything but the baud rate really. If that goes well, you should see GPS information streaming in, the little monitoring
windows should jump to life. If that doesn’t work, try power cycling the GPS.
Once you have the GPS working with your PC, you need to go into the configuration window, set the baud rate and update speed, and save the configuration into the
GPS memory. You’ll notice that there’s a small button cell on the GPS module, this actually powers the configuration memory because otherwise the u-blox would revert
to default configuration at every power loss.
Giroscopi:
- (in lavoro)
Bilanciatura dinamica dei rotori:
E’ fondamentale che le eliche dei rotori siano perfettamente bilanciate, per evitare vibrazioni dannose per la struttura e soprattutto
per i sensori. Per ottenere ciò si possono usare i diversi strumenti in commercio o provvedere a realizzarne uno artigianalmente.
Il più diffuso è composto da due bracci verticali sui quali sono fissati dei magneti al neodimio.
Tra questi si pone un asse in ferro o acciaio del diametro del foro dell’elica con le estremità appuntite a cono.
Si infila l’elica e l’asse viene posto tra i due bracci con una delle punte a contatto con il magnete, l’altro non dovrà toccare il
magnete in modo da non creare attrito. Facendo ruotare l’elica ben bilanciata, questa dovrà fermarsi in una posizione a caso.
Se invece una delle pale tende a fermarsi verso il basso, significa che è più pesante.
Per risolvere il problema dovremo zavorrare l’opposta con delle strisce di nastro adesivo fino al perfetto bilanciamento.
Risorse sulla rete:
La bibbia Multiwii (in inglese):
http://www.multiwii.com/wiki/
Forum dedicato alle Multiwii (in inglese):
http://www.multiwii.com/forum/
Forum dedicato alle Multiwii (in italiano):
http://www.baronerosso.it/forum/modelli-multirotori/
Server dove scaricare Multiwii :
http://code.google.com/p/multiwii/downloads/list
Il sito di Arduino (in inglese):
http://www.arduino.cc/
Tutto sui PID: http://www.baronerosso.it/forum/modelli-multirotori/207249-pid-tuning-c-come-settare-i-parametri-del-vostromultiwii.html
Come costruire un quadricottero: http://www.123homepage.it/lepaginediitalo/50634865
Matematica dei PID: http://www.gioblu.com/community/forum/topic?id=281
5
PID Tuning, ovvero come ottimizzare i parametri P - I - D del vostro Multiwii (di jhoexp).
Per un mezzo ben montato (senza problemi di vibrazioni o di elettronica) e dimensioni standard (bracci da 18/25cm) i parametri di
default del Multiwii sono molto conservativi. Si possono quindi alzare moltissimo per avere un mezzo più stabile in hovering e nei
movimenti lenti, e successivamente lavorare sul rate di diminuzione del pid per rendere il mezzo più veloce e reattivo per manovre
veloci e movimenti rapidi.
Il parametro P (Proporzionale) è il GAIN, ovvero la potenza con cui i giroscopi interverranno. Più è alto e più i giroscopi influiranno
sui motori cercando di correggere l'assetto del quad. E' importante che sia il più alto possibile per avere un quad molto stabile, ma
non deve essere eccessivo, altrimenti il mezzo sovracompenserà le variazioni di assetto e non sarà in grado di recuperare le
oscillazioni, anzi ne causerà lui stesso.
Si deve lavorare prima di tutto su questo parametro (cercando di alzarlo a step di 0.5 - 1 unità) per trovare un valore ottimale
intorno al quale fare poi piccoli aggiustamenti. Al banco, tenendo saldamente il quad da sotto in modo che non possa scappare o
farvi male, ma lasciandogli la possibilità di muoversi senza forzarlo eccessivamente, portate i motori quasi all'hovering (deve
sostenere la maggior parte del suo peso autonomamente) e cercate di inclinare il mezzo con le mani. Questo deve risultare "duro"
da muovere, contrastando il movimento che gli si vuole imporre. Il P va alzato finchè il mezzo è sufficientemente "duro" da spostare
ma non vibra o innesca oscillazioni quando viene forzato. Se inizia ad oscillare, dovete ridurre il P finchè il fenomeno sparisce.
Scuotendolo vistosamente non deve mostrare la tendenza ad amplificare l'oscillazione.
Il parametro D (Derivativo) ha influenza sulla velocità con il quale i giroscopi interverranno e quindi nei transitori, sui passaggi dal
volato all'hovering, sui cambiamenti di assetto veloci e continuativi. Per comodità è ora un valore positivo sulla gui, mentre in realtà
è un valore negativo nel filtro. Va generalmente aumentato proporzionalmente al P, in passi di 2-5 unità per cercare di rendere il
quad più sincero nel volo e meno soggetto ad oscillazioni. Per ottimizzarlo al banco, quando avete finito di settare P, provate a
scuotere il quad, colpendolo leggermente da sotto su un braccio. Questo deve ritornare in posizione smorzando il colpo in fretta,
senza oscillare. Se rimbalza un po' od oscilla, alzate il D finchè l'oscillazione non viene smorzata efficacemente. (Provate anche
valori estremi di D, troppo alti e troppo bassi, per capire come lavora, e poi cercate il valore corretto)
Il parametro I (Integrale) ha influenza sulla durata e sulla persistenza con cui il quad compensa le variazioni di assetto, cercando di
mantenere l'angolo impostato dagli stick. Va modificato con cautela e in piccoli passi di 0,05 unità, durante le prove al banco,
cercando di evitare che induca oscillazioni ad alta frequenza durante le piccole correzioni col mezzo in hovering. Più e alto e più a
lungo la correzione in caso di disturbo esterno (tipo folata di vento) viene mantenuta. Questo parametro determina quanto il mezzo
tenderà a mantenere l'angolo di inclinazione voluto, più è alto e più il mezzo tenderà a rimanere nella posizione comandata dal
pilota.
Con le nuove versioni del codice è possibile alzarlo molto di più rispetto a prima, avendo un mezzo molto più insensibile ai disturbi
esterni e che mantiene meglio l'inclinazione voluta. Il codice multiwii non ne tiene conto nei movimenti veloci, per evitare problemi.
Configurazioni tramite stick :
6
Schema elettrico della scheda Multiwii originale:
Configurazioni dei motori nelle varie versioni:
7
Riparazioni e manutenzioni, ovvero: Come resuscitare una Crius AIO decapitata
Alla fine è successo.... a forza di innestare e togliere il cavo USB dalla Crius, il connettore si è staccato.
Questo nonostante il fissaggio di rinforzo con il cianoacrilato.
Il danno è stato decisamente grave, le saldature hanno strappato le piste del circuito stampato ed essendo microscopiche la
riparazione appariva quasi impossibile. Stavo quasi per gettare la scheda nei rottami presenti nel mio laboratorio e ordinare un'altra
AIO, ma io sono mi perdo facilmente d'animo e prima di farlo ho voluto tentare l'impossibile.
Per prima cosa per mezzo di un microscopio USB controllo i danni :
Dalla foto possiamo vedere che le piste mancavano del tutto, per tutti i 4 pin del connettore.
Sotto lo strato del cianoacrilato non c'era nulla su cui saldare qualcosa:
Per fortuna, dal chip FT232RQ uscivano delle sottilissime piste potenzialmente sfruttabili.
Decido dunque di applicare con il ciano un pezzettino di millefori con un connettore femmina a 4 poli:
Ora la parte più difficile, quella di saldare un filo capillare alle microscopiche piste e di ricollegarle al connettore.
Per farlo uso un saldatore per SMD con puntale limato come un ago:
8
L'impresa riesce visto che il multimetro mi conferma la continuità delle due linee.
Poi collego il primo pin dell'USB al diodo che porta l'alimentazione (il filo rosso che parte dal connettore):
E la massa sul quarto connettore, sfruttando il piano di massa sottostante:
L'operazione è riuscita ma il paziente è morto Infatti durante il collaudo la scheda non veniva vista dal computer, dunque mancava
ancora qualcosa. Scarico il datasheet del chip : http://www.ftdichip.com/Support/Docu.../DS_FT232R.pdf e controllo le
connessioni. Dopo diverse ore di test noto che il chip non era alimentato, probabilmente perchè la pista relativa era stata
strappata. Provo allora a riportare l'alimentazione partendo dal diodo precedentemente alimentato e la connetto sul resistore
collegato al pin di alimentazione del chip.
ORA IL COMPUTER VEDE LA SCHEDA!
Lancio il programma di configurazione e finalmente riesco a vedere il flusso di dati, paziente resuscitato....
Per coloro cui capitasse lo stesso inconveniente posso dare qualche consiglio:
- Fare attenzione che dei frammenti piccolissimi di stagno non creino dei cortocircuiti.
- Usare un saldatore di bassa potenza con punta ultrafine.
- Usare come capillare un filo di rame estratto da un cavetto per cablaggi, il più sottile possibile.
- Avere la mano ferma come quella di un chirurgo oculare.
- Collegare il filo rosso del cavo USB (positivo) al diodo di alimentazione
- il nero (negativo) al piano di massa
- il filo verde al UBSDP (pin 14 del chip)
- il bianco al USBDM (pin 15 del chip).
Come vedesi in foto:
9
10