Algunas opiniones sobre los sensores geomagnéticos
Utilizando el geomagnetismo como referencia, midiendo el ángulo entre el sensor y las líneas geomagnéticas se pueden obtener los datos de orientación, consiguiendo así un control preciso de la dirección. Lo que se comenta aquí es el sensor geomagnético (también llamado brújula digital o brújula electrónica) y cómo utilizarlo.
Los sensores geomagnéticos de uso común incluyen principalmente la serie MAG de Freescale y la serie HMC de Honeywell. Aquí discutiremos el sensor geomagnético Honeywell HMC5883 común en el mercado.
HMC5883 es un chip sensor magnético débil de montaje en superficie con alta integración e interfaz digital IIC. Contiene el sensor magnetorresistivo de alta resolución más avanzado de la serie HMC118X, así como los circuitos integrados patentados de Honeywell (incluidos amplificadores, controladores de desmagnetización automática y calibración de polarización, etc.). Tiene un convertidor analógico a digital de 12 bits que controla el sensor. brújula La precisión está entre 1 ~ 2. Los sensores magnéticos de Honeywell son los sensores más sensibles y confiables en la industria de sensores de campo magnético bajo. Su rango de medición puede ser desde miligauss hasta 8 gauss.
El voltaje de funcionamiento del HMC5883 está entre 2,16 V ~ 3,6 V, con un valor típico de 3,3 V. Aunque el voltaje de funcionamiento es de bajo voltaje, el voltaje del puerto de datos se puede especificar a través del puerto VDDIO. entonces hay dos interfaces con el microcontrolador. Hay dos formas, una es el modo de 5 V y la otra es el modo de 3,3 V.
Para conocer los parámetros eléctricos y las características del HMC5883, consulte su hoja de datos. Aquí solo analizamos cómo utilizar el HMC5883 para obtener datos geomagnéticos. Debido a que el control del módulo generalmente se logra escribiendo los registros correspondientes, primero echemos un vistazo a los registros de HMC5883. HMC5883 tiene un total de 12 conjuntos de registros, 6 de los cuales se utilizan para almacenar datos de los ejes X, Y y Z, y los 6 conjuntos restantes son registros de control.
Como todos los dispositivos de bus IIC, el HMC5883 también tiene una dirección de dispositivo fija. Según su hoja de datos, la dirección esclava predeterminada del HMC5883 es 0x3C (dirección de escritura) o 0x3D (dirección de lectura). Al mismo tiempo, para minimizar la comunicación con el microcontrolador, el HMC5883 puede actualizar automáticamente su puntero de dirección sin intervención del host. Hay dos principios para la actualización del puntero. Primero, si la dirección a la que se accede es 12 (es decir, registro de identificación C) o superior, el puntero se actualizará a la dirección 00 (es decir, volverá automáticamente al principio). En segundo lugar, si la dirección a la que se accede llega a 8 (es decir, el registro LSB de Y), el puntero retrocederá a la dirección 03 (es decir, el registro MSB de X). Los beneficios de esto son obvios, porque las direcciones 03 ~ 08 almacenan datos de medición para ser leídos repetidamente, por lo que el puntero de dirección circula automáticamente aquí durante la lectura, lo que puede reducir una gran cantidad de código para restablecer la dirección y mejorar la eficiencia del acceso. Al igual que otros dispositivos IIC, para mover el puntero de dirección a una dirección de registro específica, primero se emite una instrucción de escritura a la dirección de registro y luego a los bits de dirección. Por ejemplo, deje que el puntero de dirección apunte al registro 10 y la instrucción emitida sea 0x3C (dirección de escritura) 0x0A (es decir, dirección 10). El registro de configuración A (dirección 00) se utiliza principalmente para establecer el promedio de muestreo de salida, la velocidad de salida, los bits de configuración de medición y otros parámetros relacionados. Para aplicaciones normales, sus valores predeterminados (promedio de muestreo de 8, velocidad de salida de 15 Hz, configuración de medición normal) se pueden adoptar sin cambios. Si realmente se necesitan cambios, consulte la hoja de datos de la administración para obtener más detalles. El registro de configuración B (dirección 01) se usa principalmente para configurar la ganancia, y su valor predeterminado también se puede usar para aplicaciones normales sin cambiar. Si realmente se necesitan cambios, consulte la hoja de datos de la administración para obtener más detalles. El registro de modo (dirección 0 2) se utiliza para seleccionar el modo de funcionamiento del HMC5883. Tiene tres modos de trabajo, a saber, modo de medición continua (los dos últimos dígitos son 00), modo de medición única (los dos últimos dígitos son 01) y modo inactivo (los dos últimos dígitos son 1 0 u 11). El valor predeterminado es el modo de medición única, que generalmente debe cambiarse al modo de medición continua. Sólo necesitas cambiar los dos últimos dígitos de este registro a 00. El registro de estado (dirección 0-9) se utiliza principalmente para proporcionar el estado actual del dispositivo. Sólo los dos últimos bits son válidos, el último bit es el bit listo. El dispositivo no puede funcionar hasta que se establezca el bit listo. El penúltimo bit es el bit de bloqueo del registro de salida de datos. Cuando se establece este bit, no se actualizan datos de medición hasta que se leen los datos de medición. En términos generales, las aplicaciones normales pueden leer el estado de este registro con una latencia adecuada y no es necesario leer el estado de este registro a menos que la frecuencia de lectura sea muy alta. El registro de identificación A (dirección 10) al registro de identificación C (dirección 12) no son necesarios aquí, por lo que no los discutiremos. Lea la hoja de datos usted mismo si es necesario. En ese momento, HMC5883 también tenía otras funciones prácticas, como la autoprueba. Está equipado con un módulo de función de autoprueba que utiliza una tira polarizada del sensor de excitación para generar una intensidad de campo magnético nominal para la autoprueba y demostrar su calidad. Además, existe una función de calibración del factor de escala, que puede compensar la interferencia causada por el campo magnético circundante para obtener mediciones geomagnéticas precisas. Tomemos un ejemplo para ver la aplicación específica de HMC5883.
Ejemplo: el microcontrolador lee los datos geomagnéticos del HMC5883, los convierte en datos de ángulo hacia el sur y los muestra en la pantalla LCD16 02.
El microcontrolador usa ATMega16 y la conexión con HMC5883 usa el modo 5V. Los terminales SDA y SCL de HMC5883 están conectados a los terminales TWI (PC1 y PC0) de ATMega16 respectivamente. El método de conexión de LCD1602 es el mismo que el anterior.