Go Down

Topic: [Robotica] GyroNav, sensore assetto e orientamento (Read 15806 times) previous topic - next topic

astrobeed

Ma il pin va messo pullup o down, e dove trovo il settaggio del pin
E' semplicemente un input, non serve nessuna pullup, è attivato nella funzione MPU9250_init(), "attachInterrupt(0, dmpDataReady, RISING);"

Scientia potentia est

giammarco

Ciao Astrobeed , mi sono inbattuto in questa discussione, avendo a disposizione l'hardware necessario  ( MPU6050 e il magnetometro basato su HMC5883L precisamente gy-271) mi sono messo sotto con un arduino nano per provare il tuo fantastico lavoro.

La mia intensione è di crearmi degli strumenti da mettere nella mia barca , e tra questi volevo proprio fare una bussola compensata... e vedere di quanti gradi la mia barca sia sbandata in navigazione,( essendo a vela)

ho collegato come da tuo schema

A.nano<-----> MPU <----->GY271
A4      <-----> sda  <-----> sda
A5      <-----> scl   <-----> scl
5v      <-----> Vcc  <-----> Vcc
gnd    <-----> gnd  <-----> gnd
D2     <-----> int

compilando e mandando in Running senza collegare AD0 e impostando Ad0 lw di default (come da commento sul codice).

vedo che rileva correttamente MPU6050 , ma non HMC5883L (precisamente il gy-271)

ecco l'output su seriale:

Initializing I2C devices...
Testing device connections...
MPU6050 connection successful
Initializing DMP...
Enabling DMP...
Enabling interrupt detection (AVR external interrupt 0)...
DMP ready! Waiting for first interrupt...
FS_SEL = 3
AFS_SEL = 0
Initializing HMC5883L...
Testing device connections...
HMC5883L connection failed
1.45 : 0.01 : -3.06 * 0 : 0 : 0 * 360
1.45 : 0.01 : -3.07 * 0 : 0 : 0 * 360
1.45 : 0.01 : -3.08 * 0 : 0 : 0 * 360
0.03 : 0.09 : 1.96 * 0 : 0 : 0 * 360
 
dove ho sbagliato, oppure quel gy-271 non funziona a dovere?

astrobeed

Mi metti un link alla scheda che stai usando, senza vedere esattamente di che hardware si tratta è difficile fare una diagnosi.
Scientia potentia est

giammarco

grazie Astrobeed

ecco il link:
http://www.robotpark.com/image/data/PRO/91457/GY_271_ELECTRONIC_COMPASS.pdf

astrobeed

Da quanto vedo quella scheda ha un traslatore di livelli per la I2C, da 3.3V a 5V, se il modulo per l'MPU6050 che stai usando non ha anche lui un traslatore di livello questo crea problemi alla I2C.
Magari prova il magnetometro da solo con lo sketch di esempio presente sul data sheet, così ci togliamo subito il dubbio se è lui a non funzionare.
Scientia potentia est

giammarco

Da quanto vedo quella scheda ha un traslatore di livelli per la I2C, da 3.3V a 5V, se il modulo per l'MPU6050 che stai usando non ha anche lui un traslatore di livello questo crea problemi alla I2C.
Magari prova il magnetometro da solo con lo sketch di esempio presente sul data sheet, così ci togliamo subito il dubbio se è lui a non funzionare.

Esatto..... ci avevo pensato e l'ho fatto, con lo sketchdi esempio ricevo l'output

giammarco

Astrobeed oggi mi sono fatto prestare da un mio amico un HMC5883L come quello che hai utilizzato tu...

effettivamente vedo un output.

ho impostato l'output su Serial ma non avendo esperienze in merito non so come possa utilizzare questi dati per fare una bussola... che dati devo prendere oppure ho paura che i dati che leggo non siano giusti, perche lasciando il circuito fermo vedo i valori riportati nell'output cambiano continuamente....

hai qualche documentazione  sulla quale posso documentarmi in merito?

Grazie mille

P.S:  appena finito il mio progetto magari con la prima versione funzionante posterò tutti il progetto ed il codice.

Go Up