Wyświetlacz LCD dla Raspberry Pi niskim kosztem

Cześć, w dzisiejszym artykule chciałbym zaprezentować Wam jak w prosty i bardzo tani sposób podłączyć wyświetlacz LCD do Raspberry Pi (bez użycia złącza HDMI). Wystarczy nam do tego celu interfejs SPI wyprowadzony na pinach każdej malinowej płytki :) Zaczynajmy więc!

Instalacja systemu

Aby uruchomić GUI będziemy potrzebowali obrazu o nazwie Raspbian Stretch with desktop. Jeżeli chcemy na ekranie wyświetlić samą konsolkę lub budujemy coś a’la info-kiosk, to zdecydowanie polecam system podpisany Raspbian Stretch Lite. Obrazy systemów możemy pobrać ze strony https://www.raspberrypi.org/downloads/raspbian/. Do wypalenia obrazu na karcie idealnie nada się porgram o nazwie Etcher.

Podłączenie ekranu

Nazwy pinów wg. rozpiski ze strony https://pinout.xyz/

[table id=3 /]

Konfiguracja systemu

Pierwszym krokiem jest włączenie obsługi SPI.

sudo raspi-config

Interfacing options > SPI > Enable

Następnie dodajemy moduł rpi-display do pliku konfiguracyjnego malinki. W tym celu edytujemy za pomocą nano plik /boot/config.txt

sudo nano /boot/config.txt

Na jego końcu dopisujemy takie oto linijki:

dtoverlay=rpi-display
dtparam=rotate=90
dtparam=speed=10000000
dtparam=xohms=100
dtparam=debug=4

Uważniejsi zauważą, że obracamy tutaj obraz o 90 stopni. Dzięki temu nasz nowy monitor będzie wyświetlał pulpit w poziomie, a nie w pionie (czyli tak jak na standardowym monitorze panoramicznym).

Po zapisaniu pliku i ponownym uruchomieniu malinki system powinien wykryć nasz ekran jako urządzenie /dev/fb1. Możemy to sprawdzić za pomocą komendy

ls /dev/fb*

Jeżeli nie widzimy fb1 to prawdopodobnie źle podłączyliśmy ekran.

Raspbian Stretch Lite

Z racji, że używamy minimalnego obrazu sami musimy zadbać o serwer X

sudo apt-get install --no-install-recommends xserver-xorg x11-xserver-utils xinit

Teraz musimy doinstalować preferowane przez nas środowisko. Tutaj odsyłam do dużo bardziej obszernego artykułu na forum Raspberry Pi.

Rasbian Stretch with desktop

Kolejnym krokiem jest domyślne przekierowanie serwera X na nasz ekran zamiast na złącze HDMI. W tym celu edytujemy plik /usr/share/X11/xorg.conf.d/99-fbturbo.conf

sudo nano /usr/share/X11/xorg.conf.d/99-fbturbo.conf

W polu Option „fbdev” zmieniając wartość „/dev/fb0” na „/dev/fb1”.

Gotowe

Po ponownym uruchomieniu malinki powinniśmy ujrzeć nasz pulpit na małym ekranie:

Jak widać do wyświetlania pulpitu taka zabawka się niezbyt nadaje, jednak jeżeli napiszemy własny program z odpowiednim UI, może się całkiem nieźle sprawdzić w roli prostego ekranu.

Jeżeli chcemy mieć tylko malutki ekran do konsoli wystarczy, że zmienimy opcję bootowania:

sudo raspi-config

Boot Options > Desktop / CLI > Wybieramy odpowiednią opcję (Console lub Console Autologin)

Po reboocie zobaczymy coś takiego:

Podłączenie takiego ekranu jest dobrym początkiem, jeżeli chcemy postawić coś w rodzaju kiosku informacyjnego na RPi. Co do tematu kiosku to postaram się go nieco rozwinąć w kolejnym artykule :)