The MPU-6886 is a 6-axis motion tracking device that combines a 3-axis gyroscope and a 3-axis accelerometer.
Simple test with never ending loop.
import utime from machine import I2C, Pin from mpu6886 import MPU6886 i2c = I2C(scl=Pin(22), sda=Pin(21)) sensor = MPU6886(i2c) print("MPU6886 id: " + hex(sensor.whoami)) while True: print(sensor.acceleration) print(sensor.gyro) print(sensor.temperature) utime.sleep_ms(1000)By default the library returns 3-tuple of X, Y, Z axis values for acceleration and gyroscope. Default units are m/s^2, rad/s and °C. It is possible to also get acceleration values in g and gyro values deg/s. See the example below.
import utime from machine import I2C, Pin from mpu6886 import MPU6886, SF_G, SF_DEG_S i2c = I2C(scl=Pin(22), sda=Pin(21)) sensor2 = MPU6886(i2c, accel_sf=SF_G, gyro_sf=SF_DEG_S) print("MPU6886 id: " + hex(sensor.whoami)) while True: print(sensor.acceleration) print(sensor.gyro) print(sensor.temperature) utime.sleep_ms(1000)More realistic example usage with timer. If you get OSError: 26 or i2c driver install error after soft reboot do a hard reboot.
import micropython from machine import I2C, Pin, Timer from mpu6886 import MPU6886 micropython.alloc_emergency_exception_buf(100) i2c = I2C(scl=Pin(22), sda=Pin(21)) sensor = MPU6886(i2c) def read_sensor(timer): print(sensor.acceleration) print(sensor.gyro) print(sensor.temperature) print("MPU6886 id: " + hex(sensor.whoami)) timer_0 = Timer(0) timer_0.init(period=1000, mode=Timer.PERIODIC, callback=read_sensor)TODO
The MIT License (MIT). Please see License File for more information.