micro:bit / I2C バス / オンボード加速度計 / MicroBitAccelerometer オブジェクトから読み取る / mbed

参考: 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;
}

実行結果:
f:id:ti-nspire:20180530111216p:plain:w400