SmartWheels self-driving race car. Designed for NXP Cup. Uses FRDM-KL25Z, area-scan camera, and simple image processing to detect and navigate any NXP spec track.
Dependencies: TSI USBDevice mbed-dev
Fork of SmartWheels by
Diff: Hardwares/IMUManager.h
- Revision:
- 62:bc5caf59fe39
- Parent:
- 59:b709711bc566
- Child:
- 63:d9a81b3d69f5
--- a/Hardwares/IMUManager.h Sat Apr 08 17:40:13 2017 +0000 +++ b/Hardwares/IMUManager.h Sun Apr 09 18:20:57 2017 +0000 @@ -27,18 +27,37 @@ #error Must choose a SA0 and SA1 value for Accel and Mag #endif -#define FXOS8700CQ_STATUS 0x00 +#define FXOS8700CQ_STATUS 0x00 + +#define FXOS8700CQ_F_SETUP 0x09 -#define FXOS8700CQ_WHOAMI 0x0D -#define FXOS8700CQ_WHOAMI_VAL 0xC7 +#define FXOS8700CQ_SYSMOD 0x0B + +#define FXOS8700CQ_WHOAMI 0x0D +#define FXOS8700CQ_WHOAMI_VAL 0xC7 #define FXOS8700CQ_XYZ_DATA_CFG 0x0E +#define FXOS8700CQ_XYZ_DATA_2G 0x00 +#define FXOS8700CQ_XYZ_DATA_4G 0x01 +#define FXOS8700CQ_XYZ_DATA_8G 0x02 -#define FXOS8700CQ_CTRL_REG1 0x2A +#define FXOS8700CQ_XYZ_DATA_SC FXOS8700CQ_XYZ_DATA_2G -#define FXOS8700CQ_M_CTRL_REG1 0x5B +#if FXOS8700CQ_XYZ_DATA_SC == FXOS8700CQ_XYZ_DATA_2G + #define ACCELER_SCALE_F 0.000244f +#elif FXOS8700CQ_XYZ_DATA_SC == FXOS8700CQ_XYZ_DATA_4G + #define ACCELER_SCALE_F 0.000488f +#elif FXOS8700CQ_XYZ_DATA_SC == FXOS8700CQ_XYZ_DATA_8G + #define ACCELER_SCALE_F 0.000976f +#else + #error Must define a scale for accelerometer! +#endif -#define FXOS8700CQ_M_CTRL_REG2 0x5C +#define FXOS8700CQ_CTRL_REG1 0x2A + +#define FXOS8700CQ_M_CTRL_REG1 0x5B + +#define FXOS8700CQ_M_CTRL_REG2 0x5C #define FXOS8700CQ_READ_LEN 13 // status plus 6 channels = 13 bytes @@ -50,9 +69,9 @@ struct imu_vec3 { - uint16_t x; - uint16_t y; - uint16_t z; + float x; + float y; + float z; }; uint8_t imu_manager_init(); @@ -61,7 +80,7 @@ const volatile struct imu_vec3* imu_manager_get_accl(); -const volatile struct imu_vec3* imu_manager_get_magt(); +//const volatile struct imu_vec3* imu_manager_get_magt(); #ifdef __cplusplus }