Im Tastensatz sitzt ein Mikroschalter. Bei gedrückter Wiedergabe-Taste nimmt er dem Rasperry Netzteil die Netzspannung weg. Dadurch fällt auf der 5V-Seite ein Relais ab, welches dann den Signalweg auf das ursprüngliche FM/AM-Radio umschaltet. Schaltet man mit der Aufnahmetaste auf das iRadio um dauert es dann natürlich erst mal eine Zeit bis der raspberry wieder hochgefahren ist.
Hier kam mir der Umstand entgegen dass sich das Kassettenreorder-Laufwerk von den Bedientasten einfach durch Abschrauben trennen lies. Es kam aber auch eine Erschwernis hinzu. Der Recorder hat keine abnehmbare Rückwand, sondern eine Gehäuse-Haube, die von oben übergestülpt wird. Die Raspberry/Display-Einheit muss daher von vorne durch das Kassettenfach eingesetzt werden. Die Einheit ist auf dem Kassettenfachdeckel fest montiert. Die Halterung habe ich so konstruiert dass ein Steg in eine angeklebte Führung auf der Rückseite der Haube eingesteckt wird und durch eine kleine Bohrung mit einer M3-Schraube fixiert wird. Mit dieser einen Schraube ist also die ganze Einheit entnehmbar. Ausser der einen Schraube auf der Rückseite und dem Bedienknopf an der Seite ist dem Gerät von aussen erst mal nichts anzusehen. Der dunkel getönte Kassettenfachdeckel lässt kein Display dahinter erahnen.
An der linken Seitenwand gab es eine TA-Buchse. Diese habe ich entfernt und in die Öffnung einen Drehencoder montiert. Natürlich zurückversetzt, damit die Haube sich noch abnehmen läßt. Ein stilechter Knopf mit langem Schaft wird auf den Encoder aufgesteckt. Durch Drehung wird sich innerhalb der playlist bzw. den Mediendateien bewegt. Ein Druck auf den Encoder schaltet um zwischen Internetstationen und Medienbetrieb.
Das Gekabel auf der Oberseite ist ein Provisorium. An dem Schieberegler für Lautstärke ist eine Miniatur-Niete ausgebrochen. Ein neuer Schieberegler ist bestellt, solange kann die Lautstärke mit einem 4mm-Poti eingestellt werden. Es gibt auf analoger Seite noch ein weiteres Problem. Das Skalenseil muss neu aufgelegt werden und ich konnte mich noch nicht dazu durchringen mich darum zu kümmern.
Das Gerät hat einen sauberen, störungsfreien Klang und es macht Freude damit Radio (analog oder digital) zu hören oder meine Mediendateien mit den Kassettensimulationen abzuspielen. Ebenso wie beim uliberry läuft im Internetradiobetrieb die hmaisch-Animation mit der gelben Musikkassette.
Das Relais für die NF-Umschaltung und der Halter für den Encoder (den Encoder hatte ich später noch ausgetauscht):
Die Digitaleinheit wird von vorne eingesetzt:
..und mit dem Ausleger an der Halterung an der Rückseite angeschraubt
Die Medienwiedergabe:
der defekte Schieberegler und der Mikroschalter im Tastensatz:
Gesamtansicht:
eine Übersicht der gedruckten Teile:
der Halter für den Encoder:
das Gegenstück für die Gewindeeinsätze:
der Ausleger:
Gegenstück für Gewindeeinsatz:
Halter für den Mikroschalter:
die Führung für den Ausleger:
Grundplatte für das Relais:
die software hab ich ja an anderer Stelle schon mehrmals beschrieben.
Ich will trotzdem noch einmal alle Schritte auflisten, vor allem alle
Anpassungen genauestens dokumentieren. Auch wenn ich mich damit
wiederhole. So hat ein Nachbauer aber alles an der Hand ohne sich
Details woanders zusammensuchen zu müssen.
Der raspberry wird mit dem aktuellsten raspberry pi os bespielt. Es wird
wlan und ssh eingerichtet, hostname und passwort vergeben und weitere
Angaben über das Umfeld per automatischem Assistent festgelegt. Also
eine Standardinstallation auf der man dann aufbauen kann.
Es folgt die iRadio Grundinstallation
git clone https://github.com/BM45/iRadio.git
und anschliessendes Ausführen von
sudo ./install.sh
im iRadio-Ordner.
cassettensim-Animation
Vorbereitend für die cassettensim-Animation benötigen wir die SDL2-Bibliothek:
sudo apt-get install libsdl2-*
und passen in der sdlskale.cxx im Ordner iRadio/display/x11/cassettensim
diverse Werte vor allem für die Größenverhältnisse eines 3,5"
SPI-RPI-Display an:
// Rotationsgeschwindigkeit der Kassettenspulen
rotationswinkel -= 8;
#define SKALE_HOEHE 667
#define SKALE_BREITE 1000
// Position und Dimension der Kassetenspulen
SDL_Rect SpuleLinksRect;
SpuleLinksRect.x = 240; SpuleLinksRect.y = 246;
SpuleLinksRect.w = 120; SpuleLinksRect.h = 120;
SDL_Rect SpuleRechtsRect;
SpuleRechtsRect.x = 649; SpuleRechtsRect.y = 246;
SpuleRechtsRect.w = 120; SpuleRechtsRect.h = 120;
/ Position und Dimension Programmanzeige
int texW = 0; int texH = 0;
SDL_QueryTexture(textur_prgtitel, NULL, NULL, &texW, &texH);
SDL_Rect dstrect_p = { 370, 350, texW, texH };
// Position und Dimension Songanzeige
SDL_QueryTexture(textur_songtitel, NULL, NULL, &texW, &texH);
SDL_Rect dstrect_s = { 370, 460, texW, texH };
mit:
sudo ./build.sh
im gleichen Ordner kann nun die Animation compiliert werden. Der Aufruf wird in die rc.loal eingetragen.
startx /home/pi/iRadio/display/x11/cassettensim/sdlskale &
der Teiber fbcp-ili9341:
sudo apt-get install cmake
cd ~
git clone https://github.com/juj/fbcp-ili9341.git
cd fbcp-ili9341
mkdir build
cd build
cmake -DSPI_BUS_CLOCK_DIVISOR=40 -DWAVESHARE35B_ILI9486=ON -DUSE_DMA_TRANSFERS=OFF -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON -DSTATISTICS=0 ..
make -j
auch hier wird ein Aufruf in der rc.local hinterlegt
/home/pi/fbcp-ili9341/build/fbcp-ili9341 &
in der raspi-config stellen wir eine Auflösung von 720x480 16:9 ein.
mediaplayerd
im Ordner iRadio/mediaplayerd wird die mediaplayerd.cpp ausgetauscht gegen die Version hier in post #420:
FAQ zum iRadio
die Steuerdatei iRadio/mediaplayerd/mpvlcd wird ergänzt durch:
--random \
--zoom 2.3 \
--aspect 16:9 \
--no-autoscale \
und der mediaplayerd mittels build.sh wie gehabt erzeugt und in der rc.local eingetragen.
/usr/bin/mediaplayerd &
Bau der Drehencodersteuerung
unter dem obigen link in post #419 findet sich ein neuer Inhalt für die Datei iRadio/rotary.c. Damit wird der Taster für die Medienumschaltung aktiviert.
Die Belegung des encoders ist im Quellcode ersichtlich. Hier noch der Hinweis: es muss ein encoder-Modul mit pullup-Widerständen benutzt werden.
natürlich ist hier auch wieder ein build.sh notwendig.
Aktivierung der Tonausgabe über die Klinkenbuchse
mit:
aplay -l
lassen wir uns die card-nummer der Klinkenbuchse anzeigen und übernehmen den Wert in die Datei asound.conf
sudo nano /etc/asound.conf
die dann z.B. so aussieht:
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
Keine Kommentare:
Kommentar veröffentlichen