9#if defined(ARDUINO) && !defined(UDON_TEENSY_I2C_SLAVE_MODE)
11# include <Udon/Thirdparty/Adafruit_BNO055/Adafruit_BNO055.h>
23 QuaternionDirection direction;
28 Quaternion quaternion;
34 BNO055(TwoWire& wire,
const QuaternionDirection& direction = {
true,
true,
true })
35 : Adafruit_BNO055(-1, 0x28, &wire)
36 , direction(direction)
37 , offset(Quaternion::Identity())
38 , quaternion(Quaternion::Identity())
46 adafruit_bno055_opmode_t mode = OPERATION_MODE_NDOF;
49 adafruit_bno055_axis_remap_config_t remapConfig = REMAP_CONFIG_P1;
52 adafruit_bno055_axis_remap_sign_t remapSign = REMAP_SIGN_P1;
55 bool useExternalCrystal =
false;
62 return begin(Parameter());
68 bool begin(
const Parameter& parameter)
70 if (!Adafruit_BNO055::begin(parameter.mode))
75 setAxisRemap(parameter.remapConfig);
76 setAxisSign(parameter.remapSign);
77 setExtCrystalUse(parameter.useExternalCrystal);
91 const auto q = Adafruit_BNO055::getQuat();
92 quaternion = { q.x(), q.y(), q.z(), q.w() };
97 Quaternion getQuaternion()
const
99 return (offset.inverse() * quaternion).directionRevision(direction);
104 Euler getEuler()
const
106 return getQuaternion().toEuler();
111 double getYaw()
const
113 return getQuaternion().toYaw();
void Show(Args &&... args)
区切り文字ありで出力する
Definition Show.hpp:339