An den USB-OTG-Anschluss stecken Sie ein OTG-Kabel und daran eine USB-Soundkarte. Stellen Sie sicher, dass das Board unter Linux funktioniert. Hinweise dazu gibt es im Internet, etwa bei den Bewertungen von Kunden oder auf Elinux [3]. Gute Erfahrungen haben die Autoren mit der Creative Soundblaster Play (etwa 17 Euro) und der LogiLink UA0053 (rund 4 Euro) gemacht. Beim Mikro greifen Sie zu einem einfachen Kapselmikrofon.
Soundkonfiguration
Damit Alsa, die Advanced Linux Sound Architecture, den Ton über die Soundkarte aufnimmt, müssen Sie noch deren Konfiguration anpassen. Listing 3 zeigt die entsprechende Konfigurationsdatei /etc/asound.conf. Damit keine Benutzerkonfiguration diese globalen Einstellungen außer Kraft setzt, stellen Sie sicher, dass in /home/pi/ keine Datei .asoundrc existiert.
Listing 3
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
pcm.stereo_mic {
type route
slave.pcm {
type hw
card 1
}
slave.channels 1
ttable.0.0 1
ttable.1.0 1
}
Die Zeilen 1 bis 8 in Listing 3 sorgen dafür, dass die Soundkarte als Standard-Device für Alsa dient. Am einfachsten prüfen Sie das mithilfe des Programms Alsamixer. Dort wechseln Sie mit [F6] zwischen den Soundkarten – die USB-Soundkarte sollte beim Start bereits ausgewählt sein. Die Zeilen 9 bis 18 erstellen ein virtuelles Stereomikrofon, das Sie aber nur benötigen, wenn das reale nur Mono aufnimmt.
Danach testen Sie das Setup. Zuerst sorgen Sie dafür, dass das Mikro im Mixer einen ausreichenden Aufnahmepegel hat (Abbildung 4). Dann nehmen Sie fünf Sekunden Ton auf (Listing 4, erste Zeile) und spielen die erstellte Datei anschließend wieder ab (zweite Zeile). Eventuell müssen Sie bei der Aufnahme noch die Rate (Option -r 48) anpassen.
Listing 4
$ arecord -d 5 -c 2 -f S16 -r 48 -D stereo_mic aufnahme.wav $ aplay aufnahme.wav
Der Mixer verstärkt zwar die Signale, das führt aber je nach System zu Störgeräuschen. Treten in Ihrem Aufbau solche auf, heben Sie am besten das Signal zwischen der Soundkarte und dem Mikro beziehungsweise Lautsprecher per Verstärkerschaltung schon im Vorfeld an. Details dazu erläutert der Kasten “Verstärkerschaltungen”.
Verstärkerschaltungen
Bringt der von Ihnen verwendete Lautsprecher keinen Verstärker mit, können Sie ihn mit einem kleinen Verstärker aufrüsten, etwa mit dem Philips TDA 7050 (Kostenpunkt: 1,10 Euro). Er eignet sich für Lautsprecher mit 32 bis 64 Ohm an 3,3 bis 5 Volt, die Pin-Belegung entnehmen Sie dem Datenblatt.
Ein Elektret-Kapselmikrofon wie das WM52-BT eignet sich nicht für den Direktanschluss, da die Betriebsspannung fehlt und die Verstärkung nicht ausreicht. Hier sorgt eine einstufige Vorverstärkerschaltung für Abhilfe (Abbildung 5). Sie erzeugt über ein unbedingt gegen Störungen einzubauendes Siebglied (R1, R2, C1) die notwendige Vorspannung für das Mikrofon und koppelt das NF-Signal über C2 an die Verstärkerstufe mit T1 aus. Zwei EMI-Filter L1 und L2 (Ferrite, zum Beispiel BLM21AG 102) in der 5V- und Masse-Leitung helfen dabei. Da dieses Feature bei häufig angebotenen Mikrofonverstärkern aus China fehlt, eignen sich diese nicht für das vorliegende Projekt.
Beim Dimensionieren der Bauteile gilt es einiges zu beachten. Der Kollektorstrom soll 1 mA und die Speisespannung Us+5 Volt betragen. Als T1 kommt der BC849C (rauscharm) zum Einsatz, dessen Arbeitspunkt auf Us / 2 gelegt wird. Der verwendete Transistor hat eine Stromverstärkung von etwa 300. Für den Widerstand Rc ergibt sich dann Rc = R4 = Us / 2 / Ic = 2,5 V / 1 mA = 2,5 kOhm.
Für Ic = 1 mA und bei B = 300 muss die Schaltung einen Basisstrom von Ib = Ic / B = 1 mA / 300 = 3,33 µA einspeisen. Die Spannung über den Basisvorwiderstand R3 beträgt ungefähr UR3 = Us / 2 – Ub = 5 V – 0,7 V = 4,3 V. Damit können wir R3 ausrechnen: R3 = UR3 / Ib = 4,3 V / 3,33 µA = 1,29 MOhm.
Nach der E-Reihe wählt man dann Rc = R4 = 4,7 kOhm und Rb = R3 = 1 MOhm. Die hier errechneten Spannungs- und Stromwerte lassen sich mit einem Digitalmultimeter nachmessen – wichtig für die Kontrolle nach der Bestückung und die Fehlersuche.

Abbildung 5: Eine kleine Vorverstärkerschaltung hilft, Störungen bei der Audioübertragung zu beseitigen.
Video in Echtzeit
Nun installieren Sie auf dem Pi Zero den benötigten Videostreamer, der die Aufnahme der Kamera und des Mikrofons in Echtzeit ins lokale Netzwerk überträgt. Hierfür eignet sich der V4lrtspserver, den Sie auf Github finden [4]. Das Kürzel RTSP steht dabei für Real-Time Streaming Protocol, einen Standard für die Übertragung von Video- und Audiodaten in Echtzeit.
Im Github-Projekt zum Artikel [1] finden Sie eine vom Autor kompilierte Version, die zur Drucklegung allerdings schon veraltet sein kann, da sich das Projekt aktiv weiterentwickelt. Ein Eigenbau gelingt aber ohne Probleme. Als Alternative stellt das V4lrtsp-Projekt auch DEB-Pakete bereit, die Sie direkt auf dem Pi Zero installieren können (Listing 5, Zeile 1). Nach der Installation starten Sie den Server testweise (Zeile 2 und 3); Abbildung 6 zeigt dessen Ausgabe.
Listing 5
$ sudo dpkg -i v4l2rtspserver-0.0.3-Linux-armv7l.deb $ sudo modprobe -v bcm2835-v4l2 $ h264_v4l2_rtspserver -H 400 -W 600 -F 25 -C 1 -a S16_LE /dev/video0,default
Die Parameter für das Programm steuern die Höhe und Breite des Bilds, die Wiederholrate sowie die Audioparameter (im Beispiel ein Kanal mit Audiodaten im Format Signed-Integer, Little-Endian). Wollen Sie das Pseudo-Stereomikrofon nutzen, dann ersetzen Sie in Zeile 3 -C 1 durch -C 2 und default durch stereo_mic. Mit dem Parameter -a S16_LE weisen Sie den Streaming-Server an, ein Format zu senden, das der auf der Gegenstelle verwendete Videoplayer versteht.

Abbildung 6: Ein Teststart des RTSP-Servers zeigt, ob er das Signal wie gewünscht empfängt und überträgt. Der rot umrandete Bereich zeigt die URL, über die Sie das Signal am Client empfangen.
Startet der Server erfolgreich, gibt er eine URL in der Form rtsp://IP:Port/unicast aus. Diese übergeben Sie auf einem anderen System einem Videoplayer – auf einem PC etwa an VLC. Auf dem RasPi 3 benötigen wir dagegen Hardware-Beschleunigung und greifen daher zum Omxplayer:
$ omxplayer -o alsa --win 100,100,700,500 --live rtsp://IP:Port/unicast
Das WSA-Github-Projekt erstellt für den Server einen eigenen Systemdienst – die dazugehörige Systemd-Unit zeigt Listing 6. Soll der Dienst ständig laufen, müssen Sie ihn mit dem Kommando sudo systemctl enable rtsp.service aktivieren. Da jedoch eine ständig laufende Kamera datenschutzrechtliche Probleme aufwirft, verzichten Sie im Zweifelsfall darauf und starten den Service erst bei Bedarf.






