class IMU nucleo

Dependents:   Coupe-Robotique-FIP-Main

Fork of IMU_FIP by Robotique FIP

Committer:
quentin9696
Date:
Thu May 21 10:54:31 2015 +0000
Revision:
4:7e75dae22ddb
Ajout IMU

Who changed what in which revision?

UserRevisionLine numberNew contents of line
quentin9696 4:7e75dae22ddb 1 #include "mbed.h"
quentin9696 4:7e75dae22ddb 2 #include "x_cube_mems.h"
quentin9696 4:7e75dae22ddb 3
quentin9696 4:7e75dae22ddb 4
quentin9696 4:7e75dae22ddb 5
quentin9696 4:7e75dae22ddb 6 DigitalOut myled(LED1);
quentin9696 4:7e75dae22ddb 7 Serial pc(SERIAL_TX, SERIAL_RX);
quentin9696 4:7e75dae22ddb 8 volatile float TEMPERATURE_Value_C;
quentin9696 4:7e75dae22ddb 9 volatile float TEMPERATURE_Value_F;
quentin9696 4:7e75dae22ddb 10 volatile float HUMIDITY_Value;
quentin9696 4:7e75dae22ddb 11 volatile float PRESSURE_Value;
quentin9696 4:7e75dae22ddb 12 volatile AxesRaw_TypeDef MAG_Value;
quentin9696 4:7e75dae22ddb 13 volatile AxesRaw_TypeDef ACC_Value;
quentin9696 4:7e75dae22ddb 14 volatile AxesRaw_TypeDef GYR_Value;
quentin9696 4:7e75dae22ddb 15
quentin9696 4:7e75dae22ddb 16 int main() {
quentin9696 4:7e75dae22ddb 17
quentin9696 4:7e75dae22ddb 18 /* Create sensor board object */
quentin9696 4:7e75dae22ddb 19 static X_CUBE_MEMS *mems_expansion_board = X_CUBE_MEMS::Instance();
quentin9696 4:7e75dae22ddb 20
quentin9696 4:7e75dae22ddb 21 while(1) {
quentin9696 4:7e75dae22ddb 22 myled = 1; // LED is ON
quentin9696 4:7e75dae22ddb 23 wait(0.2); // 200 ms
quentin9696 4:7e75dae22ddb 24 myled = 0; // LED is OFF
quentin9696 4:7e75dae22ddb 25 wait(1.0); // 1 sec
quentin9696 4:7e75dae22ddb 26
quentin9696 4:7e75dae22ddb 27 /* Get instantaneous data from all sensors */
quentin9696 4:7e75dae22ddb 28
quentin9696 4:7e75dae22ddb 29
quentin9696 4:7e75dae22ddb 30 mems_expansion_board->hts221.GetTemperature((float *)&TEMPERATURE_Value_C);
quentin9696 4:7e75dae22ddb 31 mems_expansion_board->hts221.GetHumidity((float *)&HUMIDITY_Value);
quentin9696 4:7e75dae22ddb 32 mems_expansion_board->lps25h.GetPressure((float *)&PRESSURE_Value);
quentin9696 4:7e75dae22ddb 33 mems_expansion_board->lis3mdl.GetAxes((AxesRaw_TypeDef *)&MAG_Value);
quentin9696 4:7e75dae22ddb 34 mems_expansion_board->lsm6ds0.Acc_GetAxes((AxesRaw_TypeDef *)&ACC_Value);
quentin9696 4:7e75dae22ddb 35 mems_expansion_board->lsm6ds0.Gyro_GetAxes((AxesRaw_TypeDef *)&GYR_Value);
quentin9696 4:7e75dae22ddb 36
quentin9696 4:7e75dae22ddb 37 TEMPERATURE_Value_F = (TEMPERATURE_Value_C * 1.8f) + 32.0f;
quentin9696 4:7e75dae22ddb 38 pc.printf("Temperature:\t\t %f C / %f F\r\n", TEMPERATURE_Value_C, TEMPERATURE_Value_F);
quentin9696 4:7e75dae22ddb 39 pc.printf("Humidity:\t\t %f%%\r\n", HUMIDITY_Value);
quentin9696 4:7e75dae22ddb 40 pc.printf("Pressure:\t\t %f hPa\r\n", PRESSURE_Value);
quentin9696 4:7e75dae22ddb 41 pc.printf("Magnetometer (mGauss):\t X: %d, Y: %d, Z: %d\r\n", MAG_Value.AXIS_X, MAG_Value.AXIS_Y, MAG_Value.AXIS_Z);
quentin9696 4:7e75dae22ddb 42 pc.printf("Accelerometer (mg):\t X: %d, Y: %d, Z: %d\r\n", ACC_Value.AXIS_X, ACC_Value.AXIS_Y, ACC_Value.AXIS_Z);
quentin9696 4:7e75dae22ddb 43 pc.printf("Gyroscope (mdps):\t X: %d, Y: %d, Z: %d\r\n", GYR_Value.AXIS_X, GYR_Value.AXIS_Y, GYR_Value.AXIS_Z);
quentin9696 4:7e75dae22ddb 44 pc.printf("\r\n");
quentin9696 4:7e75dae22ddb 45 }
quentin9696 4:7e75dae22ddb 46 }