imu_bhi260.ino

Arduino Nicla Sense ME · Archivo : imu_bhi260.ino · Lenguaje : Arduino · Uso : Lire l’accélération via le hub BHI260AP

El acelerómetro de 16 bits del BHI260AP se abre con la librería Arduino_BHY2: accel.checkNewData y luego x/y/z en g. La doc insiste: BHY2.update() es la bomba del buzón del hub; sin ella, ningún sensor responde.

Hardware

Una Arduino Nicla Sense ME (nRF52832, solo BLE) con hub Bosch BHI260AP, BMM150, BMP390, BME688, LED RGB en driver I2C y cargador LiPo. La placa sola por USB; el BHI260AP y su firmware BHY2 vienen grabados de fábrica en su flash QSPI dedicada.

Cableado

Sin cableado: todos los sensores Bosch están soldados y cableados internamente al hub. Los pines del conector quedan libres.

Funcionamiento

BHY2.begin arranca el hub (prover/advanced); accel.begin habilita el sensor en el firmware BHY2; update() drena las FIFO, checkNewData lee la última trama. Salida en g, 1 g ≈ 9,81 m/s².

Ejecución

Programación desde Arduino IDE (core ArduinoCore-mbed); librerías Arduino_BHY2 y Nicla_System; USB por puente serie.

Variantes

Añadir giro y vector de rotación (fusión BSX del hub), subir la frecuencia de update para tiempo real, o transmitir los 9 ejes por BLE.

imu_bhi260.ino

// Les capteurs du Sense ME ne pendent pas sur l'I2C direct :
// ils sont derrière le hub BHI260AP, servi par Arduino_BHY2.
// Règle docs-db : BHY2.update() est la pompe aux lettres du hub,
// à appeler en continu.

#include "Arduino_BHY2.h"

SensorAccel accel(0);

void setup() {
  Serial.begin(115200);
  BHY2.begin();
  accel.begin();
  BHY2.update();          // premier échange avec le hub
}

void loop() {
  BHY2.update();          // OBLIGATOIRE à chaque tour de boucle

  if (accel.checkNewData()) {
    Serial.print("ax="); Serial.print(accel.x());
    Serial.print(" ay="); Serial.print(accel.y());
    Serial.print(" az="); Serial.println(accel.z());
  }
  delay(10);
}

← Volver a la ficha