Einführung

Eines schönen Tages hatte ich die Idee, mir ein Internetradio zu bauen. Klar, es gibt dazu bereits eine Menge Anleitungen im Internet. Auch hätte ich mir einfach eins kaufen können. Aber einerseits macht es mir viel Spaß, (fast) alles selbst auszutüfteln, und zum Anderen kann ich selbst entscheiden, welche Fähigkeiten das fertige Gerät am Ende besitzen soll. Viele Ideen sind erst im Laufe der Entwicklung entstanden und gereift.

Ich muss gleich zu Anfang mal etwas klar stellen: Ich bin kein Linux-Profi und es ist mein bisher erstes Projekt in Python. Es wird also immer etwas zu verbessern geben oder eleganter oder einfacher zu programmieren gehen. Für Anregungen und Änderungsvorschläge bin ich deshalb dankbar. Zu meiner Verteidigung muss ich aber sagen, dass ich vor 45 Jahren mein erstes Radio (Detektorempfänger) gebaut habe, mit Computern zu tun habe, seit ich welche bekommen konnte und bisher in Assembler, Pascal, C++, Java, AutoIt3, LabVIEW und (jetzt) Python programmiert habe.

Zum Glück gibt es heute das Internet als unerschöpfliche Quelle des Wissens und der Ideen.

Zum jetzigen Zeitpunkt (Ende Oktober 2017) funktioniert das Internetradio schon sehr gut. Alle Komponenten sind zusammen auf einer Leiterplatte untergebracht. Es fehlt nur noch das Gehäuse. Das wird leider auch vorläufig nichts, da ich meine Fräse momentan wegen nachbarschaftlicher Probleme nicht betreiben kann.

Basis des Internetradios ist ein Raspberry Pi 3 mit dem Image Raspbian Jessie lite (vom 02.03.2017). Wie das Betriebssystem einzurichten ist, wird hier erklärt. Im Moment läuft die Software des Webradios auf einer NAS, so dass ich für die Softwareentwicklung bequemen Zugriff auf die Dateien vom PC aus habe.

Hier ein Gesamtüberblick über die bisher verwendete Hardware:

Hardware Bemerkung
Einplatinen-Computer Raspberry Pi 3 Modell B
1,2GHz 64bit CPU
1GB RAM
WLAN / LAN / 4x USB 2.0 / HDMI / 3,5mm Audio
mit 16GB class 10 MicroSD Karte
Coprozessor Arduino Nano Pro
Display Nextion NX3224T028
Die Grafiken und die Software sind auf dieses Modell zugeschnitten. Das Display kann natürlich durch ein größeres Modell mit der selben Auflösung ersetzt werden. Dieses Touch-Display wird komplett über ein serielles Interface gesteuert und ausgelesen. Es muss dafür zuvor über einen dazugehörigen Editor (Nextion Editor) programmiert werden. Dieser ist kostenlos von der Nextion Website zu beziehen.
Habe ich bei AliExpress für 91 Cent bekommen, was aber nur ein Versehen gewesen sein kann. Normalerweise kostet die Größe ab etwa 14 Euro, was aber auch schon ein ganz annehmbarer Preis ist, für das, was man mit den Dingern anstellen kann.
Lautstärkeregler / Drehgeber Drehgeber vom Typ KY-040

Gab es bei AliExpress für 46 Cent. Da der Impulsgeber scheinbar rein mechanisch aufgebaut ist, gehört noch etwas Randbeschaltung auf die Trägerplatine, welche die Impulsgeber entprellt.
digitaler Lautstärkeregler (IC) Schaltkreis (DIP8 Gehäuse) vom Typ FM62429
Gab es im 10er-Pack bei AliExpress für 1,53 Euro.
Ist auf der Trägerplatine verbaut und wird vom Arduino gesteuert.
Infrarotempfänger mit Fernbedienung Gab es bei AliExpress für 77 Cent.
Step-Down-Schaltregler LM2596S DC-DC Step-Down Schaltregler

Bei AliExpress für 59 Cent zu haben.
Der Schaltregler soll abschaltbar sein, so dass hier ein kleiner Eingriff notwendig ist. Wie ich das gemacht habe, wird hier erklärt.
NF-Verstärker (Endstufe) TPA3116D2 DC 12V-24V Class-D 50W+50W Stereo Digital Audio Power Verstärker Board

Bei eBay für 4,35 Euro gekauft.
Da das Gerät mit 12V betrieben wird, dürfte sich die maximale Ausgangsleistung auf 2x 12W beschränken - im geschlossenen Zimmer dennoch reichlich Krach. Außerdem ist die Ausgangsleistung natürlich von der Spannungsversorgung abhängig. Bei einem 2A-Schaltnetzteil wird das eher nichts. Trotzdem bietet ein D-Verstärker natürlich einen recht hohen Wirkungsgrad, und damit eine geringe Verlustleistung im Endverstärker.

Dazu kommt noch ein 12V Schaltnetzteil und Lautsprecher. Weiterhin habe ich vor, mir ein Gehäuse mit meiner CNC-Fräse aus Acryl und Sperrholz zu bauen. Dabei kommt auch ein Stück RGB LED-Streifen zum Einsatz, der u.a. mit dem Arduino gesteuert wird.