|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 175
|
Dati provenienti da accelerometro in spostamento
Ciao a tutti,
ho un accelleromentro a due assi della memsic. Dovrei riuscire a trasformare i dati provenienti dall'accelerometro in uno spostamento X-Y per usarlo come mouse. Purtroppo il mio spostamento lo ottengo solo se mi muovo al massimo di 90° in un verso, se mi muovo nell'altro verso non succede niente... ed il cursore non torna indietro ma rimane fermo. ecco i dettagli dal datasheet dell'accelerometro ![]() Devo fare qualche trasformazione? Ecco il prodotto in questione: http://www.memsic.com/products/MXC6202.htm
__________________
Firma in costruzione Ultima modifica di suspence : 05-11-2009 alle 17:21. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2005
Città: Fortezza Bastiani - Villettopoli del Nord-Est
Messaggi: 1578
|
-edit-
Non avevo capito bene il problema... strano questo accelerometro!
__________________
citius, altius, fortius Igitur qui desiderat pacem, praeparet bellum
Ultima modifica di Satviolence : 05-11-2009 alle 20:19. |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 175
|
A questo ci ho pensato, ma considera che devo fare il tutto su un PIC a 8 bit. In pratica non riesco a capire cosa caspita mi sputa fuori sto accelerometro sulla porta I2C...
![]() ![]()
__________________
Firma in costruzione |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2005
Città: Fortezza Bastiani - Villettopoli del Nord-Est
Messaggi: 1578
|
Se noti, X output e Y output sono le componenti di un vettore unitario (cioè x^2+y^2=1).
Praticamente, usato con x e y messi su un piano verticale, ti da le componenti dell'accelerazione di gravità lungo x e y. Se l'accelerazione è pari a 1 g, allora il modulo del vettore è 1. Se metti l'accelerometro con x e y sul piano orizzontale, ti darà in uscita le componenti in x e y dell'accelerazione nel piano orizzontale. Il modulo del vettore risultante non sarà unitario, ma sarà il valore dell'accelerazione espresso in g. Allo stesso modo le componenti in x e y sono decimali di 1 g.
__________________
citius, altius, fortius Igitur qui desiderat pacem, praeparet bellum
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jun 2007
Messaggi: 1624
|
Attacca l'uscita ad uno oscilloscopio e guarda cosa esce
|
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 175
|
Non lo posso fare... ho solo una connessione USB
__________________
Firma in costruzione Ultima modifica di suspence : 05-11-2009 alle 20:56. |
![]() |
![]() |
![]() |
#7 | |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 175
|
Quote:
Quello che vorrei ottenere è che, se mi sposto in un verso l'uscita sia negativa, nell'altro sia positiva...
__________________
Firma in costruzione |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Oct 2005
Città: Fortezza Bastiani - Villettopoli del Nord-Est
Messaggi: 1578
|
Quote:
A pagina 2 è scritto chiaramente che l'intervalli di misura è +2 g / -2 g. A pagina 9 c'è la tabellina: Resolution - Refreshing rate - Zero-G Offset 10 bits - 400Hz - 512 12 bits - 100Hz - 2048 Cioè col campionamento a 400 Hz la risoluzione del segnale in uscita è di 10 bit (valori da 0 a 1023), con lo zero corrispondente al valore 512. Quindi 0 sarà pari a -2 g, 1023 sarà +2 g.
__________________
citius, altius, fortius Igitur qui desiderat pacem, praeparet bellum
|
|
![]() |
![]() |
![]() |
#9 | |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 175
|
Quote:
Se prendessi solo il byte più significativo?
__________________
Firma in costruzione Ultima modifica di suspence : 05-11-2009 alle 21:36. |
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Oct 2005
Città: Fortezza Bastiani - Villettopoli del Nord-Est
Messaggi: 1578
|
Quote:
Ricordati della doppia integrazione per ottenere lo spostamento...
__________________
citius, altius, fortius Igitur qui desiderat pacem, praeparet bellum
|
|
![]() |
![]() |
![]() |
#11 | |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 175
|
Quote:
PS Per evitare di farla diventare una conversazione a due ho provato a mandarti un PM, ma hai la casella piena
__________________
Firma in costruzione |
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Oct 2005
Città: Fortezza Bastiani - Villettopoli del Nord-Est
Messaggi: 1578
|
Quote:
Lasciamo stare i PM, perché comunque più di tanto non ti potrò aiutare, visto che sono un meccanico. Magari così si aggrega qualcuno...
__________________
citius, altius, fortius Igitur qui desiderat pacem, praeparet bellum
|
|
![]() |
![]() |
![]() |
#13 | |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 175
|
Quote:
![]() poichè io salvo solamente il byte più significativo, allora: Se X è minore di 128 invio -X (lo spostamento sarà da -0 a -127) Se X è maggiore di 128 invio X-128 (spostamento fra 0 e 127)
__________________
Firma in costruzione |
|
![]() |
![]() |
![]() |
#14 | |
Messaggi: n/a
|
Quote:
![]() ![]() Ad ogni modo prendendo 8 bit l'uscita di ogni asse va da 0 a 255 ![]() Quindi se ricevi 129 invii 1 se ricevi 98 invii -30 Inoltre devi gestire il fatto della doppia integrazione per ottenere una posizione il che può rilevarsi problematico. E' un progetto che devi fare sulla carta o fisicamente ![]() |
|
![]() |
![]() |
#15 | |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 175
|
Quote:
![]() quindi per cui devo sempre inviare x-128?
__________________
Firma in costruzione |
|
![]() |
![]() |
![]() |
#16 | |
Messaggi: n/a
|
Quote:
![]() Siccome oltre che il mouse dovrai fare pure i driver dello stesso mouse vedi tu è esattamente la stessa cosa togliere prima o dopo il numero. A questo punto ti conviene toglierlo con il programma sul PC in modo da far girare numeri solo positivi ( e ti risparmi un po' di seghe mentali ![]() |
|
![]() |
![]() |
#17 | |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 175
|
Quote:
__________________
Firma in costruzione |
|
![]() |
![]() |
![]() |
#18 |
Messaggi: n/a
|
Butta giu un minimo di progetto almeno, ho l'impressione che tu voglia sparare direttamente il valore in uscita dall'accelerometro al PC
![]() Da quel poco che vedo richedono una posizione assoluta sul piano XY che tu gli devi passare. |
![]() |
![]() |
#19 | |
Member
Iscritto dal: Oct 2005
Città: ... e dintorni
Messaggi: 175
|
Quote:
L'unica cosa che mi manca è trasformare i dati provenienti di quell'accelerometro in spostamento...
__________________
Firma in costruzione |
|
![]() |
![]() |
![]() |
#20 | |
Messaggi: n/a
|
Quote:
detto questo auguri ![]() ![]() |
|
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:09.