Monday, January 07, 2008

Acelerómetro o como medir aceleración


Wii Remote, es el super controlador de la consola Nintendo Wii. iPhone, es el super teléfono de Apple. Ambos dispositivos cuentan con un sensor de aceleración de tres ejes o acelerómetro de tres ejes. Este sensor esta dentro la categoría de sensores MEMS (abreviatura de Micro-Electro-Mechanical System), que son aquellos sensores electrónicos que tienen internamente algún dispositivo mecánico para funcionar, en este caso una masa (si, f=m.a).
El acelerómetro que estuve mirando es el LIS302 de STMElectronics (hay otros com el ADXL330). Algunas de las características mas interesantes de este acelerómetro son: bajo consumo, interfase I2C/SPI, amplio rango de medición ±2g / ±8g y detección de click y doble click.
La comunicación con el acelerómetro es I2C/SPI según se prefiera, esto vale tanto para la configuración como para la lectura de los valores de aceleración.
Una de las cosas que me llamo la atención es la función de detección de click y doble click. Según leí cuando se somete al sensor a un estimulo (aparemente, en una única dirección) generara un señal indicando un click (interrupción). Una variante mas avanzada de la misma función permite generar una interrupción cuando se detecta una secuencia de dos estímulos consecutivos (doble click). La intensidad del estimulo y el tiempo entre el primer y el segundo estimulo es programable. La ventaja de esta función es que simplifica la programación en el microcontrolador/procesador. La interfase estándar para comunicarse con el sensor es I2C/SPI, pero usando esta funcionalidad, leer el click o doble click simplemente implica conectar una entrada del micro a la salida de INT del sensor.
¿Como usar este sensor?, se puede fabricar una placa ad-hoc con un micro estándar o utilizar algunas de las plataformas para prototipar, Arduino o CUI USB. Wiring (el lenguaje de programación Arduino) incluye rutinas para manejar dispositivos I2C lo que simplifica bastante el tema.

Links:
STMElectronics
Wiring: rutinas para manejar dispositivos I2C

No comments: