Cubic Hand project for EECS 249A course.
Dependencies: MMA8451Q TSI cc3000_hostdriver_mbedsocket NVIC_set_all_priorities mbed Multi_WS2811
Diff: GestureRecognition.cpp
- Revision:
- 51:09796a9ee78d
- Parent:
- 49:361833355173
- Child:
- 52:0f7a239cdd09
diff -r 0f1e32776c8f -r 09796a9ee78d GestureRecognition.cpp --- 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.