Raspberry Pi Pico als automatische Maus-Taste (mit CircuitPython)
Eine Besonderheit des Raspberry Pi Pico ist die Integration des USB. Das heißt, der Pico lässt sich sehr leicht als USB-Endgerät an einem Host-Computer anmelden. Der Raspberry Pi Pico kann dann zum Beispiel eine Maus emulieren. Im Programmcode kann das Drücken der Maustasten gesteuert werden.
Das Ziel dieses Programms ist es, eine Schaltfläche mit einen emulierten Mausklick automatisch zu betätigen. Hierzu muss sich der Mauszeiger nur auf einer vordefinierten Schaltfläche auf dem Bildschirm befinden. Der Klick darauf wird vom Programmcode ausgeführt.
Das kann nützlich sein, um wiederkehrende Aufgaben zu automatisieren oder Benutzereingaben in bestimmten Szenarien zu simulieren.
- Ein Programm meldet einen Status in einem Fenster, dass mit einem Mausklick auf OK bestätigt werden. Erst dann macht das Programm weiter.
- Die Darstellung einer Webseite erfolgt auf einem externen Bildschirm und muss regelmäßig aktualisiert werden.
Aufbau und Bauteile
Der GPIO15 (Pin 20) ist 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 des Tasters wird der GPIO15 mit GND verbunden.
Programmcode für CircuitPython
Der Programmcode ist so konzipiert, dass die Funktion zur automatischen Auslösung der Maustaste deaktiviert ist. Erst durch Drücken des Tasters wird der immer wiederkehrende Mausklick ausgelöst. Durch erneutes Betätigen des Tasters, wird die Funktion deaktiviert. Um zu sehen, ob die Funktion aktiviert oder deaktiviert ist, ist die Onboard-LED an oder aus.
# Bibliotheken laden import time import board import digitalio import keypad import usb_hid from adafruit_hid.mouse import Mouse # Initialisierung der Onboard-LED led_onboard = digitalio.DigitalInOut(board.LED) led_onboard.direction = digitalio.Direction.OUTPUT # Wiederholungsinterval in Sekunden interval = 5 # Zähler counter = 0 # Aktiv run = 0 led_onboard.value = False # USB-Maus initialisieren mouse = Mouse(usb_hid.devices) # Taster-Pins BTN_PINS = ( board.GP15, ) # Taster initialisieren (mit Pullup-Widerstand) buttons = keypad.Keys(BTN_PINS, value_when_pressed=False, pull=True) # Wiederholung: Endlos-Schleife while True: time.sleep(0.1) # Taster Aktivieren/Deaktivieren event = buttons.events.get() if event: if event.pressed and event.key_number == 0: counter = 0 if run == 1: print('Maus deaktiviert') run = 0 led_onboard.value = False else: print('Maus aktiviert') run = 1 led_onboard.value = True # Maus-Taster drücken if counter == 0 and run == 1: mouse.click(Mouse.LEFT_BUTTON) print('Maus gedrückt') counter = 10 * interval counter = counter - 1
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 als USB-Endgerät (mit CircuitPython)
- Raspberry Pi Pico als USB-Computermaus (mit CircuitPython)
- Raspberry Pi Pico als USB-Tastatur (mit CircuitPython)
- Raspberry Pi Pico: Grundlagen zum USB
- Raspberry Pi Pico als USB-Endgerät
- 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.