Documentation
¶
Overview ¶
Package mpu6886 provides a driver for the MPU6886 accelerometer and gyroscope made by InvenSense.
Index ¶
Constants ¶
const ( DefaultAddress = 0x68 SecondaryAddress = 0x69 )
The I2C address which this device listens to.
const ( XG_OFFS_TC_H = 0x04 XG_OFFS_TC_L = 0x05 YG_OFFS_TC_H = 0x07 YG_OFFS_TC_L = 0x08 ZG_OFFS_TC_H = 0x0A ZG_OFFS_TC_L = 0x0B // Self test registers SELF_TEST_X_ACCEL = 0x0D SELF_TEST_Y_ACCEL = 0x0E SELF_TEST_Z_ACCEL = 0x0F XG_OFFS_USRH = 0x13 XG_OFFS_USRL = 0x14 YG_OFFS_USRH = 0x15 YG_OFFS_USRL = 0x16 ZG_OFFS_USRH = 0x17 ZG_OFFS_USRL = 0x18 SMPLRT_DIV = 0x19 CONFIG = 0x1A GYRO_CONFIG = 0x1B ACCEL_CONFIG = 0x1C ACCEL_CONFIG_2 = 0x1D LP_MODE_CFG = 0x1E ACCEL_WOM_X_THR = 0x20 ACCEL_WOM_Y_THR = 0x21 ACCEL_WOM_Z_THR = 0x22 FIFO_EN = 0x23 FSYNC_INT = 0x36 // Interrupt configuration INT_PIN_CFG = 0x37 INT_ENABLE = 0x38 FIFO_WM_INT_STATUS = 0x39 INT_STATUS = 0x3A // Accelerometer measurements ACCEL_XOUT_H = 0x3B ACCEL_XOUT_L = 0x3C ACCEL_YOUT_H = 0x3D ACCEL_YOUT_L = 0x3E ACCEL_ZOUT_H = 0x3F ACCEL_ZOUT_L = 0x40 // Temperature measurement TEMP_OUT_H = 0x41 TEMP_OUT_L = 0x42 // Gyroscope measurements GYRO_XOUT_H = 0x43 GYRO_XOUT_L = 0x44 GYRO_YOUT_H = 0x45 GYRO_YOUT_L = 0x46 GYRO_ZOUT_H = 0x47 GYRO_ZOUT_L = 0x48 SELF_TEST_X_GYRO = 0x50 SELF_TEST_Y_GYRO = 0x51 SELF_TEST_Z_GYRO = 0x52 E_ID0 = 0x53 E_ID1 = 0x54 E_ID2 = 0x55 E_ID3 = 0x56 E_ID4 = 0x57 E_ID5 = 0x58 E_ID6 = 0x59 FIFO_WM_TH1 = 0x60 FIFO_WM_TH2 = 0x61 SIGNAL_PATH_RESET = 0x68 ACCEL_INTEL_CTRL = 0x69 USER_CTRL = 0x6A PWR_MGMT_1 = 0x6B PWR_MGMT_2 = 0x6C I2C_IF = 0x70 FIFO_COUNTH = 0x72 FIFO_COUNTL = 0x73 FIFO_R_W = 0x74 WHO_AM_I = 0x75 XA_OFFSET_H = 0x77 XA_OFFSET_L = 0x78 YA_OFFSET_H = 0x7A YA_OFFSET_L = 0x7B ZA_OFFSET_H = 0x7D ZA_OFFSET_L = 0x7E )
Registers. Names, addresses and comments copied from the datasheet.
const ( AFS_RANGE_2_G = iota AFS_RANGE_4_G AFS_RANGE_8_G AFS_RANGE_16_G )
Accelerometer and gyroscope ranges
const ( GFS_RANGE_250 = iota GFS_RANGE_500 GFS_RANGE_1000 GFS_RANGE_2000 )
const WhoAmI = 0x19
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Device ¶
type Device struct { Address uint16 // contains filtered or unexported fields }
Device wraps an I2C connection to a MPU6886 device.
func New ¶
New creates a new MPU6886 connection. The I2C bus must already be configured.
This function only creates the Device object, it does not touch the device.
func (*Device) Connected ¶
Connected returns whether a MPU6886 has been found. It does a "who am I" request and checks the response.
func (*Device) ReadAcceleration ¶
ReadAcceleration reads the current acceleration from the device and returns it in µg (micro-gravity). When one of the axes is pointing straight to Earth and the sensor is not moving the returned value will be around 1000000 or -1000000.
func (*Device) ReadRotation ¶
ReadRotation reads the current rotation from the device and returns it in µ°/s (micro-degrees/sec). This means that if you were to do a complete rotation along one axis and while doing so integrate all values over time, you would get a value close to 360000000.
func (*Device) ReadTemperature ¶
ReadTemperature returns the temperature in Celsius millidegrees (°C/1000).