Cubic Hand project for EECS 249A course.

Dependencies:   MMA8451Q TSI cc3000_hostdriver_mbedsocket NVIC_set_all_priorities mbed Multi_WS2811

Revision:
51:09796a9ee78d
Parent:
49:361833355173
Child:
52:0f7a239cdd09
--- a/GestureRecognition.cpp	Thu Dec 11 17:51:37 2014 +0000
+++ b/GestureRecognition.cpp	Thu Dec 11 18:33:50 2014 +0000
@@ -20,26 +20,34 @@
     returnParams.deltaX = 0;
     returnParams.deltaY = 0;
     returnParams.deltaZ = 0;
-    int fingerThreshold = 50;
+    float fingerThreshold = 50.0;
+    float thumbThreshold = 20.0;
     if (++counter >= MAX_COUNT) { 
         returnParams.size = 4;
+        secondCounter++;
+        bool fBent[5];
+        for (int iter = 0; iter < 5; iter++) {
+            if (iter < 4)
+                fBent[iter] = (data.fingers[iter] > fingerThreshold);
+            else
+                fBent[iter] = (data.fingers[iter] > thumbThreshold);
+        }
         if (secondCounter > 3) {
-            printf("%f\r\n", data.fingers[0]);
+            //printf("%d %d %d %d %d\r\n", fBent[0], fBent[1], fBent[2], fBent[3], fBent[4]);
             secondCounter = 0;
         }
-        secondCounter++;
-        //Change size based on finger gesture    
-        /*if (data.fingers[0] > fingerThreshold && data.fingers[1] > fingerThreshold && data.fingers[2] > fingerThreshold && data.fingers[3] < fingerThreshold &&  data.fingers[4] > fingerThreshold ) 
+        // Change size based on finger gesture    
+        if (fBent[0] && fBent[1] && fBent[2] && (!fBent[3]) && fBent[4]) 
             returnParams.size = 2; 
-        else if (data.fingers[0] > fingerThreshold && data.fingers[1] > fingerThreshold && data.fingers[2] < fingerThreshold && data.fingers[3] < fingerThreshold &&  data.fingers[4] > fingerThreshold ) 
+        else if (fBent[0] && fBent[1] && (!fBent[2]) && (!fBent[3]) && fBent[4]) 
             returnParams.size = 4; 
-        else if (data.fingers[0] > fingerThreshold && data.fingers[1] < fingerThreshold && data.fingers[2] < fingerThreshold && data.fingers[3] < fingerThreshold &&  data.fingers[4] > fingerThreshold ) 
+        else if (fBent[0] && (!fBent[1]) && (!fBent[2]) && (!fBent[3]) && fBent[4]) 
             returnParams.size = 6; 
-        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; */
+        else if ((!fBent[0]) && (!fBent[1]) && (!fBent[2]) && (!fBent[3]) && fBent[4]) 
+            returnParams.size = 8;
         //Change color    
      //   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;    
+            //returnParams.hue = data.fingers[3]/150.0;    
        // }
         
         //Change position. Roll, pitch, and yaw are given as degrees.