kekw

Dependencies:   mbed C12832_lcd MMA7660

Committer:
gri
Date:
Sun Jan 19 14:57:41 2020 +0000
Revision:
2:b07d155d316c
KEKw

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gri 2:b07d155d316c 1 #include "mbed.h"
gri 2:b07d155d316c 2 #include "MMA7660.h"
gri 2:b07d155d316c 3 #include "C12832_lcd.h"
gri 2:b07d155d316c 4 #include "USBMouse.h"
gri 2:b07d155d316c 5
gri 2:b07d155d316c 6 C12832_LCD lcd;
gri 2:b07d155d316c 7 USBMouse mouseOne;
gri 2:b07d155d316c 8 MMA7660 MMAOne(p28, p27);
gri 2:b07d155d316c 9
gri 2:b07d155d316c 10 DigitalIn click(p14);
gri 2:b07d155d316c 11 DigitalIn left(p13);
gri 2:b07d155d316c 12 DigitalIn right(p16);
gri 2:b07d155d316c 13 DigitalIn up(p15);
gri 2:b07d155d316c 14 DigitalIn down(p12);
gri 2:b07d155d316c 15
gri 2:b07d155d316c 16 AnalogIn potX(p19);
gri 2:b07d155d316c 17 AnalogIn potY(p20);
gri 2:b07d155d316c 18
gri 2:b07d155d316c 19 class controller{
gri 2:b07d155d316c 20 public:
gri 2:b07d155d316c 21 virtual int calculateX(int x){ return x; }
gri 2:b07d155d316c 22 virtual int calculateY(int y){ return y; }
gri 2:b07d155d316c 23 virtual void leftClick(){
gri 2:b07d155d316c 24 if(click == 1){
gri 2:b07d155d316c 25 mouseOne.buttons(1,0,0);
gri 2:b07d155d316c 26 wait(0.2);
gri 2:b07d155d316c 27 }
gri 2:b07d155d316c 28 }
gri 2:b07d155d316c 29 virtual void moveCursor() {lcd.printf("Test\n\r");}
gri 2:b07d155d316c 30 protected:
gri 2:b07d155d316c 31 int x,y;
gri 2:b07d155d316c 32 };
gri 2:b07d155d316c 33 class accelController: public controller{
gri 2:b07d155d316c 34 public:
gri 2:b07d155d316c 35 accelController(){
gri 2:b07d155d316c 36 x = 0;
gri 2:b07d155d316c 37 y = 0;
gri 2:b07d155d316c 38 }
gri 2:b07d155d316c 39 int calculateX(){ return (this->x + MMAOne.x() * 32.0)/2.0; }
gri 2:b07d155d316c 40 int calculateY(){ return (this->y - MMAOne.y() * 16.0)/2.0; }
gri 2:b07d155d316c 41 void moveCursor(){
gri 2:b07d155d316c 42 x = calculateX();
gri 2:b07d155d316c 43 y = calculateY();
gri 2:b07d155d316c 44 wait(.1); //time delay
gri 2:b07d155d316c 45 mouseOne.move((-x)*2, (-y)*2);
gri 2:b07d155d316c 46 leftClick();
gri 2:b07d155d316c 47 }
gri 2:b07d155d316c 48 };
gri 2:b07d155d316c 49 class joystickController: public controller{
gri 2:b07d155d316c 50 public:
gri 2:b07d155d316c 51 joystickController(){
gri 2:b07d155d316c 52 x = 0;
gri 2:b07d155d316c 53 y = 0;
gri 2:b07d155d316c 54 }
gri 2:b07d155d316c 55 void calculateX(){
gri 2:b07d155d316c 56 if(left == 1){ this->x = (this->x - (25)) / 3; } // move mouse left
gri 2:b07d155d316c 57 else if(right == 1){ this->x = (25) / 2; } // move mouse right
gri 2:b07d155d316c 58 else{ this->x = 0; } // keeps mouse stationary
gri 2:b07d155d316c 59 }
gri 2:b07d155d316c 60 void calculateY(){
gri 2:b07d155d316c 61
gri 2:b07d155d316c 62 if(up == 1){ this->y = (this->y - (25)) / 3; } // move mouse down
gri 2:b07d155d316c 63 else if(down == 1){ this->y = (25) / 2; } // move mouse up
gri 2:b07d155d316c 64 else{ this->y = 0; } // keeps mouse stationary
gri 2:b07d155d316c 65 }
gri 2:b07d155d316c 66 void moveCursor(){
gri 2:b07d155d316c 67 calculateX();
gri 2:b07d155d316c 68 calculateY();
gri 2:b07d155d316c 69 mouseOne.buttons(0,0,0);
gri 2:b07d155d316c 70 mouseOne.move(x, y);
gri 2:b07d155d316c 71 leftClick();
gri 2:b07d155d316c 72 wait(0.001);
gri 2:b07d155d316c 73 }
gri 2:b07d155d316c 74 };
gri 2:b07d155d316c 75 class potController: public controller{
gri 2:b07d155d316c 76 int16_t a_inx;
gri 2:b07d155d316c 77 int16_t a_iny;
gri 2:b07d155d316c 78 public:
gri 2:b07d155d316c 79 potController(){
gri 2:b07d155d316c 80 x = 0;
gri 2:b07d155d316c 81 y = 0;
gri 2:b07d155d316c 82 }
gri 2:b07d155d316c 83 void calculateX(){
gri 2:b07d155d316c 84 a_inx = (int16_t)(potY.read() * 100.0);
gri 2:b07d155d316c 85 if(a_inx > 52){x = (x - (50 - a_inx)) / 3;}
gri 2:b07d155d316c 86 else if(a_inx < 47){x = (a_inx - 50) / 2;}
gri 2:b07d155d316c 87 else{x = 0;}
gri 2:b07d155d316c 88 }
gri 2:b07d155d316c 89 void calculateY(){
gri 2:b07d155d316c 90 a_iny = (int16_t)(potX.read() * 100.0);
gri 2:b07d155d316c 91 if(a_iny > 52 && a_iny != 99){ y = (y - (50 - a_iny)) / 3; }
gri 2:b07d155d316c 92 else if(a_iny < 47){ y = (a_iny - 50) / 2; }
gri 2:b07d155d316c 93 else{ y = 0; }
gri 2:b07d155d316c 94 }
gri 2:b07d155d316c 95 void moveCursor(){
gri 2:b07d155d316c 96
gri 2:b07d155d316c 97 calculateX();
gri 2:b07d155d316c 98 calculateY();
gri 2:b07d155d316c 99 leftClick();
gri 2:b07d155d316c 100 mouseOne.move(x, y);
gri 2:b07d155d316c 101 wait(0.001);
gri 2:b07d155d316c 102 }
gri 2:b07d155d316c 103
gri 2:b07d155d316c 104 };