Pagina 1 di 1

range valori accelerometro

MessaggioInviato: 23 ago 2018, 9:28
da Montanaro
Ciao

ho un dubbio su i valori di un accelerometro.

Il mio accelerometro è un 16 bit (quindi 65535 valori) con una sensitività di -2 / + 2 g.



Questi sono alcuni valori tipici che vado a leggere:



65 423 - 64 912 - 16 0766
325 - 61 613 48 338


l'ho ruotato e ho ottenuto:
49 281 - 2579 - 64 257
16 279 - 1542 - 64 723


ruotandolo ancora:

64 153 - 15 968 - 1978
60 276 - 49 573 - 1896


I valori di un asse vanno bene (intorno ai 16 mila e ai 49 mila) anche perché il dispositivo è leggermente inclinato.

Non capisco i valori degli assi che dovrebbe essere paralleli alla superficie: perché danno valori intorno al - 2 e al 2 g invece di dare valori intorno ai 32 768 (lo 0 g)

La mia supposizioen a questo punto è che consideri 65 mila come 0 g, passi a 49 come 1 g e infine arrivi a 32 come 2 g.
Poi riparta dai valori sotto a 32 mila considerandoli come g negativa massima (circa - 2 g) e salva a 16 mila come - 1g fino ad arrivare di nuovo a 0 g con valori prossimi allo 0.

Cioè la g cresca in valore assoluto verso il centro dell'intervallo (32 mila).

E' possibile secondo voi?

Re: range valori accelerometro

MessaggioInviato: 23 ago 2018, 9:29
da Montanaro
l'accelerometro è un LSM6DSL della ST

Re: range valori accelerometro

MessaggioInviato: 23 ago 2018, 10:23
da PietroBaima
Avvia questo filmato e ascolta la musica mantra, falla permeare dentro di te come la resina epossidica sul tenero legno, apri i tuoi chakra, accendi la candela adyurvedica e ripeti... ripeti... ripeti, come in un canto gregoriano il mantra di lunga vita dell'elettronico:

il datasheet contiene tutte le risposte, il datasheet è la via della verità




Pietro Baimasan

Re: range valori accelerometro

MessaggioInviato: 23 ago 2018, 10:27
da Montanaro
si ho visto il datasheet ma non ho trovato nulla che mi possa essere utile.
https://www.st.com/resource/en/datasheet/lsm6dsl.pdf

Re: range valori accelerometro

MessaggioInviato: 23 ago 2018, 10:30
da GuidoB
Probabilmente (controlla il datasheet) ti dà i valori in complemento a 2.
Dovresti leggerli in un int (o short) con segno, e stamparli come numeri con segno (se usi printf in c, la stringa per specificare il fomato è "%d":
Codice: Seleziona tutto
printf("Accelerazione = %d", accelerazione);

).

Se li stampi senza segno, i numeri positivi (da 0 a 32767) vegono stampati correttamente, ma i numeri negativi no. -1 viene stampato come 65535, -2 come 65534, ecc.

Foto UtentePietroBaima: (:OO:) (:OOO:)

Re: range valori accelerometro

MessaggioInviato: 23 ago 2018, 10:33
da PietroBaima
GuidoB ha scritto: ti dà i valori in complemento a 2.

appunto.

GuidoB ha scritto:Foto UtentePietroBaima: (:OO:) (:OOO:)

:mrgreen:

Re: range valori accelerometro

MessaggioInviato: 23 ago 2018, 12:03
da Montanaro
GuidoB ha scritto:Probabilmente (controlla il datasheet) ti dà i valori in complemento a 2.
Dovresti leggerli in un int (o short) con segno, e stamparli come numeri con segno (se usi printf in c, la stringa per specificare il fomato è "%d":
Codice: Seleziona tutto
printf("Accelerazione = %d", accelerazione);

).

Se li stampi senza segno, i numeri positivi (da 0 a 32767) vegono stampati correttamente, ma i numeri negativi no. -1 viene stampato come 65535, -2 come 65534, ecc.

Foto UtentePietroBaima: (:OO:) (:OOO:)


si sono su 2 registri per ogni asso, entrambi a complemento a 2.
grazie :)