Zuviel ⌘ + Z gedrückt – und Angst, dass die zwei Tasten überbeansprucht werden? 😉 Du brauchst für eine Ausstellung nur vier Tasten und nicht die gesamte Tastatur? Oder willst einfach wissen, wie so eine Tastatur grundlegend funktioniert? Alles was du für die Eigenbau- Tastatur benötigst, erfährst du hier.
Was brauchst du dazu?
Zutaten
- 1 x Arduino Pro Micro
- 10 Knöpfe und Keycaps
- 10K ohm resistors
- Assorted hookup wires
- 1 x 220 ohm resistors
- 1 Plexiglas Hülle
Werkzeuge
- Lötkolben
- Lot
- evt. Entlötpumpe oder Entlötlitze
- Micro-USB Kabel
Löten
Grundsätzlich ist die elektrische Schaltung sehr simpel gehalten. Jeder Knopf wird mit VCC (Plus) und GND (Minus) verbunden und die Verkabelung zu den DigitalPins (2 – 8) angebracht. Die Länge der Litze zu den DigitalPins sollte ca. 10cm betragen. Den Ground kannst du direkt mit den Beinen der Wiederstände legen. Die Wiederstände sind wichtig! Lässt du diese weg, sendest du bei einem Knopfdruck den gesamten Output des Boards unverbraucht auf den Grund zurück. Das kann dein Board beschädigen.
Schaltpläne
In real life
Programmierung
Arduino IDE Vorbereitung
Um den Microcontroller zu programmieren, benutzen wir die Arduino IDE. Nach der ersten Installation ist das Micro Pro Board noch nicht in der Boardliste aufgeführt. (>tools >board)
Um das Pro Micro in deine Boardliste zu installieren, kopierst du die kommende URL unter (>Arduino >Einstellungen) in “Additional Boards Manager URL`s”.
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json
Nun geht’s los
Wir verwenden einen Microcontroller mit:
Arduino Modifier Keys
Code:
#include <Keyboard.h> // einbinden der Keyboard.h int keys[] = {2, 3, 4, 5, 6, 7, 8}; void setup() { // put your setup code here, to run once: Keyboard.begin(); // setup keyboard for (int i = 2; i < 9; ++i) { // initilize pins pinMode(i, INPUT); } } void loop() { // put your main code here, to run repeatedly: for (int i = 2; i < 9; ++i) { // check buttons if(readButton(i)) { doAction(i); } } } boolean readButton(int pin) { // check and debounce buttons if (digitalRead(pin) == HIGH) { delay(10); if (digitalRead(pin) == HIGH) { return true; } } return false; } void doAction(int pin) { // perform tasks switch (pin) { case 2: Keyboard.println("drive.google.com"); break; case 3: Keyboard.println("mediaelab.ch"); break; case 4: // CMD + T (new tab, Chrome) Keyboard.press(KEY_LEFT_GUI); Keyboard.press('t'); delay(100); Keyboard.releaseAll(); break; case 5: // your task here break; case 6: // your task here break; case 7: // your task here break; case 8: // your task here break; case 9: // your task here break; } }
Shortcut Listen
Ascii Nummern Liste
Falls du deine Tasten über Ascii-code ansteuern willst, findest du hier: Ascii Table. Achtung: Nicht alle Ascii-Zeichen werden von der Arduino Keyboard-Library unterstützt!
Wenn dir dein Arduino eine Liste der möglichen Zeichen generieren soll, kannst du die folgenden Zeilen in deinen Code einfügen und über den Serial Monitor der Liste beim Wachsen zusehen.
case 5: for ( int k = 32; k < 127; k++ ) { Keyboard.print(k); Keyboard.write(62); Keyboard.write(k); Keyboard.println(' '); } delay(500); Keyboard.releaseAll(); break;
Extended Keyboards
Mit diesem Keyboard lassen sich wunderbar interaktive Installationen mit Max MSP oder PureData realisieren. Mit Hilfe eines DYI Keyboards wurde zum Beispiel die Arbeit Jerusalem Stone von Flurin Bertschiger realisiert.