Text entry while you ride a bike! Because you don't already have enough to think about while riding.

Dependencies:   DebouncedEdgeIn mbed

main.cpp

Committer:
martincowell
Date:
2014-09-22
Revision:
0:913f85486ace

File content as of revision 0:913f85486ace:

#include "mbed.h"
#include "DebouncedEdgeIn.h"
#include "USBMouseKeyboard.h"

DigitalOut myled1(LED_RED,1);
DigitalOut myled2(LED_GREEN,1);
DigitalOut myled3(LED_BLUE,1);

DigitalIn b0(D13);
DigitalIn b1(D7);
DebouncedEdgeIn b2(D9);
DebouncedEdgeIn b3(D10);
DebouncedEdgeIn b4(D11);
DebouncedEdgeIn b5(D12);
DebouncedEdgeIn b6(D3);
DebouncedEdgeIn b7(D4);
DebouncedEdgeIn b8(D5);
DebouncedEdgeIn b9(D6);

// SPST Pushbutton demo using internal PullUp function
// no external PullUp resistor needed
// Pushbutton from D2 to GND.
Serial pc(USBTX, USBRX);
//To output in terminal:
//ls /dev/tty.usbmodem*
//determine port number XXXX for input below
//screen /dev/tty.usbmodemXXXX 9600

//USBMouseKeyboard
//USBMouseKeyboard key_mouse;

void a(){
    if(b0.read()&&b1.read()){
        pc.printf("a");
        //key_mouse.printf("a");
    }
    if(!b0.read()&&b1.read()){
        pc.printf("h");
        //key_mouse.printf("h");
    }
    if(b0.read()&&!b1.read()){
        pc.printf("o");
        //key_mouse.printf("o");
    }
    if(!b0.read()&&!b1.read()){
        pc.printf("v");
        //key_mouse.printf("v");
    }
}
    
void b(){
    if(b0.read()&&b1.read()){
        pc.printf("b");
        //key_mouse.printf("b");
    }
    if(!b0.read()&&b1.read()){
        pc.printf("i");
        //key_mouse.printf("i");
    }
    if(b0.read()&&!b1.read()){
        pc.printf("p");
        //key_mouse.printf("p");
    }
    if(!b0.read()&&!b1.read()){
        pc.printf("w");
        //key_mouse.printf("w");
    }
}

void c(){
    if(b0.read()&&b1.read()){
        pc.printf("c");
        //key_mouse.printf("cat");
    }
    if(!b0.read()&&b1.read()){
        pc.printf("j");
        //key_mouse.printf("j");
    }
    if(b0.read()&&!b1.read()){
        pc.printf("q");
        //key_mouse.printf("q");
    }
    if(!b0.read()&&!b1.read()){
        pc.printf("x");
        //key_mouse.printf("x");
    }
}

void d(){
    if(b0.read()&&b1.read()){
        pc.printf("d");
        //key_mouse.printf("d");
    }
    if(!b0.read()&&b1.read()){
        pc.printf("k");
        //key_mouse.printf("k");
    }
    if(b0.read()&&!b1.read()){
        pc.printf("r");
        //key_mouse.printf("r");
    }
    if(!b0.read()&&!b1.read()){
        pc.printf("y");
        //key_mouse.printf("y");
    }
}

void e(){
    if(b0.read()&&b1.read()){
        pc.printf("e");
        //key_mouse.printf("e");
    }
    if(!b0.read()&&b1.read()){
        pc.printf("l");
        //key_mouse.printf("l");
    }
    if(b0.read()&&!b1.read()){
        pc.printf("s");
        //key_mouse.printf("s");
    }
    if(!b0.read()&&!b1.read()){
        pc.printf("z");
        //key_mouse.printf("z");
    }
}

void f(){
    if(b0.read()&&b1.read()){
        pc.printf("f");
        //key_mouse.printf("f");
    }
    if(!b0.read()&&b1.read()){
        pc.printf("m");
        //key_mouse.printf("m");
    }
    if(b0.read()&&!b1.read()){
        pc.printf("t");
        //key_mouse.printf("t");
    }
    if(!b0.read()&&!b1.read()){
        pc.printf("!");
        //key_mouse.printf("!");
    }
}

void g(){
    if(b0.read()&&b1.read()){
        pc.printf("g");
        //key_mouse.printf("g");
    }
    if(!b0.read()&&b1.read()){
        pc.printf("n");
        //key_mouse.printf("n");
    }
    if(b0.read()&&!b1.read()){
        pc.printf("u");
        //key_mouse.printf("u");
    }
    if(!b0.read()&&!b1.read()){
        pc.printf("?");
        //key_mouse.printf("?");
    }
}
void space(){
    pc.printf(" ");
    //key_mouse.printf(" ");
}

int main() {
    b0.mode(PullUp);
    b1.mode(PullUp);
    b2.mode(PullUp);
    b3.mode(PullUp);
    b4.mode(PullUp);
    b5.mode(PullUp);
    b6.mode(PullUp);
    b7.mode(PullUp);
    b8.mode(PullUp);
    b9.mode(PullUp);
    
    b2.fall(&a);
    b3.fall(&b);
    b4.fall(&c);
    b5.fall(&d);
    b6.fall(&e);
    b7.fall(&f);
    b8.fall(&g);
    b9.fall(&space);
    
    pc.printf("Initialized\r\n");
    //key_mouse.printf("Initialized\r\n");
    
    while(1) {
        myled1 = b2;
        myled2 = b3;
        myled3 = b4;
        //if(!b0){
//            key_mouse.printf("zz");
//        }
    }
}