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.


Diagrama de conexión y sensor MPU6050 


Lo primero es descargar el código al Arduino de este sensor, este código envía por medio de la terminal 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.


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

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

Variables del IMU6050 via 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.


GRAFICA 1

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



GRAFICA 2

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



GRAFICA 3

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



Fuente:

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

Comentarios