Cubic Hand project for EECS 249A course.

Dependencies:   MMA8451Q TSI cc3000_hostdriver_mbedsocket NVIC_set_all_priorities mbed Multi_WS2811

Revision:
49:361833355173
Parent:
48:2ba6321d79fc
Child:
51:09796a9ee78d
--- a/GestureRecognition.cpp	Thu Dec 11 14:06:34 2014 +0000
+++ b/GestureRecognition.cpp	Thu Dec 11 17:49:21 2014 +0000
@@ -5,34 +5,42 @@
 
 GestureRecognition::GestureRecognition(){ 
     counter = 0;  
+    secondCounter = 0;
 }
 
 GestureRecognition::~GestureRecognition(){
 }
 
 
-//Finger data is given in range of 0-150. 1500 = finger is bent. 0 = finger is straight out. 
+//Finger data is given in range of 0-150. 150 = finger is bent. 0 = finger is straight out. 
 
 CubeUpdateParameters GestureRecognition::sensorToGesture(Glove data){
-            CubeUpdateParameters returnParams; 
-            returnParams.size = 0;
-            returnParams.deltaX = 0;
-            returnParams.deltaY = 0;
-            returnParams.deltaZ = 0;
-    if (++counter == MAX_COUNT) { 
+    CubeUpdateParameters returnParams; 
+    returnParams.size = 0;
+    returnParams.deltaX = 0;
+    returnParams.deltaY = 0;
+    returnParams.deltaZ = 0;
+    int fingerThreshold = 50;
+    if (++counter >= MAX_COUNT) { 
+        returnParams.size = 4;
+        if (secondCounter > 3) {
+            printf("%f\r\n", data.fingers[0]);
+            secondCounter = 0;
+        }
+        secondCounter++;
         //Change size based on finger gesture    
-        if (data.fingers[0] > 75 && data.fingers[1] > 75 && data.fingers[2] > 75 && data.fingers[3] < 75 &&  data.fingers[4] > 75 ) 
+        /*if (data.fingers[0] > fingerThreshold && data.fingers[1] > fingerThreshold && data.fingers[2] > fingerThreshold && data.fingers[3] < fingerThreshold &&  data.fingers[4] > fingerThreshold ) 
             returnParams.size = 2; 
-        else if (data.fingers[0] > 75 && data.fingers[1] > 75 && data.fingers[2] < 75 && data.fingers[3] < 75 &&  data.fingers[4] > 75 ) 
+        else if (data.fingers[0] > fingerThreshold && data.fingers[1] > fingerThreshold && data.fingers[2] < fingerThreshold && data.fingers[3] < fingerThreshold &&  data.fingers[4] > fingerThreshold ) 
             returnParams.size = 4; 
-        else if (data.fingers[0] > 75 && data.fingers[1] < 75 && data.fingers[2] < 75 && data.fingers[3] < 75 &&  data.fingers[4] > 75 ) 
+        else if (data.fingers[0] > fingerThreshold && data.fingers[1] < fingerThreshold && data.fingers[2] < fingerThreshold && data.fingers[3] < fingerThreshold &&  data.fingers[4] > fingerThreshold ) 
             returnParams.size = 6; 
-        else if (data.fingers[0] < 75 && data.fingers[1] < 75 && data.fingers[2] < 75 && data.fingers[3] < 75 &&  data.fingers[4] > 75 ) 
-            returnParams.size = 8;
+        else if (data.fingers[0] < fingerThreshold && data.fingers[1] < fingerThreshold && data.fingers[2] < fingerThreshold && data.fingers[3] < 75 &&  data.fingers[4] > 75 ) 
+            returnParams.size = 8; */
         //Change color    
-        else if (data.fingers[0] > 75 && data.fingers[1] > 75 && data.fingers[2] > 75 &&  data.fingers[4] > 75 ) {
+     //   else if (data.fingers[0] > fingerThreshold && data.fingers[1] > fingerThreshold && data.fingers[2] > fingerThreshold &&  data.fingers[4] > fingerThreshold ) {
             returnParams.hue = data.fingers[3]/150.0;    
-        }
+       // }
         
         //Change position. Roll, pitch, and yaw are given as degrees. 
         if (data.roll > 10 )
@@ -44,9 +52,9 @@
         else if (data.pitch < -10)
             returnParams.deltaZ = -1;
         if (data.yaw > 10)
-            returnParams.deltaY = 1;
+            returnParams.deltaY = -1;
         else if (data.yaw + 360 > 10 && data.yaw < 0)
-            returnParams.deltaY = -1;
+            returnParams.deltaY = 1;
            
         counter = 0;