Dubbio su accelerometro

Dopo anni :D ho ripreso in mano l'accelerometro che vorrei interfacciare alla scheda di acquisizione dati che ho creato e montato sulla mia auto per quando giro in pista, ma un dubbio mi tormenta :

a pagina 2 di questo datasheet

formatting link
mi indicano un range di tolleranza del valore letto in presenza di accelerazione pari a "0 g" che spazia da 1976 a 2120 a fronte di un teorico

2048.

Per sfiga il mio accelerometro è perfetto su z ed y ma quasi all'estremo superiore della tolleranza sull'asse x, infatti se perfettamente orizzontale mi indica 2048 su y ma 2091 su asse X . Cio' significa +0.08g di errore, che devo eliminare perche' decisamente eccessivo.

La domanda è : questo errore me lo dovrò aspettare come fisso, per cui nel codice metto lo zero di X a 2091 invece che a 2048 e buonanotte, oppure variera' con l'uso e quindi devo inventarmi qualcosa per ricalibrarlo periodicamente?

Altra cosa, l'escursione corrispondente ad 1g è pari a 546 "counts" dell'ADC, quindi

1994 = -1g 2048 = 0g 2594 = +1g

nel datasheet vedo che pure questa puo' spaziare da 535 a 557....che si il caso di prevedere una taratura, da farsi magari inclinando periodicamente l'accelerometro a -90 / 0 / +90 gradi su X e -90 / 0 / +90 gradi su Y e leggendo/salvando sulla EEPROM del micro i valori corrispondenti ?

Qualsiasi info, anche relativamente all'offset che mi devo aspettare al variare della temperatura da chi ha gia' usato accelerometri di questo tipo, è gradita.

Grazie, Pier.

formatting link

Reply to
Pier GSi
Loading thread data ...

"Pier GSi" :

Non sono sicuro, ma forse non è sfiga: quelli che vengono bene magari li vendono in un'altra classe di precisione.

Sei sicuro delle tue misure? Sono meno di 5°.

Immagino che sia fisso, e che dipenda dalle tolleranze di costruzione. Ma aspettiamo altre opinioni più informate.

Io la farei una tantum, così come hai fatto quella per il punto di zero.

Io non ne ho usati, ma la dipendenza dalla temperatura è scritta fra le specifiche.

Reply to
pot

Il 18/02/2013 21:06, Pier GSi ha scritto:

Benvenuto nel mondo dei mems :)

Dipende molto da cosa ci devi fare e quali sono le specifiche richieste. Se ho ben capito non andrai ad integrare i valori di accelerazione quindi per lo meno l'errore è puntuale e non si accumula. Probabilmente puoi anche trascurare il "random walking noise" (prova a lasciare acceso per lungo tempo i sensore in condizioni di riposo e acquisisci i dati).

Verificherei invece la stabilità in temperatura: è facile che lo zero si sposti.

Per il resto ti conviene predisporre una funzione di taratura in modo da acquisire i vari offset come hai già anticipato.

Ciao Marco

Reply to
Marco Trapanese

"pot" ha scritto nel messaggio news: snipped-for-privacy@tucano.isti.cnr.it...

Indica 0.08g quand'e' perfettamente orizzontale.

Zero-g Offset Variation from RT over Temp. MAX 1 mg/°C

Non e' riportato ne' un valore typical e ne' un min, da questo presumo che lo zero si puo' spostare da zero ad 1 millesimo di G per ogni grado centigrado. Se cio' fosse costante nel tempo, lineare ed uguale per tutti e tre gli assi sarebbe gia' una bella cosa perche' potrei compensare con un sensore di temperatura.

Ciao, Pier.

formatting link

Reply to
Pier GSi

Premetto che è una cosa amatoriale, diciamo che sarebbe bello riuscire a disegnare la pista, ma non è cosa semplice perche' oltre all'errore di misura ci sono altre problematiche come il beccheggio-rollio, l'eventuale inclinazione della strada e le vibrazioni.

Per il momento mi basta un valore indicativo, vorrei anche una funzione software per poter "azzerare" gli assi in caso di montaggio non perfettamente orizzontale rispetto al terreno (o di veicolo che viene alzato-abbassato solo davanti o dietro). Supponendo che gli assi x ed y siano perfettamente allineati con quelli longitudinale e trasversale del veicolo, se l'accelerometro è montato inclinato in avanti (o lateralmente) leggera' un valore diverso da zero. Io vorrei compensarlo facendo :

valoreGcorretto = (valoreGletto-valoreGposizionezero) / cos(ang_disall_pos_zero)

In questo modo, se l'accelerometro fosse montato inclinato di 8° in avanti dovrei leggere a veicolo fermo 0.14g; azzerando via software la variabile 'valoreGposizionezero' varrebbe 0.14 ed ang_disall_pos_zero 8°, con un'accelerazione longitudinale di 1g la formula dovrebbe restituirmi 1g a fronte di un valore letto leggermente superiore a 1.14g.

Tra parentesi, visto che si parla di angoli molto piccoli ed un errore di

0.01 g è accettabile, mi sa che si fa prima a fare la sottrazione...se da fermo leggo 0.14g sottraggio 0.14 dalla lettura ed accetto quello che è l'errore max di qualche centesimo di g.

Qualcuno puo' dirmi se il ragionamento e' corretto?

Provero'

Vedro' cosa riesco a fare, intanto grazie a tutti.

Ciao, Pier.

formatting link

Reply to
Pier GSi

Il 19/02/2013 13:10, Pier GSi ha scritto:

Cosa vuol dire "disegnare la pista"? Ricostruire il percorso seguito? Allora ti serve una piattaforma inerziale non un singolo accelerometro. E a meno di andare su prodotti *molto* (troppo) costosi, i risultati saranno decisamente approssimativi.

Valore indicativo di cosa?

Se usi il sensore di cui hai linkato il datasheet è un 3 assi. Puoi quindi posizionare "come ti pare" il sensore per poi sottrarre vettorialmente la posizione di riferimento dalla risultante durante la taratura (cioè in condizioni di riposo).

A volte parli di g a volte di gradi. Devi misurare un angolo o un'accelerazione? I due casi coincidono solo in condizioni statiche dove la forza misurata è quella di gravità. In ogni caso con la funzione di calibrazione di cui abbiamo discusso ricavi offset (zero) e sensibilità per ciascun asse. L'errore è legato alle variazioni di questi parametri (da verificare se e quando è necessario ricalibrarli) e ovviamente al non preciso posizionamento durante la calibrazione.

Ciao Marco

Reply to
Marco Trapanese

"Pier GSi" :

Parafraso: sei sicuro che sia perfettamente orizzontale? Per avere

0,08g di errore basta che sia inclinato di 5°.

Sì, così c'è scritto.

Credo che sia costante nel tempo, probabilmente lineare, ma non necessariamente uguale per i tre assi. Comunque è una di quelle cose che non dovrebbe essere troppo difficile misurare.

Reply to
pot

"pot" ha scritto nel messaggio news: snipped-for-privacy@tucano.isti.cnr.it...

Scusa, ero di fretta...comunque si', dal momento che se il piano sul quale l'ho appoggiato non fosse orizzontale girandolo di 90° dovrei vedere 0.08g sull'altro asse, che invece rimane sempre a zero :) Inoltre ruotandolo di 90° attorno all'asse Y, l'asse X segna circa 1.08 in un senso e circa -0.92 nell'altro.

Provero' a riscaldarlo uniformemente osservando che succede

Ciao, Pier.

formatting link

Reply to
Pier GSi

"Marco Trapanese" ha scritto nel messaggio news:kfvvg9$q9v$ snipped-for-privacy@tdi.cu.mi.it...

Allora, campiono una serie di parametri e li vorrei correlare al punto del circuito per capire velocemente la posizione dell'auto (mediante un puntino che si sposta sulla mappa in funzione di dove l'indice del grafico è posizionato); non è importante che il disegno della pista sia fedele al metro (tra l'altro c'e' anche un sensore su ruota ed un beacon ottico quindi ho la distanza progressiva dal traguardo ed un riferimento assoluto ad ogni passaggio) ma quel tanto che basta per distinguere le curve ed i punti di inizio frenata ed ingresso curva. Immagino che i risultati sarebbero approssimativi anche con una piattaforma dotata di accelerometro e giroscopio perche' gli errori si sommano, poi ora che ci sono i GPS 10 Hz una IMU penso non abbia neanche molto senso per una simile applicazione. A meno che non si vogliano fare cose sfiziose tipo misurare l'angolo di imbardata e capire l'entita' del sotto-sovrasterzo... :)

Si, certo. Ma visto che va montato con gli assi x ed y praticamente corrispondenti agli assi longitudinale e trasversale a me tutto sommato basterebbe compensare piu' che altro un'inclinazione avanti-indietro dovuta a diverse regolazioni delle sospensioni. E mi chiedevo se la formula del post precedente potesse funzionare, il coseno dell'angolo di disallineamento lo potrei inserire in una lookup table per velocizzare i calcoli.

Io vorrei misurare l' "angolo di disallineamento" a veicolo fermo (dovuto a montaggio non meccanicamente perfetto o modifiche di altezza su uno dei due assi) per poi correggere il valore di accelerazione letto in movimento al fine di ricavare l'accelerazione che avrei se l'accelerometro fosse montato in maniera tale da segnare 0g e 0g quando l'auto è in piano.

Esempio :

monto l'accelerometro e questo mi indica x = 0.10 ed y = -0.04 ad auto ferma ed in piano, premendo un pulsante vorrei poter ottenere una lettura pari a x = 0 ed y = 0 per poi in movimento leggere il dato l'accelerazione compensato come se l'accelerometro fosse montato perfettamente parallelo al terreno (lo so che poi il dato sara' comunque falsato dai, seppur piccoli, beccheggio e rollio).

Non so se mi sono spiegato :/

Ciao, Pier.

formatting link

Reply to
Pier GSi

Il 19/02/2013 20:21, Pier GSi ha scritto:

Ok.

Dipende da tante cose. Non conosciamo i dettagli, ma parlando in generale vedrei meglio la posizione stabilita in altro modo (ottico, visivo, gps, ecc...) mentre il comportamento puntuale tramite accelerometri. Quello che non capisco è perché comunque non prendi quei sensori che hanno già anche i 3 giroscopi. Anche se non li utilizzeresti come IMU avresti comunque informazioni in più visto che ti interessano le curve.

Trascurando il terzo asse puoi lavorare su singoli assi x e y azzerando l'offset alla pressione del pulsante. L'uscita del sensore la calcoli come:

out = m * (in - offset)

dove m è la sensibilità e l'offset il valore letto a riposo. Questa è un'accelerazione (m/s^2) e a seconda di cosa vuoi leggere puoi trattarla così com'è o sommarla a quella dell'altro asse.

Ma hai un'idea del rumore che troverai in uscita? Potrebbe non essere così banale recuperare il segnale che ti interessa. Il disallineamento è l'ultimo dei problemi, IMHO.

Marco

Reply to
Marco Trapanese

"Pier GSi" :

Va bene, è la prova giusta.

Perfetto. Come ti hanno già fatto notare, in ogni caso una volta montato deve esserrci il modo di azzerarlo.

L'uniformità non dovrebbe essere un serio problema, visto che è molto piccolo.

Reply to
pot

"Marco Trapanese" ha scritto nel messaggio news:kg0kl9$c95$ snipped-for-privacy@tdi.cu.mi.it...

Per il momento ho questo, e vorrei fare delle prove :)

Ok, il discorso è che se lavoro sul singolo asse ma questo è inclinato di un certo numero di gradi rispetto al vettore accelerazione da misurare non è sufficiente sottrarre dal valore misurato l'offset acquisito "premendo il pulsante" quando il veicolo è fermo in piano. Bisogna dividere per il coseno dell'angolo applicando la formula che ho scritto nel primo post , IMHO.

Provo a fare un altro esempio :

Il sensore è fissato con l'asse longitudinale inclinato di 30° rispetto alla superficie terrestre, a veicolo fermo leggero' 1*sin(30) = +0.50 g. Acquisisco l'offset (-0.50 g) ed ottengo una lettura pari a 0.00 g. Ora sottopongo l'auto ad una decelerazione longitudinale che mi faccia leggere -0.50g.

-0.50 + (-0.50) = -1g.

Ma non è questa la decelerazione reale in quanto l'asse del sensore e' inclinato, ed ecco che arriviamo al coseno dell'angolo di disallineamento :

-1 / cos(30) = -1.15 g è la decelerazione reale, con la tua formula otterrei -1g

Su angoli di disallineamento piccoli (entro gli 8°) senza dividere per il coseno l'errore (1%) è trascurabile, questo si'.

Avevo fatto delle prove di accelerazione in rettilineo, con una media mobile su un certo numero di valori il risultato era secondo me buono ed abbastanza confrontabile con un GPS.

Ciao, Pier.

formatting link

Reply to
Pier GSi

Il 20/02/2013 20:47, Pier GSi ha scritto:

Un conto è la lettura del segnale di uscita del sensore (depurata degli offset e moltiplicata per la corretta sensibilità) e un conto l'uso che ne fai di questa informazione.

Probabilmente non mi sono spiegato bene nei post precedenti. Ci sono due aspetti:

- calibrazione del segnale del sensore (zero e sensibilità)

- compensazione degli errori di installazione

Io ho suggerito per il primo punto di calcolare i coefficienti m e q per ottenere un corretto valore di accelerazione *lungo l'asse del sensore*.

Poi quando installi il sensore dovrai certamente correggere i disallineamenti e puoi farlo sia sulle singole componenti oppure sul vettore risultante.

Fatto questo il sensore legge *correttamente* le accelerazioni a cui è sottoposto nel tuo sistema di riferimento. Quindi potrai fare tutti i calcoli che vuoi a seconda di cosa ti interessa misurare, ma ritengo che dovresti farli coinvolgendo tutti e 3 gli assi, non basandoti sulle informazioni di uno solo che sono incomplete.

Interessante, hai qualche dettaglio in più? Tipo frequenza di campionamento, tempo di integrazione, minimo valore di accelerazione leggibile e durata della prova?

Io avevo provato a integrare un rate-gyro mems, ma i risultati erano abbastanza deludenti. Movimenti molto lenti sotto la soglia del rumore (mi pare dalle parti di 1/10°/s) non venivano letti - anche perché eliminando completamente la finestra avrei letto invece la deriva dello zero. Il risultato era un'integrazione perfetta nel brevissimo periodo (una manciata di secondi), discreta nel breve (qualche minuto) ma pessima già nel giro di 10-20 minuti.

Marco

Reply to
Marco Trapanese

Sara' per questo che chi si occupa per professione di prove di handling usa piattaforme inerziali con giroscopi a fibra ottica e accelerometri di precisione ?

Con i MEMS attuali non riesci ad avere stabilita' e rumore di fondo adeguato, per non parlare del random walk e della variazione della sensibilita' al variare delle temperatura, insomma parlando di sensori da pochi Euro avrai prestazioni allineate alla spesa fatta, poi ti devi "divertire" a compensare le varie sorgenti di errore

Per avere stabilita di pochi centesimi di grado/ora le piattaforme inerziali degli aerei militari usano dei giroscopi ring laser del costo di centinaia di migliaia di euro per asse, ancora oggi, pur avendo il GPS disponibile, tutte le applicazioni militari strategiche continuano ad avere a bordo delle piattaforme inerziali di altissima precisione in modo da essere precisi in autonomomia.

Credo che in caso di guerra "in grande stile" , i sistemi GPS vengano resi inoperativi in pochi minuti, non sarei sorpreso che nelle procedure di attacco ci siano dei sistemi di arma puntati sulla costellazione GPS / Glonass / Galileo per rendere meno efficiente il nemico.

--
Saluti 

La Fisica non e' un'opinione.
Reply to
QuelloGrosso

Il 23/02/2013 15:20, QuelloGrosso ha scritto:

Non solo loro.

Esattamente, ma in alcuni casi c'è poco da compensare.

Si usano anche su applicazioni civili ma dove viene richiesta una precisione che esula dalle caratteristiche dei mems.

Che io sappia già oggi e senza particolari traumi nelle zone a "rischio" o durante operazioni militari il segnale gps viene degradato ulteriormente. Questo naturalmente da parte dei gestori della rete gps (amico o nemico dipende da quale lato ti trovi :) ).

Marco

Reply to
Marco Trapanese

"Pier GSi" :

Mh. Per la posizione devi integrare, e così sommare gli errori. Io la posizione la lascerei stare, almeno come primo tentativo.

Invece, cerca di capire la posizione dell'auto con gli altri riferimenti e in ogni punto puoi valutere l'accelerazione: dovresti vedere le curve, le frenate e le forti accelerate, almeno.

I GPS non sono abbastanza precisi per dirti dove sei su una pista, sbagli anche di dieci metri che io sappia.

Reply to
pot

"pot" ha scritto nel messaggio news: snipped-for-privacy@tucano.isti.cnr.it...

Ho anche la distanza, ad ogni giro c'e' un riferimento assoluto (fotocellula)...oggi ho fatto alcune prove, a velocita' normale (bassa,

50-70 kmh e costante, curve fatte piano max 0.5g, stop con ripartenze, semaforo) effettivamente la precisione non e' proprio eccelsa, si distinguono chiaramente le curve cmq

formatting link

Sono circa 7.5 km percorsi in 13 minuti.

Mi sa che l'accelerometro non e' neanche allineato perfettamente (dovrei ruotarlo di qualche grado in senso orario guardando dall'alto), poi controllo. Certo che...con un'auto rigida come la mia ad ogni sconnessione (praticamente sempre quindi) i valori sui due assi oscillano tantissimo attorno allo zero, i valori compresi tra +0.04 e -0.04 g li normalizzo a zero (una zona morta centrale) in quanto sono irrilevanti in una pista..

Non lo credevo neanch'io ma esistono sistemi a 10 Hz che ti permettono di vedere anche differenze di traiettorie di 1-2 mt tra i vari giri, visto di persona con tracce sovrapposte sulle mappe google.

Unica cosa, un offset rispetto alle mappe che pero' e' fisso quindi i tracciati sono sovrapponibili.

Non costano neanche tantissimo (sui 500?), ma a me piace sperimentare...

Ciao, Pier.

formatting link

Reply to
Pier GSi

"pot" ha scritto nel messaggio news: snipped-for-privacy@tucano.isti.cnr.it...

Ho anche la distanza, ad ogni giro c'e' un riferimento assoluto (fotocellula)...oggi ho fatto alcune prove, a velocita' normale (bassa,

50-70 kmh e costante, curve fatte piano max 0.5g, stop con ripartenze, semaforo) effettivamente la precisione non e' proprio eccelsa, si distinguono chiaramente le curve cmq

formatting link

Sono circa 7.5 km percorsi in 13 minuti.

Mi sa che l'accelerometro non e' neanche allineato perfettamente (dovrei ruotarlo di qualche grado in senso orario guardando dall'alto), poi controllo. Certo che...con un'auto rigida come la mia ad ogni sconnessione (praticamente sempre quindi) i valori sui due assi oscillano tantissimo attorno allo zero, i valori compresi tra +0.04 e -0.04 g li normalizzo a zero (una zona morta centrale) in quanto sono irrilevanti in una pista..

Non lo credevo neanch'io ma esistono sistemi a 10 Hz che ti permettono di vedere anche differenze di traiettorie di 1-2 mt tra i vari giri, visto di persona con tracce sovrapposte sulle mappe google.

Unica cosa, un offset rispetto alle mappe che pero' e' fisso quindi i tracciati sono sovrapponibili.

Non costano neanche tantissimo (sui 500?), ma a me piace sperimentare...

Ciao, Pier.

formatting link

Reply to
Pier GSi

"Pier GSi" :

Interessante. Quindi l'errore assoluto è stabile, e le differenze sono affidabili.

Beh, poco non è :)

Reply to
pot

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.