Aceler
metro MMA7361
Los acelermetros, como el sensor MMA7361 son
capaces de medir la aceleracin en 3 dimensiones,
llamados ejes X, Y, Z. Todo cuerpo posee un centro de
masa que es el lugar donde se equilibran todas sus
fuerzas. Si aplicamos una fuerza en un centro de
masa, el cuerpo no va a rotar, pero si se aplica
Diagrama
de componentes de Fuerza en 3 D
El origen podemos considerar que corresponde al
centro de masa. Esta Fuerza tendr asociados 3
ngulos, uno respecto de cada eje tal que: cos(Axr) =
Rx / R cos(Ayr) = Ry / R cos(Azr) = Rz / R Y los
ngulos: Axr = arccos(Rx/R) Ayr = arccos(Ry/R) Azr =
arccos(Rz/R) ()ver
fuente
de
referencia
starlino_Guide)
Concepto de la
arquitectura real del Acelermetro MMA7361
Descripcin de los pines del chip (No del mdulo)
1.
Sin conexin.
2.
Salida de tensin Fx
3.
Salida de tensin Fy
4.
Salida de tensin Fz
5.
Vss , masa 0v
6.
7.
8.
Sin conexin
9.
10.
Sin conexin
12.
Sin conexin
13.
14.
Sin conexin
GND . 0v referencia
5V : si lo alimentamos con 5V
OGDetect, ya explicado
GSelect, ya explicado
Que pretendemos
Lo que se pretende ahora es medir el acelermetro en
sus tres ejes con lo cual lo rotaremos y observaremos
los valores de +/-1G y OG en cada eje. Para esto, las
rotaciones seguirn el mismo patrn de la figura del
chip, son 6 posiciones.
ARMADO
Mdulo Sensor:
o
Fx al canal A0 del Arduino
o
Fy al canal A1
Fz al canal A2
del Arduino
o
OG: nada
o
ST: LOW=GND
GS: LOW=GND
Arduino:
A0: FX
A1:FY
A2:FZ
El cdigo
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
Qu esperamos ver?
Sabemos que la sensibilidad del acelermetro
MMA7361 es de 800mv/G ( GS=LOW) y que la salida
ir entre 0 y 3v3 en teora. Si miramos el DataSheet ,
este nos dice que para esta sensibilidad de +/- 1G la
salida va entre 0.85v y 2,45v y que para OG la salida
vale 1,65v. Es decir es una ecuacin lineal de una
recta de la forma y=ax+b
Vout=0.8xG
1.65V
es
nuestra
variable
independiente,
mdulo
sensor,
tenemos:N=(0.8G
1.65)x
se
estiran
ni
correspondiente de OG.
se
contraen
miden
el
Posicin: 1 Eje: Y
489
OG eje Z: 482
Es de notar que los valores obtenidos del
acelermetro SON LOS QUE ESPERAMOS en forma
aproximada. Hay que notar tambin que uno con la
mano no coloca una posicin perfecta y a nivel. Les
muestro un resmen de todas las posiciones para mi
caso:
o
Posicin: 2 Eje: X
544
OG eje Z: 454
o
Posicin: 3 Eje: Y
500
OG eje Z: 465
o
Posicin: 4 Eje: X
540
OG eje Z: 475
o
Posicin: 5 Eje: Z
503
OG eje X: 531
o
Posicin: 6 Eje: Z
552
OG eje X: 482
Como vemos, la sensibilidad no es la misma en cada
eje, como lo anticipe. Si comparamos todos los rangos
de OG, +/-1G podemos decir que para los tres ejes,
tenemos un rango dinmico de:
+1G: 710-792 -1G: 224-290 0G: 454-552
Lo cual est dentro de lo que esperbamos.
Para qu sirve esto?
Teniendo los rangos de cada eje podremos MAPEAR
con la funcin MAP de Arduino los rangos de trabajo
del acelermetro que se utilice y adecuarlos a los
rangos de operacin. Por ejemplo lo que hice es
mapear el rango del eje Ycon la salida de un servo
Motor 9G , de esta manera:
Map(promY, 792,290,179,0) para manejarlo copiando
los movimientos del eje Y. Quedar para otra entrada
futura. Esto fue todo, espero les sirva para futuros
proyectos