Paso 4: Calibración del Software
PRECAUCIÓN: Mi PCB utiliza un Atmega328 programado con MINI Pro 8 MHZ 3, 3V cargador de arranque. Si usted construye este PCB, se debe programar con el MINI Pro 8 MHZ 3.3V bootload y debe seleccionar cuando se utiliza el entorno de Arduino. El PCB está diseñado para utilizar un adaptador USB-BUB o utilizo un equivalente PL2303.
Para el LSM303dlhc, he utilizado esta librería de Pololu:
https://github.com/Pololu/LSM303-Arduino
Esto incluye un procedimiento para calibrar el magnetómetro. He modificado para trabajar con mi Arduino y LCD5110. Se adjunta: Calibrate.zip
Calibre: Este programa es similar de serie, pero en lugar de las lecturas más recientes de la impresión, se imprime un funcionamiento mínimo y máximo de las lecturas de cada eje de magnetómetro . Estos valores pueden utilizarse para calibrar las funciones de heading() y el ejemplo de partida después de mover el LSM303 a través de cada orientación posible.
Lo modifico para que los minutos y Maxs se mostrará en el LCD5110. Ejecución de croquis, lentamente, gire y gire el módulo en todas las orientaciones. Grabar los minutos y Maxs en la pantalla, luego enchúfelos en bosquejo de SpotterLevel, reemplazando los valores en las siguientes líneas:
Compass.m_min = (LSM303::vector) {-433, -600,-546};
Compass.m_max = (LSM303::vector) {570, 488, 579};
Esto debería mejorar las lecturas de la brújula.
Para esta aplicación, la porción del acelerómetro se utiliza para determinar cuando la Asamblea esté nivelado.
Teoría: Acelerómetro mide la aceleración. La gravedad es una forma de aceleración. El módulo de LSM303dlhc mide la aceleración en tres direcciones x, y y z (ver figura). Z es arriba y abajo. En esta aplicación, ya que el LSM303 suele ser estacionaria, la aceleración medida es gravedad. Así que si la LSM303 es nivel, entonces el x y y aceleraciones serían 0 y z sería 1g (gravedad estándar). El LSM303 es listo para +/-2g 1g es aproximadamente 16384 conteos. (El Geek me dice debe ser 32768)!!!!!!
Ahora si la LSM303 estaba boca abajo, el valor de z es g-1, sobre-16384.
Aunque probablemente no es necesario, también escribí un programa de calibración de acelerómetro, AccelCal.zip
Aviso: Las imágenes de calibración fueron tomadas con mi primera versión del alcance del observador. Para la última versión, he reunido la Asamblea de alcance completo telescopio pero no conecte a un trípode. Utilice el mismo método que en las fotos.
Para calibrar, he montado mi alcance del observador y había cargado cada uno de los programas.
Para cada programa toma todo el conjunto exterior, encender el Arduino. Poco a poco, subir alrededor de orientaciones, nivel, boca abajo, alcance alcance hacia abajo, alcance a derecha, alcance en lado izquierdo y lentamente girar alrededor.
Registrar los valores min y max para bocetos de calibrar y AccelCal. Se utilizará en el siguiente paso.