Pages: [1]   Go Down
Author Topic: FreeIMU 0.4.3  (Read 987 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti, questo è il mio primo post smiley

Insieme all'Arduino Starter Kit ho acquistato il bellissimo FreeIMU 0.4.3 da ViaCopter. Quando mi è arrivato lo ho collegato all'UNO R3 seguendo le istruzioni, ma la scheda sembra inutilizzabile.
Ho provato le librerie del sito e l'ultima revision della repository... nulla. Ho provato ad alimentare 5V su VIN e 3.3V su 3V3, ho provato a collegare SDA e SCL ai pin analogici 4 e 5, poi ho provato a collegarli ai pin SDA e SCL su Arduino. Nulla.
Lo sketch FreeIMU_raw sembra interrompersi alla seguente riga:

my3IMU.init();

...sia in modalità fast che non.
Qualcuno ha avuto lo stesso problema?
Ho provato a contattare Fabio Varesano per scoprire che, pace all'anima sua, è scomparso questo Natale a causa di un infarto.

Sto aspettando risposta da ViaCopter, ma dubito me lo potranno sostituire perchè sul loro store risulta esaurito adesso, come presso gli altri rivenditori.
Nella zona di Torino c'è qualcuno che possa fare troubleshooting ed eventualmente riparare la scheda?
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Nella zona di Torino c'è qualcuno che possa fare troubleshooting ed eventualmente riparare la scheda?

Le free imu venivano testate singolarmente prima di spedirle ai rivenditori, la possibilità che la tua sia guasta è molto, ma molto, bassa, però non è impossibile.
Per testarla ed eventualmente ripararla serve idonea strumentazione elettronica ed essere attrezzati in modo non indifferente per il rework con componenti smd ad alta densità, non ultimo occorre avere disponibili gli eventuali ic di ricambio, non semplici da reperire.
Ritengo molto probabile che il problema sia dovuto ad un errore di uso, o dello sketch, più che ad un problema hardware della free imu, cosa intendi esattamente con:

Quote
Lo sketch FreeIMU_raw sembra interrompersi alla seguente riga:

my3IMU.init();

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Fabio Varesano aveva messo insieme delle librerie (una lunga serie) per rendere FreeIMU plug-and-play. Ha poi reso disponibili istruzioni di collegamento sia in formato testuale che video.
Ci sono 4 pin da collegare per ricevere i dati via I2C: +5V, GND, SDA, SCL (o in alternativa +3.3V). La scheda 0.4.3 ha un breakout che mette a dispositione alcuni pin per interfacciarsi direttamente gli interrupt dei sensori, ma senza documentazione.

Lo sketch a cui mi riferisco fa parte delle librerie pubblicate da Varesano (che ho installato prima dal suo sito, poi sostituite con l'ultima revisione del repository su cui vi stava lavorando.. dov'è per esempio disponibile una applicazione per la calibrazione della FreeIMU, necessaria per eliminare completamente il fenomeno di drift sull'asse Z).

Ne ho provati diversi di sketch, ma il primo che Varesano usa nel suo video didattico è FreeIMU_raw, che printa i singoli valori per accelerometro, giroscopio, magnetometro (sui tre assi), termometro e barometro. I valori sono già fusi e corretti on-board (i gyro esprimono angoli di assetto, non velocità di rotazione).

Aprendo il serial monitor dall'Arduino IDE (ovviamente impostato a 115200baud), non ricevo nulla. Ho aggiunto una serie di istruzioni Serial.print() in punti diversi delle funzioni setup() e loop(), per individuare il punto in cui si interrompe l'esecuzione.
Questa l'ultimo messaggio viene printato sul monitor seriale una riga prima di:

my3IMU.init(true);

Poi il nulla.

Ho provato, come detto, a collegare la scheda in diversi modi (prendendo l'alimentazione da punti diversi, connettendo la breakout di FreeIMU alle porte analogiche e alle porte SDA e SCL della Arduino UNO). Nada de nada.

Boh?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho fatto ulteriori prove, con gli sketch disponibili nelle librerie FreeIMU di Varesano, dopo aver reinstallato Arduino IDE e le librerie stesse (all'ultima versione stabile).
Ho anche collegato direttamente gli interrupt di accelerometro e magnetometro, e in effetti quanto do dei colpetti alla board, gli eventi CHANGED vengono invocati. Quindi so che accelerometro e magnetometro, pur non accessibili attraverso l'interfaccia I2C sulla scheda FreeIMU, stanno in qualche modo funzionando.

Sto cominciando a pensare che il problema sia relativo all'interfaccia I2C o al processore.

Ieri ho provato ad andare al FabLab di Torino, ma pur essendo tutte le luci accese non mi ha aperto nessuno, e non si muoveva anima viva all'interno. Mah...
Ho contattato ViaCopter, che mi ha confermato di non potermela sostituire perchè le FreeIMU sono esaurite. Però si è offerto di ripararmela se gliela rispedisco indietro.
Preferirei trovare qualcuno che me lo faccia a Torino.

L'unica alternativa altrimenti mi sa che rimane costruirmi una FreeIMU in casa... ma non verrà certo così piccola ed elegante. Devo ammettere che mi sono proprio affezionato a questa board.
Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10112
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

sicuro che il tuo modelli abbia i traslatori di livello da 3,3v a 5v?
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Parli della FreeIMU 0.4.3?

Arduino UNO R3, come ovviamente saprai meglio di me, ha sia punti dove pescare 5V che 3.3V.

FreeIMU 0.4.3 ha un regolatore di tensione interno a bassa rumorosità (per abbattere le interferenze sui sensori), che è collegato sul breakout. Ci sono due pin (VIN e 3V3).
Il primo si immette nel regolatore (e viene regolato), il secondo (che va sul 3o pin del regolatore) è un bypass che il regolatore fa uscire direttamente dal suo output. Come descritto nel layout della board.
Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10112
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok per l'alimentazione, ma i sensori sulla linea i2c (SDA e SCL) parlano a 3,3v cosa che crea problemi ad arduino. per ogni versione di freeIMU, salvo le più vecchie, esiste la versione "liscia" a 3.3v e la versione con traslatore di livello che trasforma i 3,3v in 5v.
Se hai preso quella liscia allora ti serve un traslatore di livello
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok per l'alimentazione, ma i sensori sulla linea i2c (SDA e SCL) parlano a 3,3v cosa che crea problemi ad arduino.

Diciamo che può creare problemi, però nella stragrande maggioranza dei casi l'ATmega 328 riesce a lavorare anche con i segnali I2C a 3.3V, di questa cosa ne avevamo parlato in modo esaustivo nel mega thread dei quadricotteri relativamente a come collegare i vari sensori.
Va da se che se c'è anche il traslatore di livelli è meglio, un test semplice per verificare se i sensori sono visibili sul bus I2C è usare lo sketch I2Cscanner che visualizza tutti gli address dei device presenti sul bus.
Se il test ha successo è la conferma che la FreeImu è funzionante, in caso contrario il problema è da cercare nella connessione tra la FreeImu e Arduino e/o problemi di alimentazione.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sul sito di Varesano c'è scritto qualcosa a riguardo: in riferimento ai traslatori diceva che ce ne è bisogno solo sulle vecchie versioni di Arduino, mentre sull'UNO è PnP.

Ieri notte ho lanciato un po' di sketch dalla libreria di FreeIMU.
L'unico sensore a cui riesco a "collegarmi" senza andare in crash è il magnetometro (che tra l'altro è collegato alla I2C Aux dell'accelgyro, in serie, perchè quest'ultimo integra la logica di fusione, e se presente, usa anche il feed del magnetometro per abbattere gli errori nella stima dell'orientamento).
MA, e c'è un "ma", i valori XYZ del magnetometro sono costanti qualunque cosa succeda.

Colleganto invece gli interrupt di accelgyro e magnetometro, collegati du INT0 e INT1 (pin D2 e D3), ho scritto un piccolo sketch per agganciare gli interrupt ed ascoltare eventi "CHANGE". E questi vengono invocati quando colpisco la scheda col dito, come dovrebbero fare.

Il problema sembra essere quindi nei pressi dell'interfaccia I2C tra FreeIMU e Arduino. Mah...

p.s. ma al FabLab di Torino c'è nessuno? Perchè non rispondono alle mail e al citofono? Grrrrrr
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21646
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Su ViaCopter leggo questo:
Quote
Power is supplied by an onboard 3.3V low-noise LDO that can be fed with 3.6 - 6.5V.
i2c operation is at 3.3 volts, so you need to disable internal pullups for AVR and Arduino use, or use a Logic Level Converter!
Quindi la scheda FreeIMU 0.4.3 non ha i traslatori sulle linee I2C.
(Fonte: http://viacopter.eu/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=64&category_id=11&option=com_virtuemart&Itemid=53)
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora, non posso contribuire con conoscenze dirette, posso solamente riportare le istruzioni di Varesano:

Ecco lo schema di collegamento con Arduino, nel cartiglio vi è scritto che su Arduino Mega è presente il traslatore a 5V, e VA RIMOSSO. Cioè sta dicendo l'esatto opposto di quello che suggerite. Qualcuno ha l'idea del perchè?
http://www.varesano.net/files/FreeIMU_v04-Arduino_connections.pdf
Da notare che le due varianti di collegamento sono entrambe compatibili con Arduino UNO R3. Io le ho provate entrambe.

Potete guardare il video, per vedere cosa succede quando funziona:
http://www.varesano.net/blog/fabio/how-connect-and-test-freeimu-v04-arduino-and-freeimu-library
Ho seguito alla lettera, passo passo, replicando le azioni di Fabio nel video. Ma senza lo stesso risultato.

Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho seguito alla lettera, passo passo, replicando le azioni di Fabio nel video. Ma senza lo stesso risultato.

Prova ad usare lo sketch I2Cscanner, come ti ho già suggerito, e posta i risultati, altrimenti andiamo avanti a tastoni senza concludere nulla a meno che non hai un oscilloscopio, in questo caso ti posso guidare su come effettuare delle misure.
Se proprio non riesci a risolvere, e non trovi nessuno a Torino che ti può aiutare, al limite mi puoi spedire la scheda e vedo di capire perché non ti funziona.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Karma, ti ringrazio molto per la disponibilità.
Questa notte al ritorno dalla Croce Rossa se ho ancora energie faccio una prova con quello sketch. Altrimenti domani sera.

Se i risultati non vi dovessero piacere, e non trovo nessuno a Torino, posso rispedire la scheda in Danimarca: Jussi di ViaCopter si è offerto di ripararmela.
Tra l'altro ho provato a fare una lista della spesa e se dovessi riprodurre la FreeIMU per un pezzo unico, mi costerebbe non meno di 120 euro!!

Per fortuna è una scheda libre, spero che qualcuno a breve prenda in mano la situazione e dia seguito all'attività (fenomenale) di Varesano.
Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10112
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

se ti colleghi ma non leggi i valori probabilmente non hai inizializzato bene i sensori, disolito nei registri hanno un bit di "start", guarda bene il datasheet
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pages: [1]   Go Up
Jump to: