Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauchen Sie tiefer ein in Raspberry Pi, Arduino und ESP32 mit Gleichgesinnten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Probleme nach dem Kauf und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezielle Rabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Giveaways: Nehmen Sie an Giveaways und Feiertagsaktionen teil.
👉 Bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie [hier] und treten Sie heute bei!
4.3 Elektroden-Tastatur mit MPR121
In dieser Lektion lernen wir, wie man den MPR121 kapazitiven Berührungssensor verwendet, um eine berührungsempfindliche Tastatur mit dem Raspberry Pi Pico 2 zu erstellen. Der MPR121 ermöglicht die Erfassung von Berührungen auf bis zu 12 Elektroden, die mit leitfähigen Materialien wie Drähten, Folie oder sogar Früchten wie Bananen verbunden werden können!
Was Sie benötigen
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
|---|---|---|
Newton Lab Kit |
450+ |
Sie können sie auch einzeln über die untenstehenden Links kaufen.
SN |
KOMPONENTE |
MENGE |
LINK |
|---|---|---|---|
1 |
1 |
||
2 |
Micro-USB-Kabel |
1 |
|
3 |
1 |
||
4 |
Mehrere |
||
5 |
1 |
Verständnis des MPR121-Sensors
Der MPR121 ist ein kapazitiver Berührungssensor-Controller, der über die I2C-Schnittstelle kommuniziert. Er kann bis zu 12 Berührungseingaben verarbeiten, was ihn ideal für die Erstellung interaktiver Projekte mit mehreren Berührungspunkten macht.
Der MPR121-Sensor erkennt Änderungen der Kapazität an seinen Elektroden. Wenn Sie eine Elektrode berühren, ändert sich die Kapazität und der Sensor registriert eine Berührung. Der Sensor kommuniziert diese Informationen über I2C mit dem Raspberry Pi Pico 2.
Schaltplan

Verdrahtungsdiagramm

Verbinden Sie Drähte oder leitfähige Materialien mit den Elektrodenpins (gekennzeichnet mit E0 bis E11) am MPR121.
Sie können die anderen Enden der Drähte mit leitfähigen Objekten wie Früchten, Aluminiumfolienformen oder Touchpads verbinden.
Code schreiben
Schreiben wir ein MicroPython-Programm, um Berührungseingaben auf den Elektroden zu erkennen und auszugeben, welche berührt werden.
Bemerkung
Öffnen Sie die Datei
4.3_electrode_keyboard.pyausnewton-lab-kit/micropythonoder kopieren Sie den Code in Thonny, dann klicken Sie auf „Ausführen“ oder drücken Sie F5.Stellen Sie sicher, dass der richtige Interpreter ausgewählt ist: MicroPython (Raspberry Pi Pico).COMxx.
Hier benötigen Sie die Bibliothek
mpr121.py, bitte überprüfen Sie, ob sie auf den Pico hochgeladen wurde, für ein detailliertes Tutorial siehe Bibliotheken auf den Pico hochladen.
from mpr121 import MPR121
from machine import Pin, I2C
import utime
i2c = I2C(0, sda=Pin(4), scl=Pin(5))
mpr = MPR121(i2c)
# check all keys
while True:
value = mpr.get_all_states()
if len(value) != 0:
print(value)
utime.sleep_ms(100)
Nach dem Starten des Programms berühren Sie die verbundenen Elektroden oder leitfähigen Objekte. Beobachten Sie die ausgegebene Druckausgabe in der Thonny Shell. Sie sollten Nachrichten sehen, die anzeigen, welche Elektroden berührt werden.
Code verstehen
Import-Module:
machine: Bietet Zugang zu hardwarebezogenen Funktionen.mpr121: Die Bibliothek zur Anbindung an den MPR121-Sensor.utime: Enthält zeitbezogene Funktionen für Verzögerungen.
I2C-Kommunikation initialisieren:
i2c = I2C(0, sda=Pin(4), scl=Pin(5)): Richtet die I2C-Kommunikation auf dem I2C0-Bus mit GP4 (SDA) und GP5 (SCL) ein.
Ein MPR121-Objekt erstellen:
mpr = MPR121(i2c): Initialisiert den MPR121-Sensor über die eingerichtete I2C-Kommunikation.
Hauptschleife zur Erkennung von Berührungseingaben:
get_all_states(): Gibt eine Liste der Elektrodennummern zurück, die gerade berührt werden.Wenn Elektroden berührt werden, werden ihre Nummern ausgegeben.
Die Schleife läuft kontinuierlich mit einer kurzen Verzögerung von 100 Millisekunden.
while True: value = mpr.get_all_states() if len(value) != 0: print(value) time.sleep_ms(100)
Erweiterung der Elektroden
Sie können Ihr Projekt erweitern, indem Sie die Elektroden mit verschiedenen leitfähigen Materialien verbinden:
Früchte: Verbinden Sie Drähte mit Bananen, Äpfeln oder anderen Früchten, um sie in berührungsempfindliche Eingaben zu verwandeln.
Folienformen: Schneiden Sie Formen aus Aluminiumfolie aus und verbinden Sie sie mit den Elektroden.
Leitfähige Farbe: Zeichnen Sie Muster mit leitfähiger Tinte oder Farbe.
Bemerkung
Wenn Sie die Elektroden ändern (z. B. verschiedene Materialien anschließen), müssen Sie möglicherweise den Sensor zurücksetzen, um die Basiswerte neu zu kalibrieren.
Weitere Experimente
Bestimmte Elektrode erkennen:
Wenn Sie eine spezifische Elektrode überwachen möchten, können Sie die Methode
is_touched(pin)verwenden, die True zurückgibt, wenn die angegebene Elektrode (Pin) berührt wird; andernfalls gibt sie False zurück.from mpr121 import MPR121 from machine import Pin, I2C import utime i2c = I2C(0, sda=Pin(4), scl=Pin(5)) mpr = MPR121(i2c) # check all keys while True: if mpr.is_touched(0): print("Electrode 0 is touched!") utime.sleep(0.1)
Musikinstrument erstellen: Ordnen Sie jeder Elektrode eine Musiknote zu und spielen Sie Töne, wenn sie berührt wird.
Interaktive Kunst: Verwenden Sie leitfähige Farbe, um berührungsempfindliche Kunstwerke zu schaffen.
Spielcontroller: Gestalten Sie benutzerdefinierte Touch-Steuerungen für ein Spiel.
Schlussfolgerung
In dieser Lektion haben Sie gelernt, wie man den MPR121 kapazitiven Berührungssensor mit dem Raspberry Pi Pico 2 verwendet, um eine berührungsempfindliche Elektroden-Tastatur zu erstellen. Dies eröffnet Möglichkeiten für interaktive Projekte, die auf kreative Weise auf Berührungseingaben reagieren.