Hotkey-Kasten aka e-Zee Box mit Arduino Micro

Gepostet in: Arduino - DIY - Partnerlinks enthalten
Hinweis!
Dieser Beitrag enthält min. einen Partnerlink.

Info zu meinen Partnerlinks
Aufgepasst!
Günstige Hardware und kostenlose eBooks für den Arduino gibt es bei AZ Delivery

Info zu meinen Partnerlinks

Heute habe ich ein lang aufgeschobenes Projekt für Arduino endlich mal umgesetzt und mir eine Art Regie-Pult für meine Streaming-Sessions gebaut, damit ich mir die ganzen Hotkeys für die Szenenwechsel etc. nicht mehr merken muss.

Die Idee war klar: eine kleine Kiste, mit ein paar Tastern, einem USB-Anschluss und los geht’s.

Äh, Moment, kann eines meiner Arduino-Boards (Nano, Uno, Mega) das eigentlich?
Mööööp, nö!

Der kleine, aber feine Unterschied zwischen einem ATmega328P (z.B. Nano, Uno) und einem ATmega32U4 (z.B. Micro, Leonardo) ist der, dass letztgenannter als HI-Device agieren und somit ein Keyboard oder eine Maus simulieren kann.

Nur der ATmega32U4 kann mit der Keyboard.h umgehen und Maus bzw. Keyboard simulieren!

Da das ja genau das ist, was ich brauche, wurde spontan ein Pro Micro bei Amazon geordert und Kleinteilzeugs bei Conrad geshoppt.
Im Detail waren das eine kleine Kiste und ein paar Taster – tastend, nicht rastend. Ein USB-Kabel lag noch in der Teilekiste rum.

Dann ging’s an den Bau:

  • Löcher bohren
  • Taster montieren
  • feststellen, dass das Logo fehlt
  • fluchen
  • Taster demontieren
  • Logo setzen
  • Taster montieren
  • Kabel löten
  • aufregen
  • Kabel löten
  • Kasten zu

Anschließend wurde der Micro programmiert.
Der Code dazu ist wenig aufregend:

  • 2 Arrays (eins hält die Pins, das andere die Decimal-Codes für die Tasten des Num-Blocks)
  • Arrays durchlaufen, um die Pins auf INPUT und HIGH zu setzen
  • Keyboard initialisieren
  • auf Tastendruck warten
  • Tastenkombination an Rechner senden

Das war’s eigentlich auch schon.

Eine hilfreiche Seite, um Keyboard-Eingaben zu testen ist übrigens keyboardtester.com
Die Tasten-Codes für den Num-Block fand ich im Arduino-Forum

Im OBS hab ich dann lediglich die gewünschten Szenen/Funktionen mit den Buttons verknüpft und kann nun fröhlich über die e-Zee Box meinen Stream dirigieren.

Hier noch ein paar Fotos vom Bau und eine kleine Demo meiner schlimmen Visage.

Aktivieren Sie JavaScript um das Video zu sehen.
Video-Link: https://youtu.be/4oiURqqCc-I

Wenn Dir dieser Beitrag geholfen hat und/oder Du mich finanziell unterstützen magst, kannst Du dies gerne per Paypal machen.

Bei Paypal spenden


Alternativ kannst Du Dir meinen Amazon-Partnerlink in die Favoriten legen und Amazon bei Deinen zukünftigen Einkäufen darüber aufrufen:

Amazon Partnerlink

Es entstehen Dir dadurch keine Mehrkosten, ich erhalte aber eine kleine Provision.


Über einen Kommentar freue ich mich natürlich auch :-)


The following two tabs change content below.

Jan B-Punkt

CEO, bitch!
Ich bin Jan, der Hauptakteur bei janbpunkt.de. Naja, eigtl. bin ich sogar der einzige Schreiberling hier. 1980 in Eckernförde geboren, lebe ich aktuell in Kiel und habe Spaß an Technik, Gadgets und dem Internet. Außerdem fotografiere und zocke ich gern. Verständlich, dass die meisten Artikel sich daher auf eben jene Themen beziehen.
Abonnieren
Benachrichtige mich bei
22 Comments
Oldest
Newest Most Voted
Inline Feedbacks
Zeige alle Kommentare
Mario
7 Jahre zuvor

Mahlzeit Jan.
Cooles Ding. Bist Du eigentlich irgendwie Fachinformatiker oder so von Beruf, oder alles auf Hobbybasis gelernt?

Marcus
5 Jahre zuvor

Hi, ich brauchte einen vernünftigen USB-Fußschalter und beim Bass-üben die Musik anzuhalten/loopen etc. Scheinbar bin ich der einzige Mensch auf der Welt, der sowas sucht. Es gibt nämlich nur Plastik-Mist oder superteure Diktierpedalerien (nachdem scythe nicht mehr verfügbar ist). Tss.
Vielen Dank für Deinen Blog.

Stefan
5 Jahre zuvor

Hi Jan,

danke für deine Anleitung. hast du einen Link zu den Schaltern von Conrad? Soweit funktioniert es bei mir. Danke!

Gruß
Stefan

Admin
Jan B-Punkt
5 Jahre zuvor
Reply to  Stefan

Moin Stefan,

habe die Schalter damals im Laden vor Ort gekauft, weil ich sie einmal anfassen wollte, bevor sie mir dann doch nicht gefallen.
Soweit ich das sehe, sind es diese hier https://www.conrad.de/de/tru-components-tc-r13-83a-05bk-drucktaster-250-vac-1-a-1-x-ausein-tastend-1-st-1587719.html

Viele Grüße
Jan

Michael Dworkin
5 Jahre zuvor

Hi,
Ich habe Keyboard Library für ATmega32U4 an Deutsche Layout angepasst.
Alle Umlaute Ä Ü Ö und ß ESZET funktionieren.
https://github.com/MichaelDworkin/Arduino-Leonardo-USB-Keyboard-Deutsch-library

Vielleicht ist diese Bibliothek für jemanden nützlich

Hubi
5 Jahre zuvor

Ich hatte mich gerade mit dem gleichen Problem beschäftigt und die Lösung fast fertig – bis teilweise auf Tasten, die auf der deutschen Tastatur mit AltGr erzeugt werden, z. B. Backslash. Da fand ich bei der Suche nun diese Bibliothek als schon fertige, gute Lösung!!!! Das nicht unwichtige @-Zeichen wird jedoch nicht passend umgesetzt, sondern liefert mit 0x14 ebenfalls ein ‚q‘. Allerdings habe ich dazu aktuell auch keine Lösung. Gibt’s da evtl. noch eine Lösung? Noch eine Anregung: Die meisten Sonderzeichen hinter den Groß- und Kleinbuchstaben (z.B. eckige und geschweifte Klammern) liefern quasi zufällige Ergebnisse. Mit dem Code 0 würden… Weiterlesen »

Michael Dworkin
5 Jahre zuvor
Reply to  Hubi

Hallo Hubi,
ich habe mittlerweile neue Bibliothek geschrieben die alle Zeichen unterstützt.
https://github.com/MichaelDworkin/KeyboardMultiLanguage
schaue dir das Beispiel für Deutsch
https://github.com/MichaelDworkin/KeyboardMultiLanguage/blob/master/examples/KeyboardGerman/KeyboardGerman.ino
Keyboard.println(„abc öÖäÄüÜ ß\nXYZ q@e€\\mµ“);

Hubi
5 Jahre zuvor

Zunächst mal DANKE!!!! – Allerdings hakt es bei mir: Das @-Zeichen wird nicht dargestellt. Außerdem scheint eine Verschiebung in der GE-Mapping-Tabelle ab den Großbuchstaben vorzuliegen. Noch grobem Check liegt das ‚A‘ eine Position zu früh (Hch kann Flas essen, ohne mir zu schaden.). Fügt man dort das ‚@‘ ein, wird’s anscheinend auch nicht genommen.

Manuel Grovejahn
4 Jahre zuvor

Cooles Teil, kannst Du vielleicht die Verdrahtung mal zeigen. Das Bild habe ich gesehen, aber sehe nicht die Pins.

Admin
Jan B-Punkt
4 Jahre zuvor

Wie Du am Code erkennen kannst, habe ich tatsächlich je Taster einen PIN benutzt.

int keypadPins[10] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 16};

Mehr isses tatsächlich nicht :-)

Manuel Grovejahn
4 Jahre zuvor

Super vielen Dank, geniale Lösung :)

Anonym
4 Jahre zuvor

Hallo! Ich komme bei einem ähnlichen Projekt nicht weiter. Wie müsste denn der code aussehen wenn: Taster 1 = Caps Lock (193) ausgeben soll, und wenn Schalter 1 (Schließer) geschlossen ist, Taster 1 = Left Ctrl (128) + Caps Lock (193) ausgeben soll? # #include int keypadPins[4] = {2, 4, 7, 8,}; int keyCode[5] = {128, 193, 225, 226, 227}; //Strg-l.,Feststelltaste,Num-Block 1,2,3 int buttonApin = 2; //Kanal 1, Numpad 1 int buttonBpin = 4; //Kanal 2, Numpad 2 int buttonCpin = 7; //Kanal 3, Numpad 3 int buttonDpin = 8; //Sprechtaste, Feststelltaste int buttonEpin = 12; //Umschaltung gross/klein, Strg-l int… Weiterlesen »

Tony R.
4 Jahre zuvor

Hallo Jan.
Ich helfe einer behinderten Person (älteres Modell, wie ich) beim Einstieg in die PC-Welt. Auf der schweizerischen Tastatur muss sie „Alt Gr“ und die „2“ für den Klammeraffen @ drücken, was sie enhändig aber nicht schafft. Obwohl Windows gewisse Möglickeiten bietet, mache ich ihr lieber ein Böxlein mit den paar Tastenfunktionen, die sie wegen ihrer Behinderung einhändig nicht auslösen kann.
Dein Beitrag hat die Tür geöffnet. Der Leonardo ist bestellt.
Herzlichen Dank!

Andy
3 Jahre zuvor

Hallo,

sehr schöne Idee. Ich würde mir gern sowas bauen, allerdings mit Bluetooth.
Daher 2 Fragen:

  1. Möglich? :)
  2. Geht das, wenn über BT auch mit einem Nano?

Lg Andy

Jürgen
3 Jahre zuvor

Moin moin aus Kiel

Genau sowas habe ich gesucht prima Sache.
Gruß jürgen

Jürgen
3 Jahre zuvor
Reply to  Jan B-Punkt

Moin kann mann die PINs für die tastet direkt auf gnd schalten od lieber ein Widerstand in Reihe schalten
Jürgen

Jürgen
3 Jahre zuvor
Reply to  Jan B-Punkt

So teile sind angekommen.
Klappt schon sehr gut am pc mit Teamspeak.
Nur mit der Handy APP ist es wie ein Blinken wenn ich die Taste drücke u fest halte immer an aus an aus sieht mann auch gut an der led .

Bin leider kein Programmierer