Arduino + IMU MPU-6050 con Python y Gráficos (3D)

La combinación de python con Arduino suena complicado y mas aun si sumamos sensores con diferentes variables, pero esto no es tan complicado como parece,  el objetivo de este desarrollo fue poder controlar dispositivos con ayuda del sensor IMU - 6050 principalmente la idea es llevar un registro visual de los movimientos del sensor con sus diferentes variables.

¿Como Instalar Arduino IDE?




Diagrama de conexión y sensor MPU6050 

Blink de Arduino UNO

Lo primero es descargar el código al Arduino de este sensor, este código envía por medio de la terminal serial los diferentes datos como aceleración en los ejes XYZ y de giroscopio también en XYZ, adicionalmente nos da una variable con la información de la temperatura.

Proyectos con Arduino y Python


Descargamos al Arduino el código para que envíe los datos del sensor vía serial.

¿Que es la Comunicación Serial?

https://github.com/iarobotixyz/Arduino/blob/master/Sensores/IMU%20MPU-6050/Inclinometro.ino

Variables del IMU6050 vía Serial


Arduino ==> USB Serial ==> Python


El código que vamos a correr en python para la lectura serial es el siguiente:

https://raw.githubusercontent.com/iarobotixyz/Python/main/Lectura%20Serial%20Python/Lectura_Serial_Python.py

Teniendo como resultado:



Lo primero que notamos es que el envío de esta información no esta organizada, esto es funcional pero para que se nos facilite la lectura de datos desde python vamos a modificar la estructura de la cadena desde Arduino:


  • La primera modificación es para la prueba en python y para lograr reducir el tamaño de la cadena

https://github.com/iarobotixyz/Arduino/blob/master/Sensores/IMU%20MPU-6050/ArduinoSensorIMUSerial1.ino

  • La segunda modificación es para ajustar la cadena y poder manipular las variables para la gráfica con python.

https://github.com/iarobotixyz/Arduino/blob/master/Sensores/IMU%20MPU-6050/GraficaSensorIMU2.ino


Ya tenemos hasta este momento la comunicación de Arduino a Python, por lo que ahora vamos a  acomodar y a mostrar las variables desde Python con el siguiente código:



Código: 


Volvemos a conectar el Arduino y al ejecutar el programa tenemos como resultado las variables del Acelerómetro y del Giroscopio ya organizadas en XYZ:




Ya que tenemos la conexión de Arduino a python y que tenemos las variables organizadas, 

lo siguiente sera hacer la gráfica del sensor utilizando diferentes librerías para su visualizacion.


GRÁFICA 1

https://github.com/iarobotixyz/Python/blob/main/Sensor%20Python%20Grafica/Graficando_1_Lectura_Serial_Python_Cadena_Arduino.py



GRÁFICA 2

https://github.com/iarobotixyz/Python/blob/main/Sensor%20Python%20Grafica/Graficando_2_Lectura_Serial_Python_Cadena_Arduino.py



GRÁFICA 3

https://github.com/iarobotixyz/Python/blob/main/Sensor%20Python%20Grafica/Graficando_3_Lectura_Serial_Python_Cadena_Arduino.py



Links Adicionales:

https://iarobotixyz.blogspot.com/p/imu-mpu-6050.html

Comentarios