LSM303DLHC Exploración de acelerómetro y magnetómetro: 9 pasos

LSM303DLHC Exploración de acelerómetro y magnetómetro: 9 pasos

Tabla de contenido:

Anonim

El LSM303 combina las lecturas del campo electromagnético de la tierra como un magnetómetro con las lecturas de la fuerza gravitatoria de la tierra como un acelerómetro de triple eje. Esta información lo convierte en un sistema de navegación compacto.

Tal como está, el LSM303 se puede utilizar como una brújula básica, un sensor de movimiento o simplemente para detectar la caída libre. Sin embargo, si uno combinara el LSM303 con un sensor de giroscopio de triple eje, como el L3GD20, tendría más usos posibles. Esto es, por ejemplo, cómo su teléfono adquiere toda su información de navegación. Además, sería un sistema de navegación completo más profesional para uso aéreo, terrestre y marino.

Suministros:

Paso 1: Montaje y Cableado

Dependiendo de si tiene un LSM303 completamente ensamblado, es posible que tenga que soldar una tira de cabecera al sensor. Cada pin debe soldarse para lograr una buena conexión eléctrica. Si la soldadura no es algo con lo que tenga mucha experiencia, consulte este tutorial (http: //learn.adafruit.com/adafruit-guide-excellen …) de Adafruit.

El sensor LSM303 debe colocarse a cierta distancia de todos los otros rastros de metal o imanes. Si no, esto causará disturbios en las lecturas y se producirán errores. Esta es la razón por la que debe usar cables de cierta longitud como amortiguador para mantener el sensor a una distancia segura.

Si su proyecto con el LSM303 depende de una gran cantidad de rotación alrededor de su propio eje, será una buena idea poner sus manos en un anillo deslizante para que su cableado no se retuerza en absoluto.

El LSM303 es fácil de conectar a su arduino, ya que solo requiere cuatro cables. GND a GND, VIN a 5v (o 3.3v, dependiendo de lo que tenga disponible, SDA a SDA y SCL a SCL. Y recuerde, cables largos.

Paso 2: Calibración

La calibración de fábrica del LSM303 es lo suficientemente precisa para la mayoría de los propósitos. Sin embargo, si necesita lecturas más exactas para su proyecto, simplemente use el código que Adafruit ha puesto en su sitio (http: //learn.adafruit.com/lsm303-accelerometer-s …)

El código lee los mínimos y máximos en los tres ejes. Cuando se cargue el código, gire lentamente el LSM303 varias veces en los ejes de balanceo, inclinación y dirección. Después de repetir esto varias veces, los valores de máximo y mínimo para cada eje se pueden usar para ajustar la salida del sensor.

Paso 3: Suavizado y obtención de datos

Dado que el sensor es extremadamente preciso, capta incluso el menor cambio en la fuerza gravitacional. Esto causa una gran cantidad de pequeñas perturbaciones en los valores de salida que nos gustaría evitar. Esto se puede lograr suavizando las lecturas antes de que se muestren como resultados.

Este código se encarga de brindarle buenos resultados y entregarlo a su computadora. (http://github.com/martinhj/LSM303DLHCreading)

Paso 4: Posibilidades del LSM303

Basado en la introducción del LSM303, ahora puede usarse más para hacer pequeños proyectos con su arduino y su sensor.

Paso 5: Bloqueo de gestos

Este boceto hace uso de las lecturas del magnetómetro y acelerómetro LSM303DLHC. También utiliza las bibliotecas para este sensor creado por adafruit (http: //www.adafruit.com/products/1120? & Main_page = p …).

Reconoce los gestos de manera simplificada al verificar si se infringen ciertos umbrales cuando se mueve el sensor. Los códigos para el arduino se pueden descargar desde este enlace Github (http://github.com/martinhj/gestureLock).

Paso 6: RGB LED

Este LED RGB utiliza las cualidades del magnetómetro del LSM303 para controlar una luz de diferente color para guiarlo en la dirección deseada: norte, este, sur u oeste.

Además del cableado básico del LSM303 al arduino, necesitará más cables, una placa de pruebas, una resistencia y un LED RGB. La ilustración de la izquierda muestra cómo cablear todo. Rojo RGB al pin digital 9, verde RGB al pin digital 10, azul RGB al pin digital 11 y tierra a GND.

Los códigos para el arduino se pueden descargar desde este enlace de Github (http://github.com/martinhj/rgbMagnetometer).

Paso 7: Procesando Brújula

Esta es una ilustración simple de los resultados del magnetómetro representado en Procesamiento.

Al girar el sensor, la flecha girará en la pantalla.

github.com/martinhj/compass

(utilizando el boceto LSM303DLHCreading presentado en un paso anterior).

Paso 8: Procesando caja 3D

Esta es una ilustración simple de los resultados del acelerómetro representado en Procesamiento. Toma las lecturas de aceleración del LSM303DLHC y gira un cuadro en el espacio 3D. Dado que la aceleración de la gravedad siempre influye en el sensor, habrá lecturas que apuntan hacia la superficie de la tierra. Estas lecturas cambiarán cuando gire el sensor en diferentes direcciones.

github.com/martinhj/accelBox

(utilizando el boceto LSM303DLHCreading presentado en un paso anterior).

Paso 9: Lectura adicional

Si aún no ha adquirido suficiente magnetómetro y acelerómetro, este instructivo (http: //www.instructables.com/id/Night-sky-explorer …) realmente muestra el potencial del LSM303 usándolo para trae las estrellas del cielo nocturno a tu propia casa.

Además, este tutorial (http: //learn.adafruit.com/lsm303-accelerometer-sl …) de Adafruit, que también fue de gran ayuda e inspiración en este proyecto, sobre cómo hacer que su propio norte vaya a Zaxen desde el Dr Cuentos infantiles de Seuss.

Otra gran fuente de información sobre el LSM303 se puede encontrar en Pololu (http: //www.pololu.com/file/0J434/LSM303DLH-compass …).

Finalmente, se puede encontrar información más detallada sobre el LSM303 en su hoja de datos (http://www.adafruit.com/datasheets/LSM303DLHC.PDF).