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

Raspberry Pi Pico mit Taster-Modul KY-004

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:

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