2012-09-06 15 views
5

Ho provato this sketch fornito da arduino.cc. (Ho un MPU6050 GY-521 breakout board.)Utilizzare un giroscopio/accelerometro con Arduino

Penso che funzioni bene. Dà un numero strano di numeri che non riesco a capire. Dice che quelli sono valori grezzi.

Come posso convertirli in valori significativi?

L'uscita è la seguente. Anche quando il tutto è tenuto fermo, dà dei valori in cambiamento! È significativo? Allora come si deve essere capito?

(Quello che so è che solo il valore della temperatura è significativo: D)

June 2012 
WHO_AM_I : 68, error = 0 
PWR_MGMT_2 : 0, error = 0 

MPU-6050 
Read accel, temp and gyro, error = 0 
accel x,y,z: 260, 120, 15572 
temperature: 31.047 degrees Celsius 
gyro x,y,z : -24, -234, -240, 

MPU-6050 
Read accel, temp and gyro, error = 0 
accel x,y,z: 304, 12, 15608 
temperature: 31.000 degrees Celsius 
gyro x,y,z : -7, -234, -232, 

MPU-6050 
Read accel, temp and gyro, error = 0 
accel x,y,z: 160, 100, 15716 
temperature: 31.000 degrees Celsius 
gyro x,y,z : -8, -241, -248, 

MPU-6050 
Read accel, temp and gyro, error = 0 
accel x,y,z: 192, 56, 15712 
temperature: 31.000 degrees Celsius 
gyro x,y,z : -36, -212, -222, 

MPU-6050 
Read accel, temp and gyro, error = 0 
accel x,y,z: 212, 100, 15440 
temperature: 30.906 degrees Celsius 
gyro x,y,z : -32, -253, -240, 
+1

Sono già significativi. Probabilmente ti danno l'accelerazione relativa alla gravitazione (circa 9,8 m/s^2) nelle direzioni X, Y e Z. –

+0

@ H2CO3 Ho modificato il post (a causa di quello che hai detto). Si prega di consultare il post modificato. Qualche idea?? – Anubis

+2

Gli accelerometri dell'Anibis sono così: anche se mantenuti costantemente, ci sono piccoli segnali errati. E il grande valore Z è dovuto alla gravitazione (che è verticale, cioè parallela all'asse Z). –

risposta

11

È necessario guardare il datasheet di tradurre i valori grezzi a quelli significativi. Cercare le tabelle come questo per il giroscopio:

gyro table

Se avete usato i valori di default, FS_SEL sarà 0. Questa è l'impostazione della sensibilità. Quindi, per convertire i valori del giroscopio crudo in gradi al secondo, li dividi per 131. Puoi vedere i tuoi numeri fuoriuscire di meno di 2 gradi al secondo, il che è un ragionevole margine di errore.

Per la sensibilità predefinita dell'accelerometro, si divide per 16,384 per ottenere il valore in g (la forza esercitata dalla terra). Stai ottenendo l'ordine di 0,01 g per gli assi xey y 0,95 g per l'asse z, che si trova entro un ragionevole margine di errore perché il chip si mantenga fermo con l'asse z puntato verso la terra.

+3

Mille grazie Karl! Ho acquistato questo modulo da quando ho trovato quelli utili quando costruisci quad-copter (ne costruirò uno). Ma a parte questo, non so nulla su come usarli. Ho provato a utilizzare solo il codice di esempio fornito (il codice è enorme, non posso capire una cosa :(). So che c'è [questa libreria] (https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050), molti dicono che è molto utile.Se mi puoi aiutare con la scrittura di uno schizzo semplice (comprensibile), sarò grato. _ (Ho trovato [questa pagina] (http://www.instructables.com/ id/Accelerometro-Gyro-Tutorial /).) _ – Anubis

0
mpu.setFullScaleGyroRange(0); //0 = +/- 250 degrees/sec | 1 = +/- 500 degrees/sec | 2 = +/- 1000 degrees/sec | 3 = +/- 2000 degrees/sec 
    mpu.setFullScaleAccelRange(0); //0 = +/- 2g | 1 = +/- 4g | 2 = +/- 8g | 3 = +/- 16g 
+2

Per favore aggiungi una spiegazione alle tue risposte per aiutare i futuri utenti –

+0

Mentre questo codice può rispondere alla domanda, fornire un contesto aggiuntivo riguardo al perché e/o come questo codice risponde alla domanda migliora la sua valore a lungo termine Le risposte di solo codice sono scoraggiate. – Ajean