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

Raspberry Pi Pico mit Taster-Modul KY-004

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:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

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

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

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.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren