HW2 entry for Peter Gao. One handed keyboard using push buttons and a laser-cut box.
Dependencies: DebounceIn USBDevice mbed
main.cpp
- Committer:
- pgao
- Date:
- 2014-09-22
- Revision:
- 0:98ac2b055ab9
File content as of revision 0:98ac2b055ab9:
#include "mbed.h" #include "DebounceIn.h" #include "USBKeyboard.h" USBKeyboard keyboard; Serial pc(USBTX, USBRX); DebounceIn buttons[] = {D15, D14, D13, D12, D11, D10, D9, D8, D7, D6}; DigitalOut capslock_light(LED1); int num_buttons = 10; int is_capital = 0; float key_delay = 0.2; int main() { for (int i = 0; i < num_buttons; i++) { buttons[i].mode(PullUp); pc.printf("button %d is in pullup\n", i); } capslock_light = 1; is_capital = 0; pc.printf("starting loop"); while(1) { for (int i = 2; i < num_buttons; i++) { if (!buttons[0] && !buttons[1]) { if (!buttons[4]) { // space keyboard.keyCode(' '); wait(key_delay); continue; } else if (!buttons[5]) { // backspace char backspace = 8; keyboard.keyCode(backspace); wait(key_delay); continue; } else if (!buttons[6]) { // capslock capslock_light = !capslock_light; keyboard.keyCode(KEY_CAPS_LOCK); wait(key_delay); continue; } } char base_char = 'a'; if (!buttons[0] && !buttons[1]) { base_char = 'y'; } else if (!buttons[0]) { base_char = 'i'; } else if (!buttons[1]) { base_char = 'q'; } if (!buttons[i]) { keyboard.keyCode(base_char + i - 2); wait(key_delay); } } } }