Tabla de contenido:

Medición de la aceleración con H3LIS331DL y Raspberry Pi: 4 pasos
Medición de la aceleración con H3LIS331DL y Raspberry Pi: 4 pasos

Video: Medición de la aceleración con H3LIS331DL y Raspberry Pi: 4 pasos

Video: Medición de la aceleración con H3LIS331DL y Raspberry Pi: 4 pasos
Video: MPU6050 Acelerómetro y Giróscopo Teoría y Práctica con Raspberry Pi Pico y MicroPython 2024, Mes de julio
Anonim
Image
Image

H3LIS331DL, es un acelerómetro lineal de 3 ejes de bajo consumo y alto rendimiento perteneciente a la familia “nano”, con interfaz serie digital I²C. H3LIS331DL tiene escalas completas seleccionables por el usuario de ± 100g / ± 200g / ± 400g y es capaz de medir aceleraciones con velocidades de datos de salida de 0,5 Hz a 1 kHz. Se garantiza que el H3LIS331DL funcionará en un rango de temperatura extendido de -40 ° C a +85 ° C.

En este tutorial vamos a demostrar la interfaz de H3LIS331DL con Raspberry Pi, utilizando Python como lenguaje de programación.

Paso 1: Hardware necesario:

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

Los materiales que necesitamos para lograr nuestro objetivo incluyen los siguientes componentes de hardware:

1. H3LIS331DL

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 H3LIS331DL 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 de Python para la medición de la aceleración:

Código de Python para la medición de la aceleración
Código de Python para la medición de la aceleración

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 Python. Python es uno de los lenguajes de programación más sencillos con la sintaxis más sencilla. El código Python para H3LIS331DL se puede descargar de nuestra comunidad de 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 SMBus en el caso de Python, porque esta biblioteca admite las funciones utilizadas en el código. Entonces, para descargar la biblioteca puede visitar el siguiente enlace:

pypi.python.org/pypi/smbus-cffi/0.5.1

También puede copiar el código de trabajo desde aquí:

importar smbus

tiempo de importación

# Obtener busbus I2C = smbus. SMBus (1)

# H3LIS331DL dirección, 0x18 (24)

# Seleccione el registro de control 1, 0x20 (32)

# 0x27 (39) Modo encendido, velocidad de salida de datos = 50 Hz # X, Y, eje Z habilitado

bus.write_byte_data (0x18, 0x20, 0x27)

# Dirección H3LIS331DL, 0x18 (24) # Seleccionar registro de control 4, 0x23 (35)

# 0x00 (00) Actualización continua, selección de escala completa = +/- 100g

bus.write_byte_data (0x18, 0x23, 0x00)

tiempo. de sueño (0.5)

# H3LIS331DL dirección, 0x18 (24)

# Leer datos de 0x28 (40), 2 bytes

# LSB del eje X, MSB del eje X

data0 = bus.read_byte_data (0x18, 0x28)

data1 = bus.read_byte_data (0x18, 0x29)

# Convierta el dataxAccl = data1 * 256 + data0

si xAccl> 32767:

xAccl - = 65536

# H3LIS331DL dirección, 0x18 (24)

# Leer datos de 0x2A (42), 2 bytes

# LSB del eje Y, MSB del eje Y

data0 = bus.read_byte_data (0x18, 0x2A)

data1 = bus.read_byte_data (0x18, 0x2B)

# Convierte los datos

yAccl = data1 * 256 + data0

si yAccl> 32767:

yAccl - = 65536

# H3LIS331DL dirección, 0x18 (24)

# Leer datos de 0x2C (44), 2 bytes

# LSB del eje Z, MSB del eje Z

data0 = bus.read_byte_data (0x18, 0x2C)

data1 = bus.read_byte_data (0x18, 0x2D)

# Convierte los datos

zAccl = datos1 * 256 + datos0

si zAccl> 32767:

zAccl - = 65536

# Salida de datos a la pantalla

imprimir "Aceleración en el eje X:% d"% xAccl

imprimir "Aceleración en el eje Y:% d"% yAccl

imprimir "Aceleración en el eje Z:% d"% zAccl

El código se ejecuta mediante el siguiente comando:

$> python H3LIS331DL.py gt; python H3LIS331DL.py

La salida del sensor se muestra en la imagen de arriba para referencia del usuario.

Paso 4: Aplicaciones:

Aplicaciones
Aplicaciones

Acelerómetros como H3LIS331DL encuentran su aplicación principalmente en los juegos y en el cambio de perfil de pantalla. Este módulo de sensor también se emplea en el sistema avanzado de administración de energía para aplicaciones móviles. H3LIS331DL es un sensor de aceleración digital triaxial que se incorpora con un controlador de interrupción activada por movimiento inteligente en el chip.

Recomendado: