Mit elektrisch leitender Farbe und dem ESP32 bauen Sie im Handumdrehen ein Bilderbuch, das einen Sound abgespielt, sobald man das entsprechende Bild berührt.
Inspiriert von einem beliebten interaktiven Lernspiel entstand die Idee, einen ESP32 die Stimmen von Tieren abspielen zu lassen, sobald ein Finger ein Bild des entsprechenden Tiers berührt. Die Bilder wurden mit der elektrisch leitenden Farbe Bare Conductive gezeichnet [1]. Der ESP32 verfügt über einige Touch-Eingänge, die sich bestens dazu eignen, die Berührung der leitenden Bilder zu detektieren. Zum Abspielen der Sounds verwenden wir eine vorhandene Bibliothek.
Aufbau
Der ESP32 verfügt über zwei analoge Ausgänge: DAC1 (GPIO25) und DAC2 (GPIO26). Über diese Ausgänge lassen sich auch Klänge und Musik ausgeben. Das einzige Problem: Die GPIOs liefern generell keine besonders hohe Ausgangsleistung, ein Lautsprecher lässt sich also nicht direkt an die GPIOs anschließen. Wir benötigen daher einen Verstärker, der das Signal vom ESP32 so aufbereitet, dass man es über einen Lautsprecher abspielen kann.
Um dieses Problem zu lösen, gibt es viele Wege, von denen wir uns hier zwei genauer ansehen. Zum einen lassen sich einfach ein paar Mini-Boxen [2] von der Stange anschließen (Abbildung 1). Das klappt recht gut und erlaubt ein schnelles Ausprobieren. Um Klänge auszugeben, verbinden Sie einfach GPIO25 mit der Spitze des Klinkensteckers, die Masse (GND) des ESP32 kommt dann an den Massepol des Klinkensteckers.
Zum anderen – diese Möglichkeit nutzen wir – kann man ein kleines Verstärkermodul [3] mit dazu passenden Lautsprechern [4] verwenden. Diese Lösung empfiehlt sich, wenn Sie den ESP32 mit Soundfunktion in ein Gehäuse einbauen möchten, um zum Beispiel einen kindgerechten Audioplayer aufzubauen (Abbildung 2).
Sie dürfen selbstverständlich auch nicht vergessen, die Bilder, die dann später die Sounds auslösen, an den ESP32 anzuschließen. Wir verwenden dazu die Touch-Eingänge 5 bis 8. Die Tabelle “Zuordnung” fasst zusammen, welcher Touch-Eingang welchem GPIO-Pin entspricht.
|
Touch |
GPIO |
|---|---|
|
5 |
12 |
|
6 |
14 |
|
7 |
27 |
|
8 |
33 |
Die Bilder der Tiere, die wir hier als Vorlage verwendet haben, stammen von der Webseite Vecteezy [5]. Die Konturen der Bilder haben wir mit der elektrisch leitenden Farbe Bare Conductive [6] nachgemalt. Die Sounds stammen aus dem Projekt FreeAnimalSounds [7]. Eine Beschreibung zum Aufsetzen der Arduino IDE für den ESP32 finden Sie in einem eigenen Artikel [8].
Bibliothek
Wir verwenden eine Bibliothek, die für uns die Sounds abspielt, ohne dass wir selbst viel programmieren müssen. Die Bibliothek erhalten Sie kostenlos auf der Webseite von XTronical [9]. Zur Installation speichern Sie die Datei XT_DAC_Audio-4_2_1.zip im Verzeichnis arduino-Version/libraries.
Wechseln Sie jetzt in die Arduino IDE und importieren Sie die Bibliothek unter dem Menüpunkt Sketch | Bibliothek einbinden | ZIP-Bibliothek hinzufügen. Daraufhin öffnet sich ein Dateibrowser, in dem Sie die heruntergeladene Datei auswählen.
Nach dem erfolgreichen Import finden Sie im Menü unter Datei | Beispiele | XT_DAC_Audio | PlayWav ein Beispielprogramm, das eine kurze Passage aus “Star Wars” abspielt. Laden Sie das Programm einfach einmal in den ESP32 und hören Sie, was passiert.
Eigene Sounds
So toll der Beispielsound auch ist, nach der zehnten Wiederholung geht er auf die Nerven. Lassen Sie uns einen Blick in den Beispielcode werfen, um zu erfahren, wie der ESP32 Sound erzeugt.
In der Arduino IDE sehen Sie neben dem Reiter PlayWav noch einen zweiten Reiter, der mit SoundData.h beschriftet ist. In SoundData.h ist ein riesiges Array als Bytes (char) definiert. Darin steckt der auszugebende Sound. Es erfordert nur ein paar einfache Schritte, um ein solches Array zu erzeugen. Konvertieren Sie dazu als Erstes eine beliebige Sounddatei ins WAV-Format.








