![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
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
Diff: main.cpp
- 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.