motion data on button press
Dependencies: FXAS21002 FXOS8700 Hexi_KW40Z
Fork of Hexi_Buttons_Example by
Revision 3:b61af6badaf2, committed 2018-06-03
- Comitter:
- nrithya
- Date:
- Sun Jun 03 22:38:17 2018 +0000
- Parent:
- 2:5b025ef2835a
- Commit message:
- send motion data on button press
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FXAS21002.lib Sun Jun 03 22:38:17 2018 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/AswinSivakumar/code/FXAS21002/#c9ebfc81e8b6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FXOS8700.lib Sun Jun 03 22:38:17 2018 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/AswinSivakumar/code/FXOS8700/#df2167370234
--- a/main.cpp Mon Sep 19 03:50:53 2016 +0000 +++ b/main.cpp Sun Jun 03 22:38:17 2018 +0000 @@ -1,5 +1,7 @@ #include "mbed.h" #include "Hexi_KW40Z.h" +#include "FXOS8700.h" +#include "FXAS21002.h" #define LED_ON 0 #define LED_OFF 1 @@ -7,6 +9,16 @@ void StartHaptic(void); void StopHaptic(void const *n); +Serial pc(USBTX, USBRX); +static int count=0; +bool ges_flag=false; + +// Pin connections & address for Hexiwear +FXAS21002 gyro(PTC11, PTC10); +FXOS8700 accel(PTC11, PTC10); +FXOS8700 mag(PTC11, PTC10); +Timer t; + DigitalOut redLed(LED1); DigitalOut greenLed(LED2); DigitalOut blueLed(LED3); @@ -21,10 +33,13 @@ void ButtonUp(void) { StartHaptic(); + count++; + ges_flag=true; - redLed = LED_ON; + /*redLed = LED_ON; greenLed = LED_OFF; - blueLed = LED_OFF; + blueLed = LED_OFF;*/ + } void ButtonDown(void) @@ -67,13 +82,78 @@ { /* Register callbacks to application functions */ kw40z_device.attach_buttonUp(&ButtonUp); - kw40z_device.attach_buttonDown(&ButtonDown); + /*kw40z_device.attach_buttonDown(&ButtonDown); kw40z_device.attach_buttonLeft(&ButtonLeft); kw40z_device.attach_buttonRight(&ButtonRight); - kw40z_device.attach_buttonSlide(&ButtonSlide); + kw40z_device.attach_buttonSlide(&ButtonSlide);*/ + + accel.accel_config(); + mag.mag_config(); + gyro.gyro_config(); + + float accel_data[3]; float accel_rms=0.0; + float mag_data[3]; float mag_rms=0.0; + float gyro_data[3]; while (true) { - Thread::wait(500); + if(ges_flag){ + + while(count==1){ + + ges_flag=false; + t.start(); + //while(1){ + + gyro.acquire_gyro_data_dps(gyro_data); + //accel_rms = sqrt(((accel_data[0]*accel_data[0])+(accel_data[1]*accel_data[1])+(accel_data[2]*accel_data[2]))/3); + printf("%4.5f \t%4.5f \t%4.5f \t%4.5f \n\r",t.read(),gyro_data[0],gyro_data[1],gyro_data[2]); + wait(0.01); + + accel.acquire_accel_data_g(accel_data); + //accel_rms = sqrt(((accel_data[0]*accel_data[0])+(accel_data[1]*accel_data[1])+(accel_data[2]*accel_data[2]))/3); + printf("%4.5f \t%4.5f \t%4.5f \t%4.5f \n\r",t.read(),accel_data[0],accel_data[1],accel_data[2]); + wait(0.01); + + mag.acquire_mag_data_uT(mag_data); + //mag_rms = sqrt(((mag_data[0]*mag_data[0])+(mag_data[1]*mag_data[1])+(mag_data[2]*mag_data[2]))/3); + printf("%4.5f \t%4.5f \t%4.5f \t%4.5f \n\r",t.read(),mag_data[0],mag_data[1],mag_data[2]); + wait(0.01); + printf("%d\n\r",1); + + Thread::wait(500); + } + + if(count==2){ + + ges_flag=false; + count=0; + gyro.acquire_gyro_data_dps(gyro_data); + //accel_rms = sqrt(((accel_data[0]*accel_data[0])+(accel_data[1]*accel_data[1])+(accel_data[2]*accel_data[2]))/3); + printf("%4.5f \t%4.5f \t%4.5f \t%4.5f \n\r",t.read(),gyro_data[0],gyro_data[1],gyro_data[2]); + wait(0.01); + + accel.acquire_accel_data_g(accel_data); + //accel_rms = sqrt(((accel_data[0]*accel_data[0])+(accel_data[1]*accel_data[1])+(accel_data[2]*accel_data[2]))/3); + printf("%4.5f \t%4.5f \t%4.5f \t%4.5f \n\r",t.read(),accel_data[0],accel_data[1],accel_data[2]); + wait(0.01); + + mag.acquire_mag_data_uT(mag_data); + //mag_rms = sqrt(((mag_data[0]*mag_data[0])+(mag_data[1]*mag_data[1])+(mag_data[2]*mag_data[2]))/3); + printf("%4.5f \t%4.5f \t%4.5f \t%4.5f \n\r",t.read(),mag_data[0],mag_data[1],mag_data[2]); + wait(0.01); + printf("%d\n\r",0); + Thread::wait(500); + + t.reset(); + + } + + + + + + } + Thread::wait(50); } }