171 struct bhy2_data_orientation data;
175 bhy2_parse_orientation(data_ptr, &data);
177 BoschSensorUtils::time_to_s_ns(_timestamp, &s, &ns, &tns);
178 uint8_t accuracy =
bhy.getAccuracy();
180 Serial.print(
" T:"); Serial.print(s);
181 Serial.print(
"."); Serial.print(ns);
182 Serial.print(
" R:"); Serial.print(data.roll * 360.0f / 32768.0f);
183 Serial.print(
" P:"); Serial.print(data.pitch * 360.0f / 32768.0f);
184 Serial.print(
" H:"); Serial.print(data.heading * 360.0f / 32768.0f);
185 Serial.print(
" A:"); Serial.println(accuracy);
187 Serial.print(
" T:"); Serial.print(s);
188 Serial.print(
"."); Serial.print(ns);
189 Serial.print(
" R:"); Serial.print(data.roll * 360.0f / 32768.0f);
190 Serial.print(
" P:"); Serial.print(data.pitch * 360.0f / 32768.0f);
191 Serial.print(
" H:"); Serial.println(data.heading * 360.0f / 32768.0f);
198 Serial.begin(115200);
205 bhy.setFirmware(bosch_firmware_image, bosch_firmware_size);
216 Serial.println(
"Initializing Sensors...");
218#ifdef USE_I2C_INTERFACE
223 Serial.print(
"Failed to initialize sensor - error code:");
224 Serial.println(
bhy.getError());
231#ifdef USE_SPI_INTERFACE
234 Serial.print(
"Failed to initialize sensor - error code:");
235 Serial.println(
bhy.getError());
242 Serial.println(
"Initializing the sensor successfully!");
245 BoschSensorInfo info =
bhy.getSensorInfo();
248 ArduinoStreamPrinter printer(Serial);
249 info.printInfo(printer);
251 info.printInfo([](
const char *format, ...) ->
int {
253 va_start(args, format);
254 int result = vprintf(format, args);
293 float sample_rate = 100.0;
296 uint32_t report_latency_ms = 0;
303#ifdef USING_DATA_HELPER
304 euler.enable(sample_rate, report_latency_ms);
307 bhy.configure(BoschSensorID::ORIENTATION_WAKE_UP, sample_rate, report_latency_ms);
313#ifdef USING_SENSOR_IRQ_METHOD
void parse_euler_data(uint8_t sensor_id, const uint8_t *data_ptr, uint32_t len, uint64_t *timestamp, void *user_data)
Parse the quaternion data from the sensor and convert it to Euler angles.