Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
IMU.h
00001 /* 00002 * IMU.h 00003 * Copyright (c) 2020, ZHAW 00004 * All rights reserved. 00005 */ 00006 00007 #ifndef IMU_H_ 00008 #define IMU_H_ 00009 00010 #include <cstdlib> 00011 #include <mbed.h> 00012 00013 /** 00014 * This is a device driver class for the ST LSM9DS1 inertial measurement unit. 00015 */ 00016 class IMU { 00017 00018 public: 00019 00020 IMU(SPI& spi, DigitalOut& csAG, DigitalOut& csM); 00021 virtual ~IMU(); 00022 float readAccelerationX(); 00023 float readAccelerationY(); 00024 float readAccelerationZ(); 00025 float readGyroX(); 00026 float readGyroY(); 00027 float readGyroZ(); 00028 float readMagnetometerX(); 00029 float readMagnetometerY(); 00030 float readMagnetometerZ(); 00031 00032 private: 00033 00034 static const char WHO_AM_I = 0x0F; 00035 static const char CTRL_REG1_G = 0x10; 00036 static const char CTRL_REG2_G = 0x11; 00037 static const char CTRL_REG3_G = 0x12; 00038 static const char OUT_X_L_G = 0x18; 00039 static const char OUT_X_H_G = 0x19; 00040 static const char OUT_Y_L_G = 0x1A; 00041 static const char OUT_Y_H_G = 0x1B; 00042 static const char OUT_Z_L_G = 0x1C; 00043 static const char OUT_Z_H_G = 0x1D; 00044 static const char CTRL_REG4 = 0x1E; 00045 static const char CTRL_REG5_XL = 0x1F; 00046 static const char CTRL_REG6_XL = 0x20; 00047 static const char CTRL_REG7_XL = 0x21; 00048 static const char CTRL_REG8 = 0x22; 00049 static const char CTRL_REG9 = 0x23; 00050 static const char CTRL_REG10 = 0x24; 00051 static const char OUT_X_L_XL = 0x28; 00052 static const char OUT_X_H_XL = 0x29; 00053 static const char OUT_Y_L_XL = 0x2A; 00054 static const char OUT_Y_H_XL = 0x2B; 00055 static const char OUT_Z_L_XL = 0x2C; 00056 static const char OUT_Z_H_XL = 0x2D; 00057 00058 static const char WHO_AM_I_M = 0x0F; 00059 static const char CTRL_REG1_M = 0x20; 00060 static const char CTRL_REG2_M = 0x21; 00061 static const char CTRL_REG3_M = 0x22; 00062 static const char CTRL_REG4_M = 0x23; 00063 static const char CTRL_REG5_M = 0x24; 00064 static const char OUT_X_L_M = 0x28; 00065 static const char OUT_X_H_M = 0x29; 00066 static const char OUT_Y_L_M = 0x2A; 00067 static const char OUT_Y_H_M = 0x2B; 00068 static const char OUT_Z_L_M = 0x2C; 00069 static const char OUT_Z_H_M = 0x2D; 00070 00071 static const float M_PI; // the mathematical constant PI 00072 00073 SPI& spi; 00074 DigitalOut& csAG; 00075 DigitalOut& csM; 00076 Mutex mutex; 00077 00078 void writeRegister(DigitalOut& cs, char address, char value); 00079 char readRegister(DigitalOut& cs, char address); 00080 }; 00081 00082 #endif /* IMU_H_ */ 00083
Generated on Fri Jul 29 2022 01:28:48 by
1.7.2