openi2c
Version:
This library is a set of cross platform drivers for common I2C devices.
186 lines (185 loc) • 5.41 kB
TypeScript
import { BaseDevice } from '../BaseDevice';
interface MPU9250Config {
bus: number;
address: number;
UpMagneto: boolean;
DEBUG: boolean;
scaleValues: boolean;
ak_address: number;
GYRO_FS: number;
ACCEL_FS: number;
gyroBiasOffset: Offset;
accelCalibration: AccelCalibration;
DLPF_CFG?: number;
A_DLPF_CFG?: number;
SAMPLE_RATE?: number;
}
interface Offset {
x: number;
y: number;
z: number;
}
interface AccelCalibration {
offset: Offset;
scale: Scale;
}
interface Scale {
x: number[];
y: number[];
z: number[];
}
export declare const MPU9250: {
ID_MPU_9250: number;
ID_MPU_9255: number;
I2C_ADDRESS_AD0_LOW: number;
I2C_ADDRESS_AD0_HIGH: number;
WHO_AM_I: number;
SMPLRT_DIV: number;
RA_CONFIG: number;
RA_GYRO_CONFIG: number;
RA_ACCEL_CONFIG_1: number;
RA_ACCEL_CONFIG_2: number;
RA_INT_PIN_CFG: number;
INTCFG_ACTL_BIT: number;
INTCFG_OPEN_BIT: number;
INTCFG_LATCH_INT_EN_BIT: number;
INTCFG_INT_ANYRD_2CLEAR_BIT: number;
INTCFG_ACTL_FSYNC_BIT: number;
INTCFG_FSYNC_INT_MODE_EN_BIT: number;
INTCFG_BYPASS_EN_BIT: number;
INTCFG_NONE_BIT: number;
ACCEL_XOUT_H: number;
ACCEL_XOUT_L: number;
ACCEL_YOUT_H: number;
ACCEL_YOUT_L: number;
ACCEL_ZOUT_H: number;
ACCEL_ZOUT_L: number;
TEMP_OUT_H: number;
TEMP_OUT_L: number;
GYRO_XOUT_H: number;
GYRO_XOUT_L: number;
GYRO_YOUT_H: number;
GYRO_YOUT_L: number;
GYRO_ZOUT_H: number;
GYRO_ZOUT_L: number;
RA_USER_CTRL: number;
RA_PWR_MGMT_1: number;
RA_PWR_MGMT_2: number;
PWR1_DEVICE_RESET_BIT: number;
PWR1_SLEEP_BIT: number;
PWR1_CYCLE_BIT: number;
PWR1_TEMP_DIS_BIT: number;
PWR1_CLKSEL_BIT: number;
PWR1_CLKSEL_LENGTH: number;
GCONFIG_FS_SEL_BIT: number;
GCONFIG_FS_SEL_LENGTH: number;
GYRO_FS_250: number;
GYRO_FS_500: number;
GYRO_FS_1000: number;
GYRO_FS_2000: number;
GYRO_SCALE_FACTOR: number[];
ACONFIG_FS_SEL_BIT: number;
ACONFIG_FS_SEL_LENGTH: number;
ACCEL_FS_2: number;
ACCEL_FS_4: number;
ACCEL_FS_8: number;
ACCEL_FS_16: number;
ACCEL_SCALE_FACTOR: number[];
CLOCK_INTERNAL: number;
CLOCK_PLL_XGYRO: number;
CLOCK_PLL_YGYRO: number;
CLOCK_PLL_ZGYRO: number;
CLOCK_KEEP_RESET: number;
CLOCK_PLL_EXT32K: number;
CLOCK_PLL_EXT19M: number;
I2C_SLV0_DO: number;
I2C_SLV1_DO: number;
I2C_SLV2_DO: number;
USERCTRL_DMP_EN_BIT: number;
USERCTRL_FIFO_EN_BIT: number;
USERCTRL_I2C_MST_EN_BIT: number;
USERCTRL_I2C_IF_DIS_BIT: number;
USERCTRL_DMP_RESET_BIT: number;
USERCTRL_FIFO_RESET_BIT: number;
USERCTRL_I2C_MST_RESET_BIT: number;
USERCTRL_SIG_COND_RESET_BIT: number;
DEFAULT_GYRO_OFFSET: {
x: number;
y: number;
z: number;
};
DEFAULT_ACCEL_CALIBRATION: {
offset: {
x: number;
y: number;
z: number;
};
scale: {
x: number[];
y: number[];
z: number[];
};
};
/** For Gyro */
DLPF_CFG_250HZ: number;
DLPF_CFG_184HZ: number;
DLPF_CFG_92HZ: number;
DLPF_CFG_41HZ: number;
DLPF_CFG_20HZ: number;
DLPF_CFG_10HZ: number;
DLPF_CFG_5HZ: number;
DLPF_CFG_3600HZ: number;
/** Sample rate min/max value */
SAMPLERATE_MIN: number;
SAMPLERATE_MAX: number;
/** For accel. */
A_DLPF_CFG_460HZ: number;
A_DLPF_CFG_184HZ: number;
A_DLPF_CFG_92HZ: number;
A_DLPF_CFG_41HZ: number;
A_DLPF_CFG_20HZ: number;
A_DLPF_CFG_10HZ: number;
A_DLPF_CFG_5HZ: number;
A_DLPF_CFG_460HZ_2: number;
A_DLPF_CFG_MASK: number;
};
export declare class mpu9250 extends BaseDevice {
private _config;
private gyroScalarInv;
private accelScalarInv;
private ak8963?;
constructor(config?: Partial<MPU9250Config>);
initialize(): Promise<boolean>;
getMotion9(): Promise<number[]>;
getMotion6(): Promise<number[]>;
scaleAccel(val: number, offset: number, scalerArr: number[]): number;
testDevice(): Promise<boolean>;
printGyroSettings(): Promise<void>;
getFullScaleGyroRange(): Promise<number>;
printAccelSettings(): Promise<void>;
getFullScaleAccelRange(): Promise<number>;
printSettings(): Promise<void>;
getGyroPowerSettings(): Promise<number[]>;
getPitch(value: number[]): number;
getRoll(value: number[]): number;
getYaw(value: number[]): number;
getGyro(): Promise<number[]>;
getAccel(): Promise<number[]>;
getAccelPowerSettings(): Promise<number[]>;
getClockSource(): Promise<number>;
getI2CMasterMode(): Promise<number>;
getSleepEnabled(): Promise<number>;
getIDDevice(): Promise<number>;
setSampleRate(sample_rate: number): Promise<void>;
enableMagnetometer(): Promise<void>;
getByPASSEnabled(): Promise<number>;
setByPASSEnabled(bool: boolean): Promise<void>;
setI2CMasterModeEnabled(bool: boolean): Promise<void>;
setSleepEnabled(bool: boolean): Promise<void>;
setFullScaleAccelRange(adrs: number): Promise<void>;
setFullScaleGyroRange(adrs: number): Promise<void>;
setClockSource(adrs: number): Promise<void>;
setDLPFConfig(dlpf_cfg: number): Promise<void>;
setAccelDLPFConfig(a_dlpf_cfg: number): Promise<void>;
}
export default mpu9250;