succes

Dependencies:   microbit

Committer:
mk1
Date:
Sat Feb 11 15:55:34 2017 +0000
Revision:
0:c15430f1895f
succes

Who changed what in which revision?

UserRevisionLine numberNew 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