Tabla de contenido:

Seguimiento de movimiento con MPU-6000 y Raspberry Pi: 4 pasos
Seguimiento de movimiento con MPU-6000 y Raspberry Pi: 4 pasos

Video: Seguimiento de movimiento con MPU-6000 y Raspberry Pi: 4 pasos

Video: Seguimiento de movimiento con MPU-6000 y Raspberry Pi: 4 pasos
Video: Raspberry Pi MPU-6000 6-Axis Motion Tracking Sensor Python Tutorial 2024, Mes de julio
Anonim
Image
Image

MPU-6000 es un sensor de seguimiento de movimiento de 6 ejes que tiene un acelerómetro de 3 ejes y un giroscopio de 3 ejes integrados. Este sensor es capaz de realizar un seguimiento eficiente de la posición exacta y la ubicación de un objeto en el plano tridimensional. Puede emplearse en los sistemas que requieren un análisis de posición con la máxima precisión.

En este tutorial se ha ilustrado la interfaz del módulo sensor MPU-6000 con raspberry pi. Para leer los valores de aceleración y ángulo de rotación, 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. MPU-6000

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 MPU-6000 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 seguimiento de movimiento:

Código para seguimiento de movimiento
Código para seguimiento de movimiento

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 MPU-6000 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)

# Dirección MPU-6000, 0x68 (104)

# Seleccione el registro de configuración del giroscopio, 0x1B (27)

# 0x18 (24) Rango de escala completa = 2000 dps

bus.write_byte_data (0x68, 0x1B, 0x18)

# Dirección MPU-6000, 0x68 (104)

# Seleccione el registro de configuración del acelerómetro, 0x1C (28)

# 0x18 (24) Rango de escala completa = +/- 16g

bus.write_byte_data (0x68, 0x1C, 0x18)

# Dirección MPU-6000, 0x68 (104)

# Seleccione el registro de administración de energía 1, 0x6B (107)

# 0x01 (01) PLL con referencia xGyro

bus.write_byte_data (0x68, 0x6B, 0x01)

tiempo. de sueño (0.8)

# Dirección MPU-6000, 0x68 (104)

# Leer datos de 0x3B (59), 6 bytes

# Acelerómetro Eje X MSB, Eje X LSB, Eje Y MSB, Eje Y LSB, Eje Z MSB, Eje Z LSB

datos = bus.read_i2c_block_data (0x68, 0x3B, 6)

# Convierte los datos

xAccl = datos [0] * 256 + datos [1]

si xAccl> 32767:

xAccl - = 65536

yAccl = datos [2] * 256 + datos [3]

si yAccl> 32767:

yAccl - = 65536

zAccl = datos [4] * 256 + datos [5]

si zAccl> 32767:

zAccl - = 65536

# Dirección MPU-6000, 0x68 (104)

# Leer datos de 0x43 (67), 6 bytes

# Gyrometer Eje X MSB, Eje X LSB, Eje Y MSB, Eje Y LSB, Eje Z MSB, Eje Z LSB

datos = bus.read_i2c_block_data (0x68, 0x43, 6)

# Convierte los datos

xGyro = datos [0] * 256 + datos [1]

si xGyro> 32767:

xGyro - = 65536

yGyro = datos [2] * 256 + datos [3]

si yGyro> 32767:

yGyro - = 65536

zGyro = datos [4] * 256 + datos [5]

si zGyro> 32767:

zGyro - = 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

imprimir "Eje X de rotación:% d"% xGyro

imprimir "Eje Y de rotación:% d"% yGyro

imprimir "Eje Z de rotación:% d"% zGyro

El código se ejecuta mediante el siguiente comando:

$> python MPU-6000.py gt; python MPU-6000.py

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

Paso 4: Aplicaciones:

Aplicaciones
Aplicaciones

MPU-6000 es un sensor de seguimiento de movimiento, que encuentra su aplicación en la interfaz de movimiento de teléfonos inteligentes y tabletas. En los teléfonos inteligentes, estos sensores se pueden emplear en aplicaciones tales como comandos de gestos para aplicaciones y control de teléfonos, juegos mejorados, realidad aumentada, captura y visualización de fotografías panorámicas y navegación para peatones y vehículos. La tecnología MotionTracking puede convertir teléfonos y tabletas en potentes dispositivos inteligentes 3D que se pueden utilizar en aplicaciones que van desde el control de la salud y el estado físico hasta servicios basados en la ubicación.

Recomendado: