BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   RX->Arduino->Accelerometer+gyro (https://www.baronerosso.it/forum/circuiti-elettronici/370657-rx-arduino-accelerometer-gyro.html)

SubZer076 06 giugno 17 23:47

RX->Arduino->Accelerometer+gyro
 
Salve ragazzi.
Qualcuno ha esperienza su come usare arduino non per un drone ma per stabilizzare un aereo?
Io ci sto mettendo la testa.
Per adesso posto il link per leggere i comandi mandati dal radiocomando tramite questo circuito
http://trax3d.altervista.org/Temp/READ_6PPM.jpg
Il risultato preso tramite la serial port:
http://trax3d.altervista.org/Temp/Lettura_6PPM.jpg
Cito la fonte: Reading RC Receiver PPM Signal Using Arduino: 3 Steps

Prossimo passaggio collegare Accelerometer+gyro in questo caso l' MPU5060
A presto

ElNonino 07 giugno 17 08:38

Una cosa non mi convince molto: i valori letti mi sembrano di "fantasia" come temporizzazioni, bisognerebbe verificarli con un oscilloscopio o un analizzatore di stati logico.

Con il sistema dell'articolo poi mi pare che alla fine legga un pacchetto su due quindi si aumenta la latenza.

Per imparare a programmare il progetto è valido, per uso pratico ci sono in commercio buoni stabilizzatori cinesi a 10€, esiste anche progetto open source serio per modificarne il firmware, potresti prender spunto da li.

:yeah:

ElNonino 07 giugno 17 09:04

Guarda qui: https://github.com/noobee/FlightStab

:yeah:

SubZer076 07 giugno 17 12:35

Non saprei per i pacchetti (non me ne intendo moltissimo) ma se ad ogni interrupt vengono memorizzari i cambi di stato, sapendo che l'intervallo di un pacchetto con successivo è di 11500 microseconds , come fai a dire che ne viene saltato uno?
Comunque visualizzando i movimenti dal serial monitor in diretta non vedevo alcun ritardo rispetto ai comandi dati al trasmettitore.

il_Zott 09 giugno 17 12:31

Beh il ritardo non é di secondi, ma decimi o o meno, difficile che a vista lo noti.
Comunque mi sa che se prendi qualche vecchio progetto multiwii o simile risolvi, li é spiegato bene come usare un arduino e i chip giro/acc.
Poi se é per giocare sperimentare ok, ma se vuoi qualcosa di pronto, ormai ci sono decine di stabilizzatori, anche per tutti e e tre gli assi, per non parlare poi quota, GPS ecc..
Ma se a te interessa sol stabilizzatore, cerca un po' multiwii...


Inviato dal mio iPad utilizzando Tapatalk

SubZer076 29 agosto 17 10:32

Aggoirnamento:
ho scartato l'opzione di lettura dei 6 canali PPM dal pin 1 , ho notato che ci sono dei blackout anche di alcuni secondi nella lettura ... e non so perchè.
Sono passato quindi alla lettura diretta dei canali AIL e ELE sui pin 5 e 6
il canale GEAR lo userò per poter attivare e disattivare il programma
i pin 9 e 10 saranno in uscita sui servi AIL e ELE
La logica è questa:
AIL tutto a destra inclinazione massima dell'aereo +60° e -60° per tutto sinistra
stesso per ELE +60 / -60
Questo vuol dire che per esempio mettendo tutto a destra l'alettone il servo risponderà fino all'inclinazione di 60° a destra dopo di che si metterà in posizione centrale cercando di tenere l'aereo stabile.
In teoria usando il timone l'aereo dovrebbe fare una virata perfettamente in piano (o almeno questa è la teoria)
Ora mi manca di trasferire tutto su arduino nano e cablare sul mio edge-flat per poter fare il primo test.
Vi farò sapere
Saluti

devCad 31 agosto 17 11:07

Citazione:

Originalmente inviato da SubZer076 (Messaggio 5058336)
....
Questo vuol dire che per esempio mettendo tutto a destra l'alettone il servo risponderà fino all'inclinazione di 60° a destra dopo di che si metterà in posizione centrale cercando di tenere l'aereo stabile.
...

La vedo come soluzione un po' pericolosa e semplicistica.
E se l'aereo e' in volo rovescio ad esempio cosa fai?
Per misurare l'inclinazione cosa usi?
L'accelerometro non va mica bene, in una virata corretta anche a 60 gradi segnerebbe 0 gradi, mi sa.
Ti serve un sensore piezoelettrico con logica hold applicata, direi che le cose si complicano.

ElNonino 31 agosto 17 13:37

Citazione:

Originalmente inviato da devCad (Messaggio 5058764)
La vedo come soluzione un po' pericolosa e semplicistica.
E se l'aereo e' in volo rovescio ad esempio cosa fai?
Per misurare l'inclinazione cosa usi?
L'accelerometro non va mica bene, in una virata corretta anche a 60 gradi segnerebbe 0 gradi, mi sa.
Ti serve un sensore piezoelettrico con logica hold applicata, direi che le cose si complicano.

Un accelerometro a 3 assi in genere è in grado di sapere se sta "a balle all'aria", poi per filtrare accelerazioni sugli assi e ricavare su un corpo in movimento la reale inclinazione ci vuole tanta matematica e magari anche un giroscopio, a 3 assi pure lui.... :fiu:

:yeah:

devCad 01 settembre 17 16:09

Citazione:

Originalmente inviato da ElNonino (Messaggio 5058786)
Un accelerometro a 3 assi in genere è in grado di sapere se sta "a balle all'aria", poi per filtrare accelerazioni sugli assi e ricavare su un corpo in movimento la reale inclinazione ci vuole tanta matematica e magari anche un giroscopio, a 3 assi pure lui.... :fiu:

:yeah:

Un accelerometro a 3 assi e' in grado di farlo in volo rettilineo, ma se sei in virata prova a vedere come si piazza il pendolo all'interno della cabina dell'aereo.
In questo caso secondo me senza un software con logica di tipo Hold da inizializzare alla partenza non riuscirai ad avere indicazioni attendibili.
Con logica Hold direi che basta un giroscopio ad un asse, per valutare l'angolo di rollio. Gli elicotteri rc di vecchio tipo (quelli con flybar e giroscopi tipo Gy401) funzionavano cosi', sull'asse di imbardata pero'.

ElNonino 01 settembre 17 18:27

Citazione:

Originalmente inviato da devCad (Messaggio 5058972)
Un accelerometro a 3 assi e' in grado di farlo in volo rettilineo, ma se sei in virata prova a vedere come si piazza il pendolo all'interno della cabina dell'aereo.
In questo caso secondo me senza un software con logica di tipo Hold da inizializzare alla partenza non riuscirai ad avere indicazioni attendibili.
Con logica Hold direi che basta un giroscopio ad un asse, per valutare l'angolo di rollio. Gli elicotteri rc di vecchio tipo (quelli con flybar e giroscopi tipo Gy401) funzionavano cosi', sull'asse di imbardata pero'.

Non ho chiaro cosa intendi per "logica Hold" se ti riferisci alla calibrazione a terra del velivolo come si fa con i multifrulli ruotandoli sui tre assi) e non sono nemmeno molto esperto di piattaforme inerziali però direi che interpolando i 3 assi di un giroscopio sia possibile, in assenza di variazioni di velocità significative da cui accelerazioni modeste, stabilire nello spazio l'orientamento di un piano.

Se poniamo riferiti all'accelerometro: asse X = rollio, asse Y = beccheggio , asse Z verticale anche in caso di virata a coltello avremo che l' asse Z indicherà l'accelerazione centrifuga (con segno opposto in caso di virata rovescia) e l'asse X l'accelerazione di gravità, mentre l'asse Y il relativo angolo di beccheggio.

Chiaramente è necessario filtrare i segnali dell'accelerometro applicando opportuni algoritmi, se già non li conosci dai un occhiata ai quaternioni.

IMHO.

:yeah:


Tutti gli orari sono GMT +2. Adesso sono le 09:09.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002