Paso 2: El código
Los chicos de sparkfun armar algún código de ejemplo para usar el LSM9DS0, así como bibliotecas para el uso de la Junta;
https://github.com/Sparkfun/LSM9DS0_Breakout/
Después de mucho dolor, he encontrado que hay una peculiaridad en el LSM9DS0 que significa que no siempre devuelve todos los datos que usted espera que, así que utilice las bibliotecas conectadas en su lugar, donde se trabaja el tema redondo. Sin esto, usted puede encontrar el colgante del sistema.
Usé el código de ejemplo de sparkfun para conseguir el giroscopio para mover el ratón. Que se combinan con las lecturas del acelerómetro para detectar de qué manera el dispositivo está orientado y traducir esto en x y y los movimientos del ratón. Puede encontrar este código en el archivo adjunto.
El código prevé el dispositivo en el lado derecho de su cabeza. Si quieres tenerlo a la izquierda, invertir el cálculo del eje Y, de lo contrario se moverá el ratón hacia abajo cuando la cabeza se mueve hacia arriba.
El LSM9DS0 no arranca tan rápido como el procesador, por lo que el código hace una pausa de 1s cuando primero comienza a permitir que los sensores en línea. Luego desechar las lecturas primeras 10 porque la primera lectura parece ser menos precisa.
El acelerómetro parece no decir cero cuando está parado (movimiento de la tierra tal vez?), por lo que el código tiene un promedio de lecturas de 10 a 40 cuando se enciende y resta las siguientes lecturas para que sea estable. Asegúrese de que el ratón es estable cuando se conecta en por esa razón.
El botón se utiliza para hacer una pausa en la interacción del ratón, y cuando empieza otra vez las lecturas fijas se toman otra vez, así que asegúrese de mantener el dispositivo constante cuando marcha - por ejemplo, ponerlo sobre la mesa.
Para utilizar el código, cree una carpeta llamada SFE_LSM9DS0 por debajo de {directorio de instalación} / Adruino y las bibliotecas y poner SFE_LSM9DS0.cpp y SFE_LSM9DS0.h en esa carpeta. A continuación, puede abrir el headMouse2.ino y cargarlo a tu Arduino.