BlinkPosition
Dependencies: BSP_B-L475E-IOT01 mbed
Revision 2:9d4f70381506, committed 2018-11-15
- Comitter:
- redona
- Date:
- Thu Nov 15 16:59:44 2018 +0000
- Parent:
- 1:dce931d77528
- Commit message:
- BlinkPosition
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r dce931d77528 -r 9d4f70381506 main.cpp --- a/main.cpp Fri Nov 09 15:39:17 2018 +0000 +++ b/main.cpp Thu Nov 15 16:59:44 2018 +0000 @@ -1,67 +1,72 @@ #include "mbed.h" -// Sensors drivers present in the BSP library -#include "stm32l475e_iot01_tsensor.h" -#include "stm32l475e_iot01_hsensor.h" -#include "stm32l475e_iot01_psensor.h" -#include "stm32l475e_iot01_magneto.h" -#include "stm32l475e_iot01_gyro.h" #include "stm32l475e_iot01_accelero.h" -DigitalOut led(LED1); +DigitalOut led1(LED1); +DigitalOut led2(LED2); +DigitalOut led3(LED3); int main() { - float sensor_value = 0; int16_t pDataXYZ[3] = {0}; - float pGyroDataXYZ[3] = {0}; - - BSP_TSENSOR_Init(); - BSP_HSENSOR_Init(); - BSP_PSENSOR_Init(); - - BSP_MAGNETO_Init(); - BSP_GYRO_Init(); BSP_ACCELERO_Init(); while(1) { - - led = 1; - - sensor_value = BSP_TSENSOR_ReadTemp(); - printf("\nTEMPERATURE = %.2f degC\n", sensor_value); - - sensor_value = BSP_HSENSOR_ReadHumidity(); - printf("HUMIDITY = %.2f %%\n", sensor_value); - - sensor_value = BSP_PSENSOR_ReadPressure(); - printf("PRESSURE is = %.2f mBar\n", sensor_value); - - led = 0; - + wait(1); - - led = 1; - - BSP_MAGNETO_GetXYZ(pDataXYZ); - printf("\nMAGNETO_X = %d\n", pDataXYZ[0]); - printf("MAGNETO_Y = %d\n", pDataXYZ[1]); - printf("MAGNETO_Z = %d\n", pDataXYZ[2]); - - BSP_GYRO_GetXYZ(pGyroDataXYZ); - printf("\nGYRO_X = %.2f\n", pGyroDataXYZ[0]); - printf("GYRO_Y = %.2f\n", pGyroDataXYZ[1]); - printf("GYRO_Z = %.2f\n", pGyroDataXYZ[2]); - + BSP_ACCELERO_AccGetXYZ(pDataXYZ); printf("\nACCELERO_X = %d\n", pDataXYZ[0]); printf("ACCELERO_Y = %d\n", pDataXYZ[1]); printf("ACCELERO_Z = %d\n", pDataXYZ[2]); - - led = 0; - - wait(1); - + + int16_t x_data = pDataXYZ[0]; + int16_t y_data = pDataXYZ[1]; + int16_t z_data = pDataXYZ[2]; + + if(abs(z_data)>= 970 && abs(z_data) <= 1030 ) + { + printf("the board is in horizontal position\n"); + led1 = 1; + led2 = 0; + led3 = 0; + wait(1); + led1 = 0; + } else { led1 = 0;} + + if(abs(x_data)>= 970 && abs(x_data) <= 1030 ){ + printf("the board is in the short edge\n"); + led2 = 1; + led1 = 0; + led3 = 0; + wait(1); + led2 = 0; + } else { led2 = 0; } + + if(abs(y_data)>= 970 && abs(y_data) <= 1030 ){ + printf("the board is in the long edge\n"); + led3 = 1; + led2 = 0; + led1 = 0; + wait(1); + led3 = 0; + } else { led3 = 0; } + + if(!(abs(z_data)>= 970 && abs(z_data) <= 1030) && !(abs(x_data)>= 970 && abs(x_data) <= 1030) && !(abs(y_data)>= 970 && abs(y_data) <= 1030)){ + printf("unknown position\n"); + led1 = 1; + led2 = 1; + led3 = 1; + wait(1); + led1 = 0; + led2 = 0; + led3 = 0; + } else { + led1 = 0; + led2 = 0; + led3 = 0; + } + } }