Tabla de contenido:

Medición de campo magnético con HMC5883 y Raspberry Pi: 4 pasos
Medición de campo magnético con HMC5883 y Raspberry Pi: 4 pasos

Video: Medición de campo magnético con HMC5883 y Raspberry Pi: 4 pasos

Video: Medición de campo magnético con HMC5883 y Raspberry Pi: 4 pasos
Video: Visualización de Angulos de Navegación en Raspberry Pi 2024, Mes de julio
Anonim
Image
Image

El HMC5883 es una brújula digital diseñada para detección magnética de campo bajo. Este dispositivo tiene un amplio rango de campo magnético de +/- 8 Oe y una tasa de salida de 160 Hz. El sensor HMC5883 incluye controladores de correa de desmagnetización automática, cancelación de desplazamiento y un ADC de 12 bits que permite una precisión de rumbo de la brújula de 1 ° a 2 °. Todos los mini módulos I²C están diseñados para funcionar a 5 V CC.

En este tutorial, vamos a explicar el funcionamiento detallado de HMC5883 con Raspberry pi y su programación utilizando el lenguaje de programación java.

Paso 1: Hardware necesario:

Hardware requerido
Hardware requerido
Hardware requerido
Hardware requerido
Hardware requerido
Hardware requerido

El hardware necesario para realizar la tarea es el siguiente:

1. HMC5883

2. Raspberry Pi

3. Cable I2C

4. Escudo I2C para Raspberry Pi

5. Cable Ethernet

Paso 2: Conexión de hardware:

Conexión de hardware
Conexión de hardware
Conexión de hardware
Conexión de hardware

La sección de conexión de hardware básicamente explica las conexiones de cableado necesarias entre el sensor y la Raspberry Pi. Asegurar las conexiones correctas es la necesidad básica al trabajar en cualquier sistema para obtener la salida deseada. Entonces, las conexiones requeridas son las siguientes:

El HMC5883 funcionará sobre I2C. Aquí está el diagrama de cableado de ejemplo, que demuestra cómo cablear cada interfaz del sensor.

Fuera de la caja, la placa está configurada para una interfaz I2C, por lo que recomendamos usar esta conexión si, por lo demás, es agnóstico. ¡Todo lo que necesitas son cuatro cables!

Solo se requieren cuatro conexiones Vcc, Gnd, SCL y pines SDA y estos se conectan con la ayuda del cable I2C.

Estas conexiones se muestran en las imágenes de arriba.

Paso 3: Código Java para medir la intensidad del campo magnético:

Código Java para medir la intensidad del campo magnético
Código Java para medir la intensidad del campo magnético
Código Java para medir la intensidad del campo magnético
Código Java para medir la intensidad del campo magnético

La ventaja de usar raspberry pi es que le brinda la flexibilidad del lenguaje de programación en el que desea programar la placa para conectar el sensor con ella. Aprovechando esta ventaja de esta placa, estamos demostrando aquí su programación en Java. El código java para HMC5883 se puede descargar de nuestra comunidad github que es Dcube Store.

Además de para la facilidad de los usuarios, aquí también explicamos el código:

Como primer paso de la codificación, debe descargar la biblioteca pi4j en el caso de Java, porque esta biblioteca admite las funciones utilizadas en el código. Entonces, para descargar la biblioteca puede visitar el siguiente enlace:

pi4j.com/install.html

También puede copiar el código Java de trabajo para este sensor desde aquí:

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

mport com.pi4j.io.i2c. I2CFactory;

importar java.io. IOException; clase pública HMC5883

{

public static void main (String args ) arroja una excepción

{

// Crear bus I2C

Bus I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);

// Obtener el dispositivo I2C, la dirección HMC5883 I2C es 0x1E (30)

Dispositivo I2CDevice = Bus.getDevice (0x1E);

// Seleccione el registro de configuración A

// Configuración de medición normal, velocidad de datos o / p = 0,75 Hz

device.write (0x00, (byte) 0x60);

// Seleccionar registro de modo

// Modo de medición continua

device.write (0x02, (byte) 0x00);

Hilo.sueño (500);

// Leer 6 bytes de datos de 0x03 (3)

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

byte datos = nuevo byte [6];

device.read (0x03, datos, 0, 6);

// Convertir los datos

int xMag = ((datos [0] y 0xFF) * 256 + (datos [1] y 0xFF));

si (xMag> 32767)

{

xMag - = 65536;

}

int zMag = ((datos [2] y 0xFF) * 256 + (datos [3] y 0xFF));

si (zMag> 32767)

{

zMag - = 65536;

}

int yMag = ((datos [4] y 0xFF) * 256 + (datos [5] y 0xFF));

si (yMag> 32767)

{

yMag - = 65536;

}

// Salida de datos a la pantalla

System.out.printf ("Campo magnético en el eje X:% d% n", xMag);

System.out.printf ("Campo magnético en el eje Y:% d% n", yMag);

System.out.printf ("Campo magnético en el eje Z:% d% n", zMag);

}

}

Las funciones de escritura () y lectura () se utilizan para escribir los comandos y leer la salida del sensor, respectivamente. La siguiente parte ilustra la lectura de los valores del campo magnético.

// Leer 6 bytes de datos de 0x03 (3)

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

byte datos = nuevo byte [6];

device.read (0x03, datos, 0, 6);

La salida se muestra en la imagen de arriba.

Paso 4: Aplicaciones:

Aplicaciones
Aplicaciones

HMC5883 es un módulo multichip de montaje en superficie diseñado para detección magnética de campo bajo con una interfaz digital para aplicaciones como la magnetometría y la brújula de bajo costo. Su precisión y precisión de uno a dos grados permite la navegación peatonal y las aplicaciones LBS.

Recomendado: