succes

Dependencies:   microbit

Revision:
0:c15430f1895f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BNO055.h	Sat Feb 11 15:55:34 2017 +0000
@@ -0,0 +1,64 @@
+#ifndef _BNO055_h_
+#define _BNO055_h_
+
+#include "MicroBit.h"
+
+// Registers
+#define CHIP_ID_REGISTER          0x00
+#define PAGE_ID_REGISTER          0x07
+#define OPR_MODE_REGISTER         0x3d
+#define UNIT_SELECTION_REGISTER   0x3b
+#define EULER_H_REGISTER_LSB      0x1a
+#define EULER_H_REGISTER_MSB      0x1b
+#define CALIBRATION_STATUS        0x35
+
+
+// IDs
+#define BNO055_CHIP_ID        0xa0    
+#define BNO055_ACC_ID         0xfb    
+#define BNO055_MAG_ID         0x32    
+#define BNO055_GYRO_ID         0x0f    
+
+// Units
+#define UNIT_ACC_MSS            0x00 
+#define UNIT_GYR_DPS            0x00 
+#define UNIT_EULER_DEG          0x00 
+#define UNIT_TEMP_C             0x00 
+#define UNIT_ORI_WIN            0x00 
+
+
+#define NDOF_FUSION_MODE 0x0C
+#define IMU_FUSION_MODE 0x08
+
+
+namespace BNO055
+{
+
+
+class Sensor
+{
+    public:
+        Sensor(MicroBit & bit);
+        void Calibrate();
+
+        void ReadEulerAngles(double & heading, double & roll, double & pitch);
+ 
+    private:
+        MicroBit & _bit;
+        char _buffer[12];
+        uint8_t _I2CAddress;
+        
+        void LogDeviceId();
+        void SelectPage(uint8_t page);
+        void SelectNDOFFusion();
+        void SelectUnits();
+        void Init();
+        void CheckID();
+        uint8_t CalibrationStatus(void);
+        
+        uint8_t _currentPage;
+};
+
+}
+    
+#endif
\ No newline at end of file