Will Porter
/
FinalProjectKeyboard
Boundary mods
Fork of FinalProjectKeyboard by
main.cpp
- Committer:
- wretrop
- Date:
- 2016-04-27
- Revision:
- 1:8546d208bd4f
- Parent:
- 0:f23fd07d1d96
- Child:
- 2:5fec7dd286d2
File content as of revision 1:8546d208bd4f:
#include "mbed.h" #include "USBKeyboard.h" Serial pc(USBTX, USBRX); AnalogIn inputx(PTB0); // AnalogIn inputx(PTB0); AnalogIn inputy(PTB1); //AnalogIn inputy(PTB1); AnalogIn inputz(PTB2); //AnalogIn inputz(PTB2); Timeout debounceUp; Timeout debounceDown; Timeout middle1; Timeout middle2; PwmOut led1(LED1); PwmOut led2(LED2); PwmOut led3(LED3); int xR; int yR; int zR; int sumX; int sumY; int sumZ; int x1=0; // variable for initialization int y1=0; // variable for initialization int z1=0; // variable for initialization int x=0; // variable for x axes int y=0; // variable for y axes int z=0; // variable for z axes bool midFl1 = 1; bool midFl2 = 1; bool dwn = 0; bool up = 0; void DBUp(){ up = 0; } void DBDown(){ dwn = 0; } void mid1(){ midFl1 = 1; } void mid2(){ midFl2 = 1; } int main() { //led1=0.9; pc.baud(9600); // baud rate: 9600 bps interaction with computer wait(1); for(int i =0; i < 10;i++){ xR = inputx.read_u16(); yR = inputy.read_u16(); zR = inputz.read_u16(); sumX += xR; sumY += yR; sumZ += zR; } x1 = sumX/10; y1 = sumY/10; z1 = sumZ/10; //************Eric Algorithm****************** int status[]={0,0}; //0 means break,1 is up, 2 is down. status(0) is last, status(1) is current int L=1; // 0 = not outputting, =1 is ouputting //******************************************** USBKeyboard keyboard; while (true) { L=1; z = inputz.read_u16()-z1; //Calibration x = inputx.read_u16()-x1; //Calibration y = inputy.read_u16()-y1; //Calibration // pc.printf("X: %d Y: %d Z: %d \n\r", x,y,z); //Establish Up if (x > -800 && y < 1500 && up == 0) { // status[0] = status[1]; // status[1] = 1; // pc.printf("Down"); keyboard.keyCode(UP_ARROW); led1 = 1; led2 = 0.9; led3 = 1; up = 1; debounceUp.attach(&DBDown, 0.100); // up = 0; } //Establish Down if(x < -3500 && y > 5000 && dwn == 0) { // status[0] = status[1]; // status[1] = 2; // pc.printf("Up"); keyboard.keyCode(DOWN_ARROW); led1 = 1; led2 = 1; led3 = 0.9; dwn = 1; debounceDown.attach(&DBUp, 0.100); // dwn = 0; } //When not moving if (x < -2000 && x > -3000 && y < 4000 && y > 3000 && midFl1 == 1){ // dwn = 0; up = 0; midFl1 = 0; middle1.attach(&mid1,0.50); led1 = 0.9; led2 = 1; led3 = 1; } if (x < -1000 && x > -2800 && y < 3000 && y > 2000 && midFl2 == 1){ dwn = 0; // up = 0; midFl2 = 0; middle2.attach(&mid2,0.50); led1 = 0.9; led2 = 0.9; led3 = 1; } wait_ms(50); } }