Tabla de contenido:

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

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

Video: Medición de la aceleración con ADXL345 y Raspberry Pi: 4 pasos
Video: 🆕 CÓMO INSTALAR Klipper 3D con ACELERÓMETRO ADXL345 en Artillery Genius 2024, Noviembre
Anonim
Image
Image

El ADXL345 es un acelerómetro de 3 ejes pequeño, delgado y de potencia ultrabaja con medición de alta resolución (13 bits) de hasta ± 16 g. Los datos de salida digital están formateados como un complemento de dos de 16 bits y se puede acceder a ellos a través de la interfaz digital I2 C. Mide la aceleración estática de la gravedad en aplicaciones de detección de inclinación, así como la aceleración dinámica resultante de movimientos o golpes. Su alta resolución (3,9 mg / LSB) permite medir cambios de inclinación inferiores a 1,0 °.

En este tutorial se demuestra la interfaz del módulo sensor ADXL345 con raspberry pi y también se ha ilustrado su programación usando lenguaje Python. Para leer los valores de aceleración en todos los 3 ejes, hemos utilizado raspberry pi con un adaptador I2C. Este adaptador I2C hace que la conexión al módulo sensor sea fácil y más confiable.

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. ADXL345

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 ADXL345 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 para medir la aceleración:

Código para medir la aceleración
Código para medir 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. El código Python para ADXL345 se puede descargar de nuestra comunidad de github que es Control Everything Community.

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 Python de trabajo para este sensor desde aquí:

importar smbus

tiempo de importación

# Obtener busbus I2C = smbus. SMBus (1)

# Dirección ADXL345, 0x53 (83)

# Seleccionar registro de tasa de ancho de banda, 0x2C (44)

# 0x0A (10) Modo normal, velocidad de datos de salida = 100 Hz

bus.write_byte_data (0x53, 0x2C, 0x0A)

# Dirección ADXL345, 0x53 (83)

# Seleccione el registro de control de potencia, 0x2D (45)

# 0x08 (08) Desactivación de suspensión automática

bus.write_byte_data (0x53, 0x2D, 0x08)

# Dirección ADXL345, 0x53 (83)

# Seleccionar registro de formato de datos, 0x31 (49)

# 0x08 (08) Autoprueba deshabilitada, interfaz de 4 cables

# Resolución completa, rango = +/- 2g

bus.write_byte_data (0x53, 0x31, 0x08)

tiempo. de sueño (0.5)

# Dirección ADXL345, 0x53 (83)

# Leer datos de 0x32 (50), 2 bytes

# LSB del eje X, MSB del eje X

data0 = bus.read_byte_data (0x53, 0x32)

data1 = bus.read_byte_data (0x53, 0x33)

# Convierte los datos a 10 bits

xAccl = ((datos1 y 0x03) * 256) + datos0

si xAccl> 511:

xAccl - = 1024

# Dirección ADXL345, 0x53 (83)

# Leer datos de 0x34 (52), 2 bytes

# LSB del eje Y, MSB del eje Y

data0 = bus.read_byte_data (0x53, 0x34)

data1 = bus.read_byte_data (0x53, 0x35)

# Convierte los datos a 10 bits

yAccl = ((datos1 y 0x03) * 256) + datos0

si yAccl> 511:

yAccl - = 1024

# Dirección ADXL345, 0x53 (83)

# Leer datos de 0x36 (54), 2 bytes

# LSB del eje Z, MSB del eje Z

data0 = bus.read_byte_data (0x53, 0x36)

data1 = bus.read_byte_data (0x53, 0x37)

# Convierte los datos a 10 bits

zAccl = ((datos1 y 0x03) * 256) + datos0

si zAccl> 511:

zAccl - = 1024

# 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

La parte del código que se menciona a continuación incluye las bibliotecas necesarias para la correcta ejecución de los códigos de Python.

importar smbusimport time

El código se puede ejecutar escribiendo el comando mencionado a continuación en el símbolo del sistema.

$> python ADXL345.py

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

Paso 4: Aplicaciones:

Aplicaciones
Aplicaciones

ADXL345 es un acelerómetro de 3 ejes pequeño, delgado y ultrabajo de potencia que puede emplearse en teléfonos móviles, instrumentación médica, etc. Su aplicación también incluye juegos y dispositivos señaladores, instrumentación industrial, dispositivos de navegación personal y protección de unidades de disco duro (HDD).

Recomendado: