CityRadar - Teensy Prototyp

Teensy ist ein Mikrocontroller mit relativ viel Rechenpower und Arbeitsspeicher. Die Version 4.1 hat eine integrierte SD-Karte zum Daten aufzeichnen.

Es gibt ein Audioboard mit dem man mit 44 kHz und 16 bit Signale aufzeichnen kann. Damit lassen sich auch die Signale von unserem Radarmodul aufzeichnen.

Mit dem Audio System Design Tool kann man die Audioflüsse virtuell „verdrahten“ und sich Programmcode ausgeben lassen den man auf den Teensy laden kann.

Um das Board zu programmieren wie hier beschrieben die Arduino-IDE 2.0 oder höher herunterladen und die Teensy Library installieren.

Unter Linux sollte man noch die Hinweise auf dieser Seite beachten (man mus libfuse installieren). Ausserdem muss noch eine udev-Regel eingerichtet werden.

Für uns relevant ist die AudioAnalyzeFFT1024 Funktion, die eine Fouriertransformation der Audiodaten berechnet. Die Berechnung läuft asynchron und über die available() Funktion können Daten abgefragt werden. Ein Beispiel-Sketch findet man unter File > Examples > Audio > Analysis > FFT.

Alternativ könnten wir auch die AudioAnalyzeNoteFrequency Funktion verwenden um die dominante Frequenz direkt zu ermitteln. Hier gibt es ein Beispiel-Sketch unter File > Examples > Audio > Analysis > NoteFrequency.

Weitere Links:

Hier ein erster Aufschlag für die Software.

teensy_audio_linein.ino (1,7 KB)
Der Controller (Teensy 4.1 + Audioboard) nimmt über Line In Daten auf. Der eine Kanal geht direkt an den PC, der andere über einen 6kHz Tiefpass an den PC. Zusätzlich wird vom gefilterten Kanal eine FFT gemacht. Dier Ergebnisse der FFT gehen per serieller Schnittstelle an den PC. Die Audiodaten können per Audacity o.ä. aufgenommen werden.

Für die FFT Daten habe ich ein Quick&Dirty Skript in Python geschrieben. Es nimmt eine vorgegebene Nummer an Messungen entgegen und plottet über einen vorgegebenen Frequenzbereich.
spectrum_receiver.py (828 Bytes)