Luciano Cismondi

...

viernes, 6 de diciembre de 2013

MPU 6050 Sparkfun Breakout
El MPU-6050 combina un giroscopio MEMS de 3 ejes y un acelerómetro de 3 ejes en la misma pastilla de silicio junto con un procesador digital de movimiento (DMP Digital Motion Processor) capaz de procesar los más complejos algoritmos de movimientos en 9 ejes. El MPU-6050 elimina los errores de cruce por cero, los cuales provocan problemas de alineación vertical. La placa desarrollada por Sparkfun para el MPU-6050, ofrece la posibilidad de trabajar fácilmente con este pequeño integrado QFN. Con solo conectarle una pira de pines de 0,1", incluyendo un bus I2C auxiliar que permite al MPU-6050 conectarse a un magnetómetro u otros sensores externos.


Características


  • Salida digital I2C. Tensión de alimentación: 2,3 - 3,4v.
  • Permite puentear CLK, FSYNC y AD0.
  • Giróscopo 3 ejes (velocidad angular), sencibilidad 131LSB/dps con fondo de escala configurable ±250, -±500, ±1.000 o ±2000dps.
  • Acelerómetro 3 ejes con fondo de escala programable ±2 g, ±4 g, ±8g o ±16g.
  • Procesador digital de movimiento (DMP Digital Motion Processor.
  • Contiene algoritmos integrados para calibración en tiempo de ejecución, sin intervención del usuario.
  • Sensor digital de temperatura.


Implementación

Lo implementamos en CMSIS con un LPC1769, en el nivelador digital, para leer las mediciones de aceleración y velocidad angular. Las lecturas de las mediciones de cada dato, acelerómetro (x, y, z), giróscopo (x, y, z) y temperatura se realizan por medio de dos bytes de 8 bits. Una parte alta y una baja. Por lo que luego de hacer la lectura de cada valor, es necesario "armar" el número.
Por lo tanto primero se realiza la lectura propia de cada segmento de 8 bits y se almacena en un buffer de 16 posiciones "Datos_Recibidos [i]:
//<! Datos_Recibidos[0] = 8bits más significativos acc eje x
//<! Datos_Recibidos[1] = 8bits menos significativos acc eje x
//<!...
//<! Datos_Recibidos[12] = 8bits mas significativos gyr eje z
//<! Datos_Recibidos[13] = 8bits menos significativos gyr eje z
El armado del dato se realiza sobre un vector de 7 posiciones, "Información[i]", donde las posiciones 0, 1 y 2 son los valores del acelerómetro x, y, z, respectivamente, uniendo los 8bits altos con los 8 bits bajos de cada dato. Caso similar tanto para el giróscopo en las ubicaciones 4, 5 y 6, como la temperatura en la posición 3.
Datos_Devueltos [ACC_X] = -((Datos_Recibidos[2]<< 8 & 0xFF00) + (Datos_Recibidos[3] & 0x00FF));
Cabe aclarar que al mismo tiempo que se realiza la unión de los datos, se hace la corrección física necesaria para alinear el sensor con el equipo donde se encuentra montado.
Una vez obtenido el vector "Información[i]", los datos están listos para procesar. Además, se pueden realizar otras configuraciones en los fondos de escala, filtros, ect.

Para más detalles se puede leer el código fuente:
Keywords: Accelerometers, Gyroscopes, Motion detection,

Me preparé para desarrollar sistemas de ingeniería comprometiéndome con el medio, lo que me permite ser promotor de cambio, con capacidad de innovación, al servicio de un conocimiento productivo. Cooperando o asumiendo el liderazgo efectivo en la coordinación técnica y metodológica de los procesos.

0 comentarios:

Publicar un comentario

Las frases que me dicen

Contacto

LUCIANO CISMONDI
Ingeniero Electrónico
Buenos Aires, Argentina