Obstklavier¶
Dieses Projekt ist ein einfaches Obstklavier, das Eingaben von einem MPR121-Touchsensor liest und Musik über einen DAC abspielt. Mit anderen Worten, wir haben Früchte in eine Tastatur verwandelt, die es Ihnen ermöglicht, Musik zu spielen, indem Sie sie einfach berühren.
Benötigte Komponenten
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 |
---|---|---|
Elite Explorer Kit |
300+ |
Sie können sie auch einzeln über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
---|---|
- |
|
- |
|
- |
Verdrahtung
Schaltplan
Code
Bemerkung
Sie können die Datei
02_fruit_piano.ino
direkt unter dem Pfadelite-explorer-kit-main\fun_project\02_fruit_piano
öffnen.Oder kopieren Sie diesen Code in die Arduino IDE.
Bemerkung
Um die Bibliothek zu installieren, verwenden Sie den Arduino-Bibliotheksmanager und suchen Sie nach „Adafruit MPR121“ und installieren Sie diese.
Wie funktioniert das?
Hier ist eine schrittweise Erklärung des Codes:
Bibliotheks- und Objektinitialisierung:
Importieren Sie die notwendigen Bibliotheken:
Wire
-Bibliothek (für I2C-Kommunikation),Adafruit_MPR121
-Bibliothek (zur Steuerung des MPR121),analogWave
-Bibliothek (zur Erzeugung analoger Wellenformen) undpitches.h
(definiert die Frequenzen der Noten). Erstellen Sie Instanzen der ObjekteAdafruit_MPR121
undanalogWave
. Definieren Sie ein Noten-Array, um die Note zu speichern, die jedem Berührungskanal entspricht.setup()
:Initialisieren Sie die serielle Kommunikation und warten Sie, bis sie startet. Überprüfen und initialisieren Sie den MPR121; falls nicht gefunden, geben Sie eine Fehlermeldung auf dem seriellen Monitor aus und stoppen Sie die Ausführung. Initialisieren Sie das
analogWave
-Objekt und setzen Sie die anfängliche Sinuswellenfrequenz auf 10 Hz.loop()
:Lesen Sie die aktuell berührten Kanäle des MPR121. Durchlaufen Sie alle Kanäle, überprüfen Sie, welcher berührt wird, und spielen Sie die entsprechende Note. Fügen Sie eine kleine Verzögerung zwischen jeder Iteration hinzu.
Note abspielen
playNote()
:Die Funktion
playNote
nimmt einennote
-Parameter entgegen und setzt die DAC-Frequenz, um die entsprechende Note zu spielen. Verzögern Sie für einen Zeitraum, um die Note zu spielen. Stoppen Sie das Abspielen der Note.