Raspberry Pi Pico als USB-Endgerät
Eine Besonderheit des Raspberry Pi Pico ist die Integration des USB im Mikrocontroller RP2040. Das heißt, der Pico lässt sich sehr leicht als USB-Endgerät an einem Host-Computer anmelden. Der Pico kann dabei theoretisch jedes beliebige USB-Gerät emulieren. Ab MicroPython Version 1.23.0 werden Benutzer-definierte USB-Geräte unterstützt. Das heißt, man kann den Raspberry Pi Pico als USB-Gerät anmelden und den Host-Computer steuern. Es gibt auch mehrere Bibliotheken, die es sehr einfach machen, eine HID-Steuerung (Human Interface Device) in einen Programmcode zu integrieren. Der Raspberry Pi Pico kann dann zum Beispiel als Tastatur oder Maus fungieren.
Die Kombination aus Raspberry Pi Pico und MicroPython mit USB-Unterstützung ermöglicht in nur wenigen Schritten kreative Eingabe- und Steuerungsprojekte.
MicroPython-Bibliothek installieren
Mit der Thonny Python IDE ist die Unterstützung für USB-Endgeräte leicht zu installieren.
Hier verwendet man im Menü "Werkzeug / Verwalte Pakete ..." den integrierten Paketmanager.
- Für die Emulation einer Computermaus muss nach "usb-device-mouse" gesucht und "usb-device-mouse @ micropython-lib" installiert werden.
- Für die Emulation einer Tastatur muss nach "usb-device-keyboard" gesucht und "usb-device-keyboard @ micropython-lib" installiert werden.
MicroPython: Programmcode als USB-Computermaus
Der Programmcode meldet den Raspberry Pi Pico als Computer-Maus am USB an. Dabei geht die Verbindung zur Thonny Python IDE verloren. Anschließend führt der Programmcode zwei Funktionen aus:
- Der Mauszeiger wird mehrmals nach rechts und links bewegt. Er springt hin und her.
- Dann wird die rechte Maustaste gedrückt und wieder losgelassen. Je nach dem wo der Mauszeiger gerade steht, öffnet sich ein Optionsfenster und schließt sich wieder.
# Bibliotheken laden import time import usb.device from usb.device.mouse import MouseInterface # Pico als Computer-Maus initialisieren mouse = MouseInterface() usb.device.get().init(mouse, builtin_driver=True) # Warten, bis das USB-Device angemeldet ist while not mouse.is_open(): time.sleep(1) # Mauszeiger bewegen for _ in range (3): mouse.move_by(+100, 0) # horizontal, vertikal time.sleep(2) mouse.move_by(-100, 0) # horizontal, vertikal time.sleep(2) # Rechte Maustasten drücken mouse.click_right(True) time.sleep(1) mouse.click_right(False)
Um den Programmcode noch mal ausführen oder ändern zu können, muss zuerst mit dem STOP-Button die Verbindung zu Thonny wieder hergestellt werden.
Raspberry Pi Pico als USB-Endgerät mit CircuitPython
Die Programmierung als USB-Endgerät mit MicroPython ist sehr hakelig. Im Vergleich dazu ist die USB-Unterstützung von CircuitPython weit ausgereifter und problemloser. Wer einen Raspberry Pi Pico explizit als USB-Maus oder USB-Tastatur programmieren will, der sollte das in CircuitPython ausprobieren.
- Raspberry Pi Pico als USB-Endgerät (mit CircuitPython)
- Raspberry Pi Pico als USB-Computermaus (mit CircuitPython)
- Raspberry Pi Pico als USB-Tastatur (mit CircuitPython)
USB-Laufwerk abschalten
Standardmäßig meldet die CircuitPython-Firmware einen Mikrocontroller als USB-Laufwerk am Betriebssystem an. Wenn man dann die USB-Verbindung zum Mikrocontroller aussteckt, dann erscheint manchmal eine Fehlermeldung vom Betriebssystem. Die Fehlermeldung kann man nicht unterbinden, aber man die unnötige Anmeldung als USB-Laufwerk abschalten. Dadurch erscheint beim Ausstecken auch keine Fehlermeldung mehr.
Weitere verwandte Themen:
- Raspberry Pi Pico
- Raspberry Pi Pico: Anschlüsse und Schnittstellen
- Raspberry Pi Pico: Grundlagen zum USB
- Raspberry Pi Pico als USB-Endgerät (mit 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.