in diesem Radio steckte schon lange ein iRadio mit Textanzeige, war aber nie richtig fertiggestellt. Nun wollte ich mal sehen wie weit ich mit einer Animation auf einem SPI-Display komme
Bernhard hatte am Beispiel eines Display mit ST7735-Controller mal eine Anleitung erstellt, wie man per Framebuffer Displays dieser Art in iRadio einbinden kann. Hier nachzulesen:
12. Teil iRadio: Displayanbindung über Framebuffer
weitere Quellen, die mir weitergeholfen haben:
2.2“ SPI-Display (ILI9341) am Raspberry betreiben
ili9341 Raspberry Pi guide
als passenden Treiber für den ILI9341-Controler ermittelte ich den "rpi-display"-Treiber. Um erst mal eine Textausgabe zu realisieren ist in der /boot/config.txt diese Zeile einzutragen:
dtparam=sdtoverlay=rpi-display,speed=32000000,rotate=270
die Umschaltung auf das kleine Display erfolgt dann mit:
con2fbmap 1 1
es kann Zufall gewesen sein, aber vermutlich stand der rpi-display erst nach einem rpi-update zur Verfügung.
Damit gab es schon mal eine Textanzeige. X11 verlangte noch weitere Konfigurationen.
so in der sudo /etc/modules-load.d/fbtft.conf:
spi-bcm2835
fbtft_device
und in sudo /etc/modprobe.d/fbtft.conf:
options rpi-display name=rpi-display
X11 ist jetzt startfähig:
Kommen wir zur Animation. Es bietet sich die Kassettenanimation von hmaisch/Bernhard an.
Da diese für ein 5" Display mit der Auflösung 800x480 geschrieben wurde und das SPI-Display nur 320x240 bietet wird erst mal nur ein Ausschnitt gezeigt:
das ist aber eigentlich okay. Das Sichtfenster und damit das Display zeigen auch an dem Rekorder nur einen Teilbereich der Kassette.
Eine angepasste Auflösung liefert einen zu kleinen Massstab und damit eine unrealistische Animation:
Nun wollte ich aber wenigstens die Wickelteller komplett zeigen und ging daher einen Kompromiss ein mit der Auflösung 600x360:
der für uns wichtige Teil der rc.local:
..
con2fbmap 1 1
/usr/bin/vlcd
#/usr/bin/displayd &
/usr/bin/gpiod &
startx /home/pi/iRadio/display/x11/cassettensim/sdlskale &
..
An der rotary.c gab es die üblichen Änderungen:
#define RoAPin 23 // GPIO-Pin 13, Pinnummer 33
#define RoBPin 24 // GPIO-Pin 19, Pinnummer 35
Nun zum Radio selbst.
Die Senderabstimmung bedient nun einen Drehencoder und dient damit
weiterhin zum Einstellen des Senders. Das Lautstärkepoti verblieb im
Radio und liegt nun im Signalweg zwischen HDMI-DAC und
TDA2030A-Verstärker. Als Netzteil setzte ich wieder ein Hi-Link Modul
ein mit 5V / 2A, welches in der Kabelbox der Rückwand Platz findet.
Gehalten wir das Modul durch eine Lochrasterplatte auf der Innenseite,
die auch die Buchsenleiste für den aufgesteckten Verstärker trägt sowie
eine kleine Potentialverteilung. Der originale Laustsprecher hat einen
satten, vollen Klang.
und dann haben wir natürlich auch wieder ein Filmchen. Der akustische Verpixelung klingt schrecklich, aber bis jetzt wurde das Video noch nicht angemahnt.
Keine Kommentare:
Kommentar veröffentlichen