Interface do magnetômetro com Beaglebone preto (Parte 8/15)

Interfaz de magnetómetro con Beaglebone negro (Parte 8/15)

Este tutorial explica cómo trabajar con magnetómetro y Beaglebone negro. El magnetómetro detecta el campo magnético bajo y funciona como una brújula digital. Se utiliza en aplicaciones de seguimiento o navegación. En este tutorial, se utilizó el magnetómetro HMC5883L y se conectó a Beaglebone black mediante el protocolo I2C. El programa está escrito en script Python con la biblioteca adafruit I2C.

Herramientas necesarias :

  • Hueso de beagle negro
  • Magnetómetro (módulo HMC5883L)
  • tablero de prueba
  • Conectores hembra a hembra

Configuración del entorno de software

Instale la última versión de Python en BBB como se explica en el tutorial Cómo crear el primer programa de Python con Beaglebone Black. Instale la biblioteca adafruit python-GPIO.

Laboral

HMC5883L es un dispositivo de detección de baja magnetismo y una brújula digital de 3 ejes. Es compatible con la interfaz I2C. Genera valor magnético sensible durante mediciones simples. El valor del ángulo y el grado se muestran en el mensaje SSH cada segundo. El magnetómetro detecta el campo magnético y genera el valor digital correspondiente. El magnetómetro HMC5883L detecta el valor analógico, pero tiene un ADC en chip que proporciona el valor digital. Puede obtener más información en la hoja de datos del HMC5883L.

Imagem do Magenetômetro HMC5883L

Fig. 1: Imagen del magnetómetro HMC5883L

I2C es un protocolo de comunicación serie de dos hilos que transfiere datos en serie entre dos dispositivos. Sólo se necesitan dos pines para transferir datos :

1) SCL – pulso de reloj en serie

2) SDA – Dirección de datos seriales

Ventaja de la operación de lectura y escritura I2C realizada con un solo pin, a diferencia de SPI. Puede obtener más información sobre esto en Interfaz I2C o TWI (Interfaz de dos cables).

Descripción

Primero preparemos la conexión del circuito. Tome una placa de pruebas y suministre VCC y tierra desde BBB a la línea de la placa de pruebas. Conecte la alimentación de 3,3 V desde el pin número 3, tercio del cabezal P9 y tierra desde el pin número 2 y el cabezal P8.

No tienes que preocuparte por agregar circuitos adicionales al sensor porque ya están agregados al chip.

Sólo necesitas establecer algunas conexiones con el Beaglebone Black.

Abra la terminal de comando y acceda a Beaglebone black a través de SSH como se explica en Introducción a Beaglebone black. Cree un nuevo archivo usando el comando tap con extensión .py (es decir, magnetometer.py). Abra el archivo con cualquier editor de texto (es decir, nano, vim, etc.) y escriba el código en lenguaje Python.

Configuración y prototipo de funcionamiento:

Debe importar la biblioteca I2C al programa para usar el dispositivo I2C. Puede crear su propia biblioteca, pero la biblioteca Adafruit se puede utilizar para ahorrar tiempo, ya que proporciona todos los tipos de biblioteca BBB Python.

desde Adafruit_I2C importar Adafruit_I2C

Importa la biblioteca I2C a su script.

A continuación, configure la dirección del magnetómetro para la comunicación. La dirección del dispositivo es de 7 bits y está dirigida al maestro mediante la siguiente función *(no entendí la línea):

i2c = Adafruta_I2C (0x1e)

Nota: 0x1e es la dirección del dispositivo HMC5883L.

Configure el registro del magnetómetro para su funcionamiento. Aquí hay una lista de registros de 8 bits:

El magnetómetro tiene cuatro pines:

  • SCL
  • ASD
  • Tierra
  • CCV

Conecte el pin SDA y SCL del sensor del magnetómetro al pin SDA ( pin 20 del encabezado P9) y al pin SCL (pin 19 del encabezado P9) del BBB respectivamente. Proporcione VCC y tierra al magnetómetro.

Tabela listando registros integrados do magenetômetro HMC5883L

Fig. 2: Tabla que enumera los registros integrados del magnetómetro HMC5883L

Puede obtener más detalles sobre la configuración y el registro en la hoja de datos del magnetómetro.

Descarga la ficha técnica en el siguiente enlace:

Escriba el valor de configuración en el registro A siguiendo la función y pase el parámetro apropiado:

i2c.write8 (0x01, 0x71)

El primer argumento aborda la ubicación del registro y el segundo argumento es el valor de configuración que se escribe en el registro.

La configuración del registro A selecciona muestra por medición, velocidad de salida de datos y modo de funcionamiento de medición.

De manera similar, escriba el valor de configuración en el registro B y el registro de modo siguiendo la función:

i2c.write8 (0x02, 0xA0)

La configuración del registro B selecciona la configuración de ganancia.

i2c.write8 (0x03, 0x00)

El registro de modo es un registro de 8 bits desde el cual se pueden leer o escribir datos. Selecciona el modo de funcionamiento.

Código fuente del proyecto

###


 desde Adafruit_I2C importar Adafruit_I2C
importar matematicas
del tiempo importa dormir i2c = Adafruta_I2C(0x1e) i2c.write8(0x00, 0x71) i2c.write8(0x01, 0xA0) i2c.write8(0x02, 0x00) mientras que Verdadero: primero = i2c.readS8(0x03) segundo = i2c.readS8(0x04) x = (primero << 8) segundo imprimir("eje x = " + cadena(x)) primero = i2c.readS8(0x05) segundo = i2c.readS8(0x06) z = (primero << 8) segundo imprimir("eje z = " + cadena(z)) primero = i2c.readS8(0x07) segundo = i2c.readS8(0x08) y = (primero << 8) segundo imprimir("eje y = " + str(y)) grado = 90-math.atan(x/y)*180/math.pi print("ángulo = " + str(grado)) imprimir('n')

###

Diagramas de circuito

Diagrama de circuito-Beaglebone-Black-Interfacing-HMC5883L-Magenetometer

Vídeo del proyecto

Conteúdo Relacionado

En cada vehículo hay una red de sensores integrada...
El controlador del motor es uno de los componentes...
ESP32-CAM es un módulo de cámara compacto que combina...
La evolución de los estándares USB ha sido fundamental...
SCHURTER anuncia una mejora de su popular serie SWZ...
Visual Communications Company (VCC) ha anunciado sus nuevos tubos...
A Sealevel Systems anuncia o lançamento da Interface Serial...
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
Determinar uma localização precisa é necessário em várias indústrias...
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
O mercado embarcado tem uma necessidade de soluções de...
Probablemente se haya encontrado con el término " resistencia...
Probablemente tenga un aislante de soporte si ha notado...
Probablemente haya visto un aislante colocado en postes de...
Probablemente hayas visto aisladores de grillete entronizados en postes...
Probablemente hayas experimentado situaciones en las que controlar un...
Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.