Raspberry Pi Pico als Zwei-Taster-Tastatur (mit CircuitPython)
Eine Tastatur mit nur einem Taster wird als "Einzeltaster-Tastatur" oder "Ein-Taster-Tastatur" bezeichnet. Den Taster belegt man dabei mit einer häufig genutzten Funktion, die man in bestimmten Situationen schnell erreichen, und nicht auf der Tastatur suchen will.
Beispiele:
- Ein- und Ausschalten des Mikrofons (während einer Videokonferenz)
- Kopieren
- Einfügen
Für diese Funktionen gibt es natürlich Tastenkombinationen, die jedoch umständlich erreichbar und nicht anpassbar sind. Hierfür werden dann programmierbare Einknopf- oder Mini-Tastaturen verwenden.
Denkbar wäre, dass man sich so eine Tastatur mit beliebig vielen Tastern selber baut. In diesem Beispiel unterstützt der Programmcode zwei Taster. Der eine löst die Funktion „Kopieren“ und der zweite die Funktion „Einfügen“ aus. Natürlich kann man weitere und auch andere Tastenkombinationen damit realisieren.
Richtig interessant ist die Lösung für Zeichen, die sich gar nicht auf der Tastatur befinden und dann nur umständlich irgendwo herauskopiert werden müssen. Beispielsweise den Backslash „\“. Das brauchen Programmierer sehr häufig, wenn Sie ein Steuerzeichen im Programmcode einfügen müssen. Auf der Tastatur kommt man da aber nur über eine komplizierte Tastenkombination heran. Wer weiß die schon auswendig?
Aufbau und Bauteile
Der GPIO15 (Pin 20) und GPIO7 (Pin 10) sind deshalb gewählt, damit man ein Taster-Modul vom Typ KY-004 im Steckbrett so einstecken kann, dass man keine Verbindungskabel braucht. Beim Drücken der Taster wird der GPIO mit GND verbunden.
Schnell und einfach alle Bauteile zusammen bestellen
Bibliothek für die USB-Unterstützung in CircuitPython
Damit die USB-Unterstützung in CircuitPython funktioniert, muss eine Bibliothek auf dem Pico installiert sein. Im Prinzip müssen mehrere Dateien in das lib-Verzeichnis kopiert werden.
Programmcode mit CircuitPython
Im folgenden Programmcode werden die GPIOs für die Taster initialisiert. Danach wird der Pico als Tastatur (Keyboard) angemeldet. In der Endlos-Schleife werden die Taster ausgewertet und die Keycodes gesendet.
In diesem Beispiel sollte man nach dem Starten des Programmcodes in einen Texteditor oder Textverarbeitung wechseln, um die Funktionen „Kopieren“ und „Einfügen“ ausprobieren zu können.
# Bibliotheken laden import time import board import digitalio import usb_hid from adafruit_hid.keyboard import Keyboard from adafruit_hid.keycode import Keycode # Initialisierung von GPIO 15 als Eingang btn1 = digitalio.DigitalInOut(board.GP15) btn1.switch_to_input(pull=digitalio.Pull.UP) # Initialisierung von GPIO 7 als Eingang btn2 = digitalio.DigitalInOut(board.GP7) btn2.switch_to_input(pull=digitalio.Pull.UP) # Initialisierung als USB-Tastatur keyboard = Keyboard(usb_hid.devices) # Wiederholung while True: if btn1.value == False: keyboard.send(Keycode.COMMAND, Keycode.C) # Kopieren time.sleep(0.25) # Wartezeit zum Entprellen if btn2.value == False: keyboard.send(Keycode.COMMAND, Keycode.V) # Einfügen time.sleep(0.25) # Wartezeit zum Entprellen time.sleep(0.1)
Beispiele für Taster-Codes (Keycodes)
Kopieren (Strg + C)
Keycode.COMMAND, Keycode.C
Einfügen (Strg + V)
Keycode.COMMAND, Keycode.V
Backslash („\“)
Keycode.OPTION, Keycode.SHIFT, Keycode.SEVEN
Cursor nach rechts (Pfeiltaste nach rechts)
Keycode.RIGHT_ARROW
Cursor nach links (Pfeiltaste nach links)
Keycode.LEFT_ARROW
Cursor nach unten (Pfeiltaste nach unten)
Keycode.DOWN_ARROW
Cursor nach oben (Pfeiltaste nach oben)
Keycode.UP_ARROW
Funktionstasten
Funktionstasten sind spezielle Tasten, die keine Zeichen sind, sondern Funktionen bereitstellen oder nur in Kombination mit anderen Tasten sinnvoll sind.
- Shift: Keycode.SHIFT
- Strg/Ctrl: Keycode.CONTROL
- Alt: Keycode.ALT
- Windows: Keycode.WINDOWS
- option (macOS): Keycode.OPTION / Keycode.ALT
- command (macOS): Keycode.GUI
Weitere verwandte Themen:
- Raspberry Pi Pico als USB-Endgerät (mit CircuitPython)
- Raspberry Pi Pico: Grundlagen zum USB
- Raspberry Pi Pico: Anschlüsse und Schnittstellen
- Raspberry Pi Pico: CircuitPython
Frag Elektronik-Kompendium.de
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.
- LED: Einschalten, ausschalten, blinken und Helligkeit steuern
- Taster: Entprellen und Zustände anzeigen
- LED mit Taster einschalten und ausschalten
- Ampel- und Lauflicht-Steuerung
- Elektronischer Würfel
- Eigene Steuerungen programmieren
Online-Workshop: Programmieren mit dem Raspberry Pi Pico
Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.
Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.