imu_bhi260.ino
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);
}