Submitted by Angela Hsueh, Maya Mardini, Yi Tong Slingshot controller using a force sensor and accelerometer for an Angry Birds clone game.

Dependencies:   LSM303DLHC MMA8451Q PinDetect USBDevice mbed

Fork of hw3_controller by HW3 Controller Team!

Revision:
3:f3520156ca98
Parent:
2:31cf09b1ad9c
Child:
4:fea2289b42cd
--- a/main.cpp	Sat Sep 19 23:48:14 2015 +0000
+++ b/main.cpp	Sun Sep 20 04:10:35 2015 +0000
@@ -11,6 +11,7 @@
 PinName const SDA = D14;
 PinName const SCL = D15;
 PinDetect button(D2);
+AnalogIn fsr(A5);
 #define MMA8451_I2C_ADDRESS (0x1d<<1)
 
 //serial connection to PC via USB
@@ -18,6 +19,8 @@
 LSM303DLHC lsm(SDA, SCL);
 USBMouseKeyboard mouseKey;
 
+float prevFsrVal;
+
 // acc and mag values
     float ax, ay, az;
     float mx, my, mz;
@@ -100,7 +103,33 @@
     my1 = 0; my2 = 0;
     mz1 = 0; mz2 = 0;
 
-    while (true) {
+    float fsrVal;
+    int mouseDistance;
+    int mouseMovement;
+    
+    while (1) {
+        fsrVal = fsr.read();
+
+        if (mouseDistance < 100) {
+            if (fsrVal < prevFsrVal)
+                mouseMovement = (int) (-fsrVal*8);  
+            else          
+                mouseMovement = (int) (fsrVal*8);
+            mouseKey.printf("movement %0d ", mouseMovement);   
+            mouseKey.move(mouseMovement,0); 
+            mouseDistance = mouseDistance + mouseMovement;
+            mouseKey.printf("distance %0d \n", mouseDistance);
+        }
+        wait(2);
+        prevFsrVal = fsrVal;
+        if (fsrVal == 0){
+             mouseKey.printf("clear %0d \n", mouseDistance);
+             mouseKey.move(-mouseDistance, 0);
+             mouseDistance = 0;
+             }
+    }
+
+    while (0) {
         //lsm.read(&ax, &ay, &az, &mx, &my, &mz); //get acceleration
 
         // While button is pressed, keep polling position for mouse pointer.