@ -6,11 +6,12 @@ status: Aktiv
difficulty: geht so ...
time: ~1h
date: 2020-08-01
image: /projekt/2020/nodesp2/ NodeSP2_Overview.jpg
image: NodeSP2_Overview.jpg
keywords: Odroid-Go,ESP32,FFT,Assembler,S32C1I,Semaphore
---
## Motivation
Für das Verständnis dieses Eintrags sollte man unbedingt diesen hier
gelesen haben:
https://www.hacknology.de/projekt/2020/nodesp/
@ -18,10 +19,10 @@ https://www.hacknology.de/projekt/2020/nodesp/
Um die Schwächen der ersten Implementierung zu beseitigen, sollen ein
I2S-Mikrofon und DMA-Transfer genutzt werden.
{{< fluid_img alt = "Showtime" src = "/projekt/2020/nodesp2/NodeSP2_Overview.jpg" > }}
{{< image alt = "Showtime" src = "NodeSP2_Overview.jpg" > }}
## 1. Versuch
Zunächst habe ich mir das I2S-Mikrofon von Adafruit besorgt (SPH0645
auf Breakout-Board). Außerdem habe ich zunächst noch im alten Kontext
'NodeMCU' gearbeitet. Nach längerem rumprobieren ohne Erfolg (inkl.
@ -29,9 +30,10 @@ fast aller im Internet auffindbarer Timing-Tricks), gab ich das Projekt
zunächst wieder auf. Auch mit dem Oszi konnte ich das eigentliche
Problem nicht identifizieren?!
< img width = "320" height = "240" alt = "Oszi Timing 1" src = "/projekt/2020/nodesp2/NodeSP2_Oszi1.png" >
< img width = "320" height = "240" alt = "Oszi Timing 2" src = "/projekt/2020/nodesp2/NodeSP2_Oszi2.png" >
< div class = "pure-g" >
{{< image alt = "Oszi Timing 1" src = "NodeSP2_Oszi1.png" size = "640x480 q90" class = "pure-u-1 pure-u-md-1-2" > }}
{{< image alt = "Oszi Timing 2" src = "NodeSP2_Oszi2.png" size = "640x480 q90" class = "pure-u-1 pure-u-md-1-2" > }}
< / div >
Immer wieder war ich bei meinen Recherchen auch auf
Hinweise gestoßen, wonach speziell dieses Mikrofon an der
@ -40,6 +42,7 @@ Lösung bereit stünde. Ich habe mir dann diesen Typ schließlich
ebenfalls besorgt.
## 2. Versuch
Nachdem ich zwischendurch mal was Lustigeres eingeschoben hatte (
https://www.hacknology.de/projekt/2020/pimpedwebcam/ ), habe ich mich
schließlich an die Fortsetzung meiner Versuche gemacht. Zufällig hatte
@ -47,6 +50,7 @@ ich mir im Frühjahr auch ein Odroid-Go besorgt. Dies sollte die Basis
meiner weiteren Versuche bilden.
## Odroid-Go
Das Odroid-Go ist ein Konsolen-Emulator auf ESP32-Basis (siehe
https://wiki.odroid.com/odroid_go/odroid_go );
Zu dieser Plattform finden sich nützliche Programmierhinweise z.Bsp. hier
@ -54,10 +58,11 @@ http://cool-web.de/esp8266-esp32/odroid-go-esp32-mit-arduino-programmieren-gpio-
. Mit diesen Informationen bewaffnet, sollte doch was gehen?
## Aufbau
Das MEMS-Mikrofon (INMP441) habe ich leider verkehrt herum mit seinen
Steckerleisten versehen (... funktioniert trotzdem ;-) .
{{< fluid_ img alt = "INMP441" src = "/projekt/2020/nodesp2/ NodeSP2_INMP441.jpg" > }}
{{< ima ge alt = "INMP441" src = "NodeSP2_INMP441.jpg" > }}
Pin 1 auf der Steckerleiste am Odroid-Go ist auf der Rückseite gekennzeichnet.
Die Verbindungsdrähte habe ich wie folgt aufgelegt:
@ -71,9 +76,10 @@ Die Verbindungsdrähte habe ich wie folgt aufgelegt:
|*6/VCC(3,3V)*| *ge* | *VDD* |
{{< fluid_ img alt = "Connections" src = "/projekt/2020/nodesp2/ NodeSP2_Connections.jpg" > }}
{{< ima ge alt = "Connections" src = "NodeSP2_Connections.jpg" > }}
## Programmierung
Die Programmierung muß leider ohne Debugger erfolgen. Außerdem wird das Programm
in eine 'Firmware'-Datei konvertiert - und nicht direkt aus VSC geladen.
Hierbei wird ein Bild für die Auswahl im Start-Programm hinzugefügt.
@ -114,6 +120,6 @@ Zum Schluß noch ein kleines Demo:
< / video >
## Was bleibt zu tun?
Man könnte einen steckbaren Aufsatz für das Odroid-Go als Mikrofonhalterung mit FreeCAD
konstruieren für den 3D-Drucker (oder gibt's vielleicht schon?) ...