banner

Nachricht

Mar 12, 2023

So verwenden Sie eine Banane als Touch-Eingabe für Raspberry Pi Pico

Berühren Sie die Banane, um eine LED zu steuern.

Kapazitive Berührung ist ein einfaches Mittel zur Erkennung von Benutzereingaben durch Messung der Dielektrizitätskonstante. Wenn es sich von einer Basismessung unterscheidet, kann es als Eingabe verwendet werden. In der Vergangenheit haben wir einen MPR121-Berührungssensor verwendet, um mithilfe eines Raspberry Pi Pico ein Ereignis auszulösen. Der MPR121 ist ein zuverlässiger QT-Sensor von Stemma, der in verschiedenen Formfaktoren für Krokodilklemmen und Standarddrahtstärken erhältlich ist. Wir lieben es so sehr, dass wir es auf unsere Seite mit den besten Stemma QT- und Grove-Add-Ons gesetzt haben. Aber gibt es eine Möglichkeit, dies ohne die Verwendung einer Sensorplatine zu tun?

Mit nur einem Stück Draht und einem 1-Mega-Ohm-Widerstand in einer Banane können wir unsere eigene Touch-Schnittstelle erstellen und einen gesunden Snack zu uns nehmen. In dieser Anleitung verwenden wir die Banane, um eine LED ein- und auszuschalten.

Warum etwas so Einfaches? Zu lernen, wie man eine LED ein- und ausschaltet, ist der beste Weg, um zu verstehen, wie jeder Teil Ihres Projekts funktioniert. Natürlich könnten wir die Banane in eine Leertaste verwandeln und Flappy Birds spielen, damit ein Browserfenster öffnen und einen Freund „Rick-Roll“ machen oder einen Roboter starten, der wie verrückt zur Tür rennt. Aber bevor wir das tun können, müssen wir verstehen, wie und warum die Dinge funktionieren, und die bescheidene LED ist eine kostengünstige und einfache Möglichkeit, dies zu tun.

Die Schaltung besteht aus zwei Teilen: dem Eingang und dem Ausgang. Der Eingang ist eine Banane (optional), die über ein langes Überbrückungskabel mit GPIO 16 auf dem Raspberry Pi Pico verbunden ist. GPIO 16 verfügt außerdem über einen 1-Mega-Ohm-Widerstand, um ihn mit GND zu verbinden. Dies ist ein Pulldown-Widerstand und stellt sicher, dass der GPIO-Pin eine konstante 0-V-Referenz sieht. Ohne sie wäre die Eingabe unregelmäßig. Dieser Vorgang kann für mehrere Eingänge wiederholt werden. Ihre einzigen Grenzen sind GPIO-Pins, 1-Mega-Ohm-Widerstände und Bananen.

Der Ausgang ist eine einfache LED, deren langes Bein (Anode) mit GPIO 15 und der kurze Bein (Kathode) über einen 100-Ohm-Widerstand mit GND verbunden ist.

Die Banane kann durch alles ersetzt werden, was leitend ist. Als Inputs können Alufolie, Knetmasse und anderes Obst/Gemüse verwendet werden. Sie können auch auf die kulinarischen Eingänge für blanke Drähte verzichten. In bestimmten Fällen funktioniert das besser.

Bauen Sie den Schaltkreis auf und überprüfen Sie Ihre Verbindungen noch einmal, bevor Sie fortfahren.

Wir haben uns aus zwei Hauptgründen für CircuitPython für dieses Projekt entschieden. Erstens ist es so einfach zu bedienen und zu verstehen. Unser Code ist leicht zu lesen, zu debuggen und wir können ihn auf jedem Gerät schreiben, sogar auf einem Chromebook. Zweitens verfügt CircuitPython über das Touchio-Modul, das die Erstellung von Touch-Eingaben mithilfe des GPIO vereinfacht. Doch bevor wir mit dem Projekt beginnen können, müssen wir die neueste Version von CircuitPython auf den Raspberry Pi Pico schreiben.

1.Gehen Sie zur offiziellen CircuitPython-Seite für den Raspberry Pi PicoUndLaden Sie das neueste UF2-Firmware-Image herunter. Zum Zeitpunkt des Schreibens war dies CircuitPython 8.10. Wir haben uns für den Raspberry Pi Pico entschieden, da wir kein WLAN benötigen, aber dieses Projekt könnte zum Auslösen eines Web-Events verwendet werden, dafür benötigen Sie einen Raspberry Pi Pico W.

2.Während Sie die BOOTSEL-Taste gedrückt halten, verbinden Sie den Raspberry Pi Pico mit Ihrem Computer.Ein neues Laufwerk, RPI-RP2, wird angezeigt.

3.Kopieren Sie die heruntergeladene CircuitPython UF2-Datei nach RPI-RP2. Dadurch wird CircuitPython in den internen Flash-Speicher des Pico geschrieben. Ein neues Laufwerk, CIRCUITPY, wird angezeigt.

Zum Schreiben des Codes haben wir Thonny unter Windows 10 verwendet. Sie können den Texteditor Ihrer Wahl verwenden, aber Thonny verfügt über eine hervorragende CircuitPython- (und MicroPython-)Integration, die die Verwendung zum Kinderspiel macht. Das Beste daran ist, dass es kostenlos und einfach auf Windows-, macOS- und Linux-Geräten zu installieren ist.

1.Laden Sie Thonny herunter und installieren Sie esfalls Sie es noch nicht haben.Thonny ist ein Python-Editor, der Python 3, MicroPython und CircuitPython abdeckt.

2.Öffnen Sie Thonny und gehen Sie zu Extras >> Optionen.

3.Wählen Sie „Interpreter“ aus, stellen Sie dann den Interpreter auf „CircuitPython“ und den Port auf „Automatisch“ ein und klicken Sie auf „OK“.Thonny stellt nun eine Verbindung zum Pico her, auf dem CircuitPython ausgeführt wird.

4. Klicken Sie auf Datei >> Öffnen und wählen Sie das CircuitPython-Gerät aus. Wählen Sie dann code.py aus. Code.py wird von CircuitPython als Hauptdatei für ein Projekt verwendet. Es ist so eingestellt, dass es beim Einschalten des Pico automatisch ausgeführt wird.

5.Löschen Sie jeglichen Code in code.py.Wenn Sie den Code benötigen, sichern Sie ihn unbedingt auf Ihrem Computer.

6.Importieren Sie vier Codemodule, die für das Funktionieren des Projekts erforderlich sind. Touchio wird verwendet, um eine kapazitive Berührungseingabe über einen GPIO-Pin zu erstellen. Die Zeit steuert, wie lange der Code zwischen den Aktionen pausiert. Board wird verwendet, um mit dem GPIO zu arbeiten. Der Import mit * bedeutet, dass wir den Modulnamen nicht angeben müssen. Digitalio wird verwendet, um den Status eines Pins zu steuern. Es kann eine Eingabe oder Ausgabe sein.

7.Erstellen Sie ein Objekt, eine LED, setzen Sie den GPIO-Pin auf GP15 und legen Sie ihn dann als Ausgang fest. Dadurch wird sichergestellt, dass beim Auslösen der LED Strom vom Pin GPIO 15 zur Anode der LED fließt. Da die Kathode über den 100-Ohm-Widerstand mit GND verbunden ist, schaltet der gesamte Stromkreis die LED ein.

8.Erstellen Sie ein Objekt, led_state, und speichern Sie darin den ganzzahligen Wert 0. Mit diesem Objekt wird der aktuelle Zustand der LED erfasst. Es kann entweder ausgeschaltet (0) oder eingeschaltet (1) sein.

9.Erstellen Sie ein Objekt, touch_pinum eine Verbindung zwischen dem Code und dem physischen GPIO-Pin herzustellen.

10.Erstellen Sie eine Schleife, um den Code kontinuierlich auszuführen.

11.Erstellen Sie innerhalb der Schleife eine Druckfunktion, die den aktuellen Status des Touch-Eingabepins meldet.Wir verwenden %s, um den in touch_pin.value gespeicherten Wert zu verwenden und ihn in eine Zeichenfolge zur Verkettung mit dem Text umzuwandeln.

12.Schreiben Sie einen bedingten Test, um zu überprüfen, ob der Eingang berührt wurde und ob die LED ausgeschaltet ist.Beide Tests müssen bestanden werden, damit der bedingte Test bestanden wird.

13.Stellen Sie die LED auf Einschalten ein und aktualisieren Sie dann das led_state-Objekt auf 1.damit der Code weiß, dass die LED leuchtet . Eine halbe Sekunde schlafen um ein versehentliches Entprellen zu verhindern (doppeltes Drücken). Dieser Code wird nur ausgeführt, wenn der Bedingungstest erfolgreich ist.

14.Erstellen Sie einen bedingten Test, um zu prüfen, ob der Eingang berührt wurde und die LED derzeit leuchtet.Dieser Code schaltet die LED aus.

15.Schalten Sie die LED aus und aktualisieren Sie das led_state-Objektdamit der Code weiß, dass die LED aus ist, und danneine halbe Sekunde innehalten.

16.Halten Sie den Code außerhalb der bedingten Tests, aber immer noch innerhalb der Schleife, für 0,1 Sekunden an.Jedes Mal, wenn die Schleife iteriert, wird sie 0,1 Sekunden lang angehalten. Dies ist nützlich, um den Projektcode zu beschleunigen.

17.Speichern Sie den Code in code.py auf dem CircuitPython-Gerät(Himbeer-Pi-Pico).

18. Wenn nicht, sollte der Code automatisch ausgeführt werdenKlicken Sie auf Stopp und dann auf Ausführen.

19.Berühren Sie die Banane, um die LED ein-/auszuschalten.

Schließen Sie sich den Experten an, die Tom's Hardware lesen, um Insider-Informationen zu PC-Tech-News für Enthusiasten zu erhalten – und das seit über 25 Jahren. Wir senden Ihnen aktuelle Nachrichten und ausführliche Rezensionen zu CPUs, GPUs, KI, Hersteller-Hardware und mehr direkt in Ihren Posteingang.

Les Pounder ist Associate Editor bei Tom's Hardware. Er ist ein kreativer Technologe und hat sieben Jahre lang Projekte entwickelt, um Jung und Alt zu bilden und zu inspirieren. Er hat mit der Raspberry Pi Foundation zusammengearbeitet, um deren Lehrerausbildungsprogramm „Picademy“ zu schreiben und durchzuführen.

Bestes Raspberry Pi Pico-Zubehör und Add-Ons 2023

Beste RP2040-Boards 2023

Raspberry Pi sorgt für authentische Reenactment-Fotografie

Von Aaron Klotz, 01. Juni 2023

Von Les Pounder 01. Juni 2023

Von Brandon Hill, 1. Juni 2023

Von Mark Tyson, 1. Juni 2023

Von Stewart Bendle, 1. Juni 2023

Von Anton Shilov, 1. Juni 2023

Von Matt Safford, 1. Juni 2023

Von Ash Hill, 1. Juni 2023

Von Mark Tyson, 1. Juni 2023

Von Zhiye Liu 01. Juni 2023

Von Zhiye Liu 01. Juni 2023

Besuchen Sie die offizielle CircuitPython-Seite für den Raspberry Pi Pico und laden Sie das neueste UF2-Firmware-Image herunter. Während Sie die BOOTSEL-Taste gedrückt halten, verbinden Sie den Raspberry Pi Pico mit Ihrem Computer. Kopieren Sie die heruntergeladene CircuitPython UF2-Datei nach RPI-RP2. Laden Sie Thonny herunter und installieren Sie es. Öffnen Sie Thonny und gehen Sie zu Extras >> Optionen. Wählen Sie „Interpreter“ aus, stellen Sie dann den Interpreter auf „CircuitPython“ und den Port auf „Automatisch“ ein und klicken Sie auf „OK“. Klicken Sie auf Datei >> Öffnen und wählen Sie das CircuitPython-Gerät aus. Wählen Sie dann code.py aus. Löschen Sie jeglichen Code in code.py. Importieren Sie vier Codemodule, die für das Funktionieren des Projekts erforderlich sind. Erstellen Sie ein Objekt, eine LED, setzen Sie den GPIO-Pin auf GP15 und legen Sie ihn dann als Ausgang fest. Erstellen Sie ein Objekt, led_state, und speichern Sie darin den ganzzahligen Wert 0. Erstellen Sie ein Objekt, touch_pin. Erstellen Sie eine Schleife, um den Code kontinuierlich auszuführen. Erstellen Sie innerhalb der Schleife eine Druckfunktion, die den aktuellen Status des Touch-Eingabepins meldet. Schreiben Sie einen bedingten Test, um zu überprüfen, ob der Eingang berührt wurde und ob die LED ausgeschaltet ist. Stellen Sie die LED auf Einschalten ein und aktualisieren Sie dann das led_state-Objekt auf 1. Eine halbe Sekunde lang schlafen. Erstellen Sie einen bedingten Test, um zu überprüfen, ob der Eingang berührt wurde und ob die LED derzeit leuchtet. Schalten Sie die LED aus, aktualisieren Sie das led_state-Objekt und halten Sie eine halbe Sekunde lang an. Halten Sie den Code außerhalb der bedingten Tests, aber immer noch innerhalb der Schleife, für 0,1 Sekunden an. Speichern Sie den Code in code.py auf dem CircuitPython-Gerät, klicken Sie auf Stopp und dann auf Ausführen. Berühren Sie die Banane, um die LED ein-/auszuschalten.
AKTIE