succes
BNO055.h@0:c15430f1895f, 2017-02-11 (annotated)
- Committer:
- mk1
- Date:
- Sat Feb 11 15:55:34 2017 +0000
- Revision:
- 0:c15430f1895f
succes
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mk1 | 0:c15430f1895f | 1 | #ifndef _BNO055_h_ |
mk1 | 0:c15430f1895f | 2 | #define _BNO055_h_ |
mk1 | 0:c15430f1895f | 3 | |
mk1 | 0:c15430f1895f | 4 | #include "MicroBit.h" |
mk1 | 0:c15430f1895f | 5 | |
mk1 | 0:c15430f1895f | 6 | // Registers |
mk1 | 0:c15430f1895f | 7 | #define CHIP_ID_REGISTER 0x00 |
mk1 | 0:c15430f1895f | 8 | #define PAGE_ID_REGISTER 0x07 |
mk1 | 0:c15430f1895f | 9 | #define OPR_MODE_REGISTER 0x3d |
mk1 | 0:c15430f1895f | 10 | #define UNIT_SELECTION_REGISTER 0x3b |
mk1 | 0:c15430f1895f | 11 | #define EULER_H_REGISTER_LSB 0x1a |
mk1 | 0:c15430f1895f | 12 | #define EULER_H_REGISTER_MSB 0x1b |
mk1 | 0:c15430f1895f | 13 | #define CALIBRATION_STATUS 0x35 |
mk1 | 0:c15430f1895f | 14 | |
mk1 | 0:c15430f1895f | 15 | |
mk1 | 0:c15430f1895f | 16 | // IDs |
mk1 | 0:c15430f1895f | 17 | #define BNO055_CHIP_ID 0xa0 |
mk1 | 0:c15430f1895f | 18 | #define BNO055_ACC_ID 0xfb |
mk1 | 0:c15430f1895f | 19 | #define BNO055_MAG_ID 0x32 |
mk1 | 0:c15430f1895f | 20 | #define BNO055_GYRO_ID 0x0f |
mk1 | 0:c15430f1895f | 21 | |
mk1 | 0:c15430f1895f | 22 | // Units |
mk1 | 0:c15430f1895f | 23 | #define UNIT_ACC_MSS 0x00 |
mk1 | 0:c15430f1895f | 24 | #define UNIT_GYR_DPS 0x00 |
mk1 | 0:c15430f1895f | 25 | #define UNIT_EULER_DEG 0x00 |
mk1 | 0:c15430f1895f | 26 | #define UNIT_TEMP_C 0x00 |
mk1 | 0:c15430f1895f | 27 | #define UNIT_ORI_WIN 0x00 |
mk1 | 0:c15430f1895f | 28 | |
mk1 | 0:c15430f1895f | 29 | |
mk1 | 0:c15430f1895f | 30 | #define NDOF_FUSION_MODE 0x0C |
mk1 | 0:c15430f1895f | 31 | #define IMU_FUSION_MODE 0x08 |
mk1 | 0:c15430f1895f | 32 | |
mk1 | 0:c15430f1895f | 33 | |
mk1 | 0:c15430f1895f | 34 | namespace BNO055 |
mk1 | 0:c15430f1895f | 35 | { |
mk1 | 0:c15430f1895f | 36 | |
mk1 | 0:c15430f1895f | 37 | |
mk1 | 0:c15430f1895f | 38 | class Sensor |
mk1 | 0:c15430f1895f | 39 | { |
mk1 | 0:c15430f1895f | 40 | public: |
mk1 | 0:c15430f1895f | 41 | Sensor(MicroBit & bit); |
mk1 | 0:c15430f1895f | 42 | void Calibrate(); |
mk1 | 0:c15430f1895f | 43 | |
mk1 | 0:c15430f1895f | 44 | void ReadEulerAngles(double & heading, double & roll, double & pitch); |
mk1 | 0:c15430f1895f | 45 | |
mk1 | 0:c15430f1895f | 46 | private: |
mk1 | 0:c15430f1895f | 47 | MicroBit & _bit; |
mk1 | 0:c15430f1895f | 48 | char _buffer[12]; |
mk1 | 0:c15430f1895f | 49 | uint8_t _I2CAddress; |
mk1 | 0:c15430f1895f | 50 | |
mk1 | 0:c15430f1895f | 51 | void LogDeviceId(); |
mk1 | 0:c15430f1895f | 52 | void SelectPage(uint8_t page); |
mk1 | 0:c15430f1895f | 53 | void SelectNDOFFusion(); |
mk1 | 0:c15430f1895f | 54 | void SelectUnits(); |
mk1 | 0:c15430f1895f | 55 | void Init(); |
mk1 | 0:c15430f1895f | 56 | void CheckID(); |
mk1 | 0:c15430f1895f | 57 | uint8_t CalibrationStatus(void); |
mk1 | 0:c15430f1895f | 58 | |
mk1 | 0:c15430f1895f | 59 | uint8_t _currentPage; |
mk1 | 0:c15430f1895f | 60 | }; |
mk1 | 0:c15430f1895f | 61 | |
mk1 | 0:c15430f1895f | 62 | } |
mk1 | 0:c15430f1895f | 63 | |
mk1 | 0:c15430f1895f | 64 | #endif |