参考: accelerometer - micro:bit runtime
#include "MicroBit.h" MicroBit uBit; MicroBitI2C i2c = MicroBitI2C(I2C_SDA0, I2C_SCL0); MicroBitAccelerometer accelerometer = MicroBitAccelerometer(i2c); int main(void){ uBit.init(); //accelerometer.setPeriod(100); while(1){ // 3 軸の加速度を取得する (単位は約 mg)。 int g_x = accelerometer.getX(); int g_y = accelerometer.getY(); int g_z = accelerometer.getZ(); // ピッチを角度単位、ラジアン単位で取得する。 int pitch = accelerometer.getPitch(); float pitchRad = accelerometer.getPitchRadians(); // ロールを角度単位、ラジアン単位で取得する。 int roll = accelerometer.getRoll(); float rollRad = accelerometer.getRollRadians(); printf("x: %d , y: %d , z: %d\n", g_x, g_y, g_z); printf("pitch(deg): %d , pitchRad(rad): %.3f\n", pitch, pitchRad); printf("roll(deg) : %d , rollRad(rad) : %.3f\n", roll, rollRad); printf("\n"); wait_ms(1000); } release_fiber(); return 0; }
実行結果: