INFORMACIÓN
El BMI270 Sensor Inercial es un módulo con 6DoF que integra un acelerómetro de bajo consumo y un giroscopio de alto rendimiento de 3 ejes cada uno, junto con pines auxiliares y de interrupción configurables, está diseñado para funcionar fácilmente con microcontroladores. Es compatible con interfaces I2C y SPI. Incluye un par de headers o adquiere el arnes Qwiic para facilitar la conexión.
El BMI270 Sensor Inercial es un módulo con 6DoF es ideal para wearables, dispositivos IoT y sistemas de detección de movimiento. Entre sus aplicaciones destacan: monitoreo de actividad, controlador de videojuegos, detección de gestos y/o movimientos, robótica móvil u automatización por movimiento.
ESPECIFICACIONES Y CARACTERÍSTICAS
- Marca: UNIT Electronics
- Tipo: Sensor Inercial 6 grados de libertad
- Voltaje de funcionamiento: 3.3 V
- Nivel lógico: Compatible con 3.3 V
- Interfaces de comunicación:
- I2C (hasta 1 MHz)
- SPI (hasta 10 MHz)
- Rango:
- Acelerómetro: +/-2 g , +/-4 g , +/-8 g , +/-16 g
- Giroscopio: +/-125 °C/s a +/-2000 °C/s
- Bajo consumo de corriente: aprox. 850 µA en funcionamiento completo
- Salida de interrupción: Activa-baja, drenaje abierto
- Dimensiones:22.83mm x 13.34mm x 4.5mm
- Peso: 2 g
DOCUMENTACIÓN Y RECURSOS
INFORMACIÓN ADICIONAL
Test de funcionalidad para el BMI270 Sensor Inercial
Para hacer uso del módulo sensor IMU 6DoF, requeriremos la librería SparkFun BMI270, en el IDE de Arduino

Posteriormente, realizaremos la siguiente conexión vía Qwiic, para hacer uso del protocolo I2C. Recuerda soldar el puente que hay en la PCB del módulo, para poder hacer uso del mismo.


Realiza la carga del siguiente código para poder observar los datos de lectura del acelerómetro y giroscopio, recuerda que cada uno tiene 3 ejes.
#include <Wire.h>
#include "SparkFun_BMI270_Arduino_Library.h"
#define SDA_PIN 6
#define SCL_PIN 7
#define PIN_SDO D1
#define PIN_CS D0
// Create a new sensor object
BMI270 imu;
// I2C address selection
uint8_t addr_imu_1 = BMI2_I2C_PRIM_ADDR; // 0x68
uint8_t addr_imu_2 = BMI2_I2C_SEC_ADDR; // 0x69
void setup() {
// Start serial
Serial.begin(115200);
Serial.println("BMI270 Example 1 - Basic Readings I2C");
pinMode(PIN_CS, OUTPUT);
pinMode(PIN_SDO, OUTPUT);
digitalWrite(PIN_CS, HIGH);
digitalWrite(PIN_SDO, HIGH); // LOW = 0x68 || HIGH = 0x69
// Initialize the I2C library
Wire.begin(SDA_PIN, SCL_PIN);
bool imu_ok = false;
Serial.println("Inicializando BMI270...");
if (imu.beginI2C(addr_imu_1, Wire) == BMI2_OK) {
Serial.println("BMI270 detectado en 0x68");
imu_ok = true;
} else if (imu.beginI2C(addr_imu_2, Wire) == BMI2_OK) {
Serial.println("BMI270 detectado en 0x69");
imu_ok = true;
}
while (!imu_ok) {
Serial.println("Error: BMI270 no detectado en 0x68 ni 0x69");
delay(1000);
}
Serial.println("BMI270 connected!");
}
void loop() {
// Get measurements from the sensor. This must be called before accessing
// the sensor data, otherwise it will never update
imu.getSensorData();
// Print acceleration data
Serial.print("Acceleration in g's");
Serial.print("t");
Serial.print("X: ");
Serial.print(imu.data.accelX, 3);
Serial.print("t");
Serial.print("Y: ");
Serial.print(imu.data.accelY, 3);
Serial.print("t");
Serial.print("Z: ");
Serial.print(imu.data.accelZ, 3);
Serial.print("t");
// Print rotation data
Serial.print("Rotation in deg/sec");
Serial.print("t");
Serial.print("X: ");
Serial.print(imu.data.gyroX, 3);
Serial.print("t");
Serial.print("Y: ");
Serial.print(imu.data.gyroY, 3);
Serial.print("t");
Serial.print("Z: ");
Serial.println(imu.data.gyroZ, 3);
// Print 50x per second
delay(20);
}
En el monitor serial (115200 baud), podrás observar la lectura de los datos vía I2C.

Te invitamos a realizar las conexiones pertinentes para poder manipular el módulo bajo el protocolo SPI(SCK, MOSI, MISO, CS).

Espuma Limpiadora para Equipos Electrónicos 454 ml SILIMPO





























Valoraciones
No hay valoraciones aún.