Control your mouse pointer with FRDM KL25Z - Accelerometer and Touch
Dependencies: MMA8451Q TSI USBDevice mbed
code.cpp
- Committer:
- mrbhatter
- Date:
- 2017-11-30
- Revision:
- 0:3b80be0917e1
File content as of revision 0:3b80be0917e1:
/*Air mouse using USB HID with Sensitivity adjustment. 4 values of sensitivity and option is taken from user through serial.*/ #include "mbed.h" #include "USBMouse.h" #include "MMA8451Q.h" #include "TSISensor.h" #define MMA8451_I2C_ADDRESS (0x1d<<1) MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS); Serial pc(USBTX, USBRX); // tx, rx TSISensor tsi; USBMouse mouse; int main() { int16_t x = 0; int16_t y = 0; int s=10; char c='b'; pc.printf("Enter level of sensitivity (a-d) : "); while(1) { if (pc.readable()) { c = pc.getc(); switch(c) { case 'a': s = 20; break; case 'b': s = 40; break; case 'c': s = 80; break; case 'd': s = 100; break; default: s = 10; break; } } x = -s*(acc.getAccX()); y = s*acc.getAccY(); mouse.move(x,y); //left click if (tsi.readPercentage() > 0.7) { mouse.press(MOUSE_LEFT); } else { mouse.release(MOUSE_LEFT); } //right click if (tsi.readPercentage() < 0.3 && tsi.readPercentage() > 0) { mouse.press(MOUSE_RIGHT); } else { mouse.release(MOUSE_RIGHT); } } }