Lettura valori MPU6050

Ciao a tutti, sto provando in questi giorni ad utilizzare la IMU MPU6050, prima con l'Arduino DUE, che però con un i2c scanner non trova nessun dispositivo.
Con l'Arduino UNO, invece, riesco a comunicare, il sensore mi manda i dati in formato raw, che però non riesco ad interpretare.

Ho utilizzato il codice di esempio sul Playground.

Una cosa strana è che con l'Arduino Due dovrebbe funzionare, in quanto la tensione di lavoro del sensore è di 3.3V, mentre con l'Arduino Uno ci sono 5V e il sensore non dovrebbe sopportarli. Strano.

Qualcuno ha per caso qualche codice funzionante, o mi può consigliare un tutorial ben fatto, perchè non ne vengo più fuori.
Magari qualcosa che con cui visualizzo proprio l'accellerazione in g (o m/s^2) e l'angolo in gradi o radienti...

Ciao e grazie a tutti!

Manuel

Ciao Manuel
scusami se disturbo, ma sono entrato da poco come menbro del forum
e non riesco a capire come effettuare un post.......
cmq anch'io sto lavorando con mpu6050 su sarkfun ed ho breakboard Arduino uno
non riesco a compilare un programma che funzioni, utilizzando le informazioni della rete
ho trovato parecchia roba, ma per un motivo o per un'altro non si compilano
...per es. con il file MPU6050_DMP
istruzione mpu6050 mpu;
hai qualche dritta da darmi ...e per favore come si fa un post?

Ciao, innanzitutto ti consiglio di presentarti, c'è un Thread apposito per il benvenuto dei nuovi utenti Re: Presentazioni nuovi iscritti, fatevi conoscere da tutti! (Part 1) - Generale - Arduino Forum

Per fare un nuovo post c'è un pulsantino in alto a destra con la scritta "New Topic".

Mi sembra che avevo provato ad usare quel file qualche tempo fa, ma non mi trovava dei file come a te appunto.

Aspettiamo se c'è qualcuno che ha già esperienza in merito

Ciao,
per usare la MPU6050 io utilizzo la libreria i2cdev:

e non ho problemi; ci dovrebbe essere anche un esempio di una tazza in processing.

Ciao
grazie per la sollecita risposta e per il consiglio della presentazione ( che ho fatto).
Alla prossima
Nino

Ciao
grazie per la sollecita risposta
le librerie a cui fai riferimento le ho già provate tutte ed in tutti i modi, ma danno errori di compilazioni, come detto nel mio post di "richiesta aiuto", evidentemente, non ho qualche libreria che serve alla codifica, visto che con te funziona........
.... adesso ci riprovo. :frowning:

Puoi copiare gli errori qui?

Per una guida sull'uso del forum guarda qui --> [REGOLAMENTO] Come usare questa sezione del forum - Italiano - Arduino Forum
Soprattutto i punti 7, 8 e 9.

Eccomi di nuovo qua!

Sono riuscito a scrivere un po' di programma per far funzionare il MPU6050, riscrivendo in parte il codice di esempio sul playground. Se ho tempo in questi giorni scrivo una classe e magari un po' di libreria. Mi piacerebbe condividerla con gli altri, per non tenere per me un po di giorni di lavoro.

Qualcuno sa come si può contribuire con una libreria al playground?

Ciao
Manuel

Ciao,
la libreria la devi pubblicare tu magari su github, o perlomeno renderla disponibile per download con qualche servizio (gdoc, dropbox, altro).
A questo punto la prima cosa che potresti fare è condividerla qui, in questa discussione, e magari attendere qualche feedback prima della pubblicazione su Playground ]:slight_smile:
Il Playground è cmq editabile dagli utenti iscritti.

Salve ragazzi... Anche io sto "smanettando" con MPU6050.. ho questa seriale... ma non capisco... I primi 3 sono Accellerometro ultimi 3 Giro.. ma se io volessi calcolare la velocità di spostamento e l'angolazione? Non riesco a decifrare..

AG.png

nofdik:
Salve ragazzi... Anche io sto "smanettando" con MPU6050.. ho questa seriale... ma non capisco... I primi 3 sono Accellerometro ultimi 3 Giro.. ma se io volessi calcolare la velocità di spostamento e l'angolazione? Non riesco a decifrare..

Ciao, te stai ancora visualizzando i valori raw (grezzi in inglese se mi ricordo bene), ma non gli angoli e le accelerazioni. :slight_smile:
Nel caso dell'accelerometro devi dividere il valore che leggi per 16384(per ottenere il valore in g), mentre per il giroscopio per 131 (per ottenere i °/s).
Questo perché te leggi dal sensore 16 bit che corrispondono ad un numero intero con segno (complemento a 2), quindi con una scala che va da -32768 a +32767. Il sensore è settato automaticamente su dei fondo scala di 2g per l'accelerometro e 250°/s per il giroscopio. Basta fare una proporzione e i conti tornano.
Ricordati che il gyro ti restituisce una velocità angolare, e per calcolare l'angolo devi fare l'integrale del segnale, oppure ricavi l'angolo dall'accelerazione di gravità con qualche calcolo trigonometrico. :slight_smile:
La velocità di spostamento è l'integrale dell'accelerazione, e lo spazio percorso è l'integrale della velocità. :slight_smile:

Per calcolare questo integrale ti conviene utilizzare la regola del trapezio, è abbastanza precisa con velocità molto alte!

L'unico problema è che l'integrale introduce errori sistematici, durante le mie prove anche di 1° al secondo, con il sensore fisso.

Carico i lavori su GitHub, così potete vedere e darmi qualche consiglio!!!

Ciao, Manuel

Ho caricato uno sketch di prova qui, se qualcuno ha voglia di provarlo, mi farebbe un grande onore!!!

Ciao, Manuel

ManuF:
Ho caricato uno sketch di prova qui, se qualcuno ha voglia di provarlo, mi farebbe un grande onore!!!

GitHub - manuelfregolent/MPU6050-Arduino: Arduino Sketch for reading Accelleration and angular speed from MPU6050 Sensor

Ciao, Manuel

Ho provato... scusate ma non capisco cosa significano... =(

seriale.png

Ciao, i valori che ti ritornano le funzioni sono rispettivamente:
-L'accelerazione misurata in g per gli accelerometri.
-La velocità angolare in °/s per i giroscopi.

Puoi osservare che sull'asse z del accelerometro è prensente un'accelerazione di 1g, che corrisponde alla forza di gravità.
I giroscopi come vedi hanno qualche errore di calibrazione che risolvi all'inizio leggendo un po' di misure e poi facendone la media.

Ciao
Manuel

ManuF:
Ciao, i valori che ti ritornano le funzioni sono rispettivamente:
-L'accelerazione misurata in g per gli accelerometri.
-La velocità angolare in °/s per i giroscopi.

Puoi osservare che sull'asse z del accelerometro è prensente un'accelerazione di 1g, che corrisponde alla forza di gravità.
I giroscopi come vedi hanno qualche errore di calibrazione che risolvi all'inizio leggendo un po' di misure e poi facendone la media.

Ciao
Manuel

Scusa la mia ignoranza... ma se volessi avere una risposta in velocità o accellerazione? Es. da fermo si sposta di 10 metri a 25km al s e poi ritorna a 0km al s.... si può fare?

nofdik:

ManuF:
Ciao, i valori che ti ritornano le funzioni sono rispettivamente:
-L'accelerazione misurata in g per gli accelerometri.
-La velocità angolare in °/s per i giroscopi.

Puoi osservare che sull'asse z del accelerometro è prensente un'accelerazione di 1g, che corrisponde alla forza di gravità.
I giroscopi come vedi hanno qualche errore di calibrazione che risolvi all'inizio leggendo un po' di misure e poi facendone la media.

Ciao
Manuel

Scusa la mia ignoranza... ma se volessi avere una risposta in velocità o accellerazione? Es. da fermo si sposta di 10 metri a 25km al s e poi ritorna a 0km al s.... si può fare?

Se riesci a mandarlo a 25km/s fammi un fischio che andiamo su quamche stella a fare un giro :smiley:

lucaleo:

nofdik:

ManuF:
Ciao, i valori che ti ritornano le funzioni sono rispettivamente:
-L'accelerazione misurata in g per gli accelerometri.
-La velocità angolare in °/s per i giroscopi.

Puoi osservare che sull'asse z del accelerometro è prensente un'accelerazione di 1g, che corrisponde alla forza di gravità.
I giroscopi come vedi hanno qualche errore di calibrazione che risolvi all'inizio leggendo un po' di misure e poi facendone la media.

Ciao
Manuel

Scusa la mia ignoranza... ma se volessi avere una risposta in velocità o accellerazione? Es. da fermo si sposta di 10 metri a 25km al s e poi ritorna a 0km al s.... si può fare?

Se riesci a mandarlo a 25km/s fammi un fischio che andiamo su quamche stella a fare un giro :smiley:

Il progetto che sto costruendo arriva anche a 70km/s

nofdik:

lucaleo:

nofdik:

ManuF:
Ciao, i valori che ti ritornano le funzioni sono rispettivamente:
-L'accelerazione misurata in g per gli accelerometri.
-La velocità angolare in °/s per i giroscopi.

Puoi osservare che sull'asse z del accelerometro è prensente un'accelerazione di 1g, che corrisponde alla forza di gravità.
I giroscopi come vedi hanno qualche errore di calibrazione che risolvi all'inizio leggendo un po' di misure e poi facendone la media.

Ciao
Manuel

Scusa la mia ignoranza... ma se volessi avere una risposta in velocità o accellerazione? Es. da fermo si sposta di 10 metri a 25km al s e poi ritorna a 0km al s.... si può fare?

Se riesci a mandarlo a 25km/s fammi un fischio che andiamo su quamche stella a fare un giro :smiley:

Il progetto che sto costruendo arriva anche a 70km/s

beh in questo caso la cazzata che ho scritto si rivela ancora più grossa :smiley:
quindi la domanda sorge spontanea, cosa stai costruendo?!?
70km/s è una velocità spaventosa!!
in ogni caso se è effettivamente così tieni presente che non so che accelerazioni quel chip riesca a sopportare ma da 0 a 25km/h in 10 metri credo sia davvero proprio troppo!!

Aliante a caduta libera... Con spinta iniziale a turbina

il mio 0 - 25km/s in 10 metri era un esempio per far capire... non ne ho idea quanto sia veloce... ovviamente non cosi veloce..