USBMouse

Dependencies:   USBDevice mbed

Committer:
priyankapashte
Date:
Sun Dec 13 10:06:24 2015 +0000
Revision:
0:e062501cfe81
USBDevice library modified

Who changed what in which revision?

UserRevisionLine numberNew contents of line
priyankapashte 0:e062501cfe81 1 #include "mbed.h"
priyankapashte 0:e062501cfe81 2 #include "USBMouse.h"
priyankapashte 0:e062501cfe81 3 #include "Accelerometer.h"
priyankapashte 0:e062501cfe81 4 #include "TouchSensor.h"
priyankapashte 0:e062501cfe81 5
priyankapashte 0:e062501cfe81 6 #define MMA8451_I2C_ADDRESS (0x1d<<1)
priyankapashte 0:e062501cfe81 7
priyankapashte 0:e062501cfe81 8 USBMouse mouse;
priyankapashte 0:e062501cfe81 9 Accelerometer acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
priyankapashte 0:e062501cfe81 10 TouchSensor tsi;
priyankapashte 0:e062501cfe81 11
priyankapashte 0:e062501cfe81 12 typedef enum {NONE = 0, LEFT, RIGHT} Click;
priyankapashte 0:e062501cfe81 13
priyankapashte 0:e062501cfe81 14 int main() {
priyankapashte 0:e062501cfe81 15 int16_t x = 0, y = 0;
priyankapashte 0:e062501cfe81 16 float t;
priyankapashte 0:e062501cfe81 17 Click in_click = NONE;
priyankapashte 0:e062501cfe81 18
priyankapashte 0:e062501cfe81 19 while (1) {
priyankapashte 0:e062501cfe81 20 t = acc.Acc_X();
priyankapashte 0:e062501cfe81 21 t *= 10/1.5;
priyankapashte 0:e062501cfe81 22 y = (int16_t) t;
priyankapashte 0:e062501cfe81 23
priyankapashte 0:e062501cfe81 24 t = acc.Acc_Y();
priyankapashte 0:e062501cfe81 25 t *= 10/1.5;
priyankapashte 0:e062501cfe81 26 x = - (int16_t) t;
priyankapashte 0:e062501cfe81 27
priyankapashte 0:e062501cfe81 28 t = tsi.readPercentage();
priyankapashte 0:e062501cfe81 29
priyankapashte 0:e062501cfe81 30 if (in_click == NONE) {
priyankapashte 0:e062501cfe81 31 if (t > 0.6) {
priyankapashte 0:e062501cfe81 32 mouse.press(MOUSE_LEFT);
priyankapashte 0:e062501cfe81 33 in_click = LEFT;
priyankapashte 0:e062501cfe81 34 } else if (t > 0.1) {
priyankapashte 0:e062501cfe81 35 mouse.press(MOUSE_RIGHT);
priyankapashte 0:e062501cfe81 36 in_click = RIGHT;
priyankapashte 0:e062501cfe81 37 }
priyankapashte 0:e062501cfe81 38 } else if (in_click == LEFT) {
priyankapashte 0:e062501cfe81 39 if (t <= 0.6) {
priyankapashte 0:e062501cfe81 40 mouse.release(MOUSE_LEFT);
priyankapashte 0:e062501cfe81 41 in_click = NONE;
priyankapashte 0:e062501cfe81 42 }
priyankapashte 0:e062501cfe81 43 } else {
priyankapashte 0:e062501cfe81 44 if (t > 0.6 || t <= 0.1) {
priyankapashte 0:e062501cfe81 45 mouse.release(MOUSE_RIGHT);
priyankapashte 0:e062501cfe81 46 in_click = NONE;
priyankapashte 0:e062501cfe81 47 }
priyankapashte 0:e062501cfe81 48 }
priyankapashte 0:e062501cfe81 49
priyankapashte 0:e062501cfe81 50 mouse.move(x, y);
priyankapashte 0:e062501cfe81 51 wait(0.001);
priyankapashte 0:e062501cfe81 52 }
priyankapashte 0:e062501cfe81 53 }