Classic multi-tap touch device with enter key. Allows for multiple keys to be entered at once.

Dependencies:   DebouncedEdgeIn USBDevice mbed

Fork of idd_hw2_martincowell_bicyclehid by Interactive Device Design

Revision:
0:913f85486ace
Child:
1:6b9c38f0638d
diff -r 000000000000 -r 913f85486ace main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Sep 22 15:59:43 2014 +0000
@@ -0,0 +1,201 @@
+#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");
+//        }
+    }
+}
\ No newline at end of file