BNO-055 - датчик, в котором есть свой модуль вычислений - 32-битное ядро ARM Cortex M0. Ядро получает данные акселерометра, гироскопа, магнитометра, производит расчеты и сохраняет результаты. Результаты в дальнейшем могут быть запрошены внешними устройствами. Ниже приведена внутренняя архитектура описываемого датчика и его взаимодействие с внешним процессором, информация взята из документации BOSH.
Для работы с IMU датчиком BNO055 необходимо скачать библиотеку Adafruit BNO055 через менеджер библиотек в Arduino IDE. Там же есть несколько примеров, которые работу библиотеки. Согласно документации BNO-055 может поддерживать три интерфейса обмена с внешними устройствами: I2C, HID-I2C, UART (Serial). Мы будем работать с I2C, не забудьте подключить библиотеку VBCoreG4_arduino_system и указать пины, к которым подключены SDA и SCL. Для этого в setup() добавим две строчки:
Wire.setSDA(PB_7_ALT1);
Wire.setSCL(PC6);
В адресе I2C укажите 0x29. Ниже приведен один измененный для драйвера VBCoreG4 пример из библиотеки Adafruit BNO055