Configurar sensores de 9 ejes en Arduino

Si deseas aprender a configurar sensores de 9 ejes en Arduino, estás en el lugar correcto. Los sensores de 9 ejes combinan un magnetómetro, un acelerómetro y un giroscopio en un solo sensor.

El peso y el tamaño de estos sensores, los hacen ideales para construir sistemas de navegación para aviones, drones y robots.

A continuación, aprenderñas cómo funcionan los sensores de 9 ejes y también cómop conectarlos a una placa Arduino.

Configurar un sensor de 9 ejes MPU-9250 en Arduino

El MPU-9250 tiene integrado tres sensores diferentes: un magnetómetro, un acelerómetro y un giroscopio.

Cada sensor genera datos en los ejes X, Y y Z. De esta forma el MPU-9250 es un sensor de 9 ejes.

A continuación observa el diagrama de pines del sensor MPU-9250:

MPU-9250 Diagrama de clavijas del sensor de 9 ejes.jpg

Como pudiste apreciar en la figura anterior, el sensor MPU-9250 posee 10 pines:

  • VCC: entrada de energía. Si la PCB MPU-9250 está equipada con un regulador de voltaje, se puede conectar a 3,3 o 5 voltios. Si no hay un regulador de voltaje presente, el voltaje máximo es de 3,3 voltios.
  • GND: Se conecta a tierra en la placa Arduino.
  • SCL: Para comunicación I2C. También sirve como pin SCLK para comunicación SPI.
  • SDA: Para comunicación I2C. También sirve como pin SDI para comunicación SPI.
  • EDA: pin de datos serie maestro I2C. El MPU-9250 se puede configurar como dispositivo maestro I2C para recibir y transmitir datos de otro sensor. Este pin se conectaría al pin SDA del otro sensor.
  • ECL: pin de reloj de serie principal I2C. Se conectaría al pin SCL del otro sensor.
  • ADO: Se utiliza para cambiar la dirección I2C del sensor. Cuando está bajo, la dirección I2C es 0x68. Cuando es alto, la dirección es 0x69. También sirve como pin SDO para comunicación SPI.
  • INT: pin de interrupción de hardware. Puede activar una interrupción de hardware desde cualquiera de los 9 ejes de sensores.
  • NCS: El pin CS para la comunicación SPI.
  • FSYNC: pin de entrada digital de sincronización de cuadros. Se utiliza para pasar la interrupción de hardware desde un sensor externo al Arduino.

Encima de la PCB MPU-9250, debe haber flechas direccionales que indiquen la dirección de los ejes del acelerómetro y del giroscopio en relación con la PCB.

Conexión del sensor de 9 ejes MPU-9250 en Arduino

El MPU-9250 puede comunicarse con Arduino a través de comunicación SPI o I2C.

Para efectos del ejemplo de este artículo, se usa comunicación I2C.

La siguiente ilustración indica cómo conectar el sensor MPU-9250 a la placa Arduino Uno:

Diagrama de cableado MPU-9250.png

Programación del sensor de 9 ejes MPU-9250 en Arduino

El siguiente conjunto de código imprimirá la lectura de cada eje en un monitor serial.

Se hace uso de la librería llamada MPU9250 para programar el sensor.

En primer lugar instala la librería anterior, y luego sube el siguiente código a tu placa Arduino:

#include "MPU9250.h"

MPU9250 sensor(Wire, 0x68);

void setup() {
  Serial.begin(9600);
  sensor.begin();
}

void loop() {

  sensor.readSensor();

  Serial.print("Accelerometer X: ");
  Serial.println(sensor.getAccelX_mss(), 2);
  Serial.print("Accelerometer Y: ");
  Serial.println(sensor.getAccelY_mss(), 2);
  Serial.print("Accelerometer Z: ");
  Serial.println(sensor.getAccelZ_mss(), 2);

  Serial.print("Gyroscope X: ");
  Serial.println(sensor.getGyroX_rads(), 2);
  Serial.print("Gyroscope Y: ");
  Serial.println(sensor.getGyroY_rads(), 2);
  Serial.print("Gyroscope Z: ");
  Serial.println(sensor.getGyroZ_rads(), 2);

  Serial.print("Magnetometer X: ");
  Serial.println(sensor.getMagX_uT(), 2);
  Serial.print("Magnetometer Y: ");
  Serial.println(sensor.getMagY_uT(), 2);
  Serial.print("Magnetometer Z: ");
  Serial.println(sensor.getMagZ_uT(), 2);

  Serial.print("Temperature: ");
  Serial.println(sensor.getTemperature_C(), 2);

  Serial.println("------------------------------------");

  delay(500);
}

Ahora podemos imprimir las lecturas del sensor en el monitor serie.

La lectura de cada eje se puede recuperar llamando a las siguientes funciones a través del sensor:

  • Acelerómetro eje X: getAccelX_mss()
  • Acelerómetro eje Y: getAccelY_mss()
  • Acelerómetro eje Z: getAccelZ_mss()
  • Eje X del giroscopio: getGyroX_rads()
  • Eje Y del giroscopio: getGyroY_rads()
  • Eje Z del giroscopio: getGyroZ_rads()
  • Magnetómetro eje X: getMagX_uT()
  • Magnetómetro eje Y: getMagY_uT()
  • Magnetómetro eje Z: getMagZ_uT()

Una vez que el sensor MPU-9250 esté conectado a la placa Arduino y se haya cargado el código anterior, se deben ver lecturas como las de la siguiente imagen:

MPU-9250 Salida de sensor de 9 ejes en Arduino Serial Monitor.png

 

Esperamos que este pequeño tutorial te haya servido para aprender sobre la configuración de sensores de 9 ejes en Arduino.

Deja un comentario

programar en arduino logo

En este sitio aprenderas a programar en Arduino de forma gratuita a través de sencillos tutoriales y distintos proyectos.