SantyagoSantyago
Avatar

Witaj!
Blog archiwalny. Już niebawem nowy serwis!

YouTube RSS Facebook GitHub

Raspberry Pi to obecnie jedna z najpopularniejszych platform SBC, która podbiła serca wielu użytkowników na całym świecie. Dopiero co oswoiliśmy się z Raspberry Pi 2, a do naszych drzwi zapukała już "trójka". Zastanawiający jest również fakt, że na nowe Raspberry Pi 3 musieliśmy czekać zaledwie rok, a więc dwukrotnie krócej niż w przypadku jego poprzednika.

Osobiście byłem zaskoczony tak szybkim pojawieniem się nowej wersji, ale wygląda na to, że fundacja nie miała po prostu wyjścia, obserwując dynamicznie rozwijający się sektor małych komputerków z układami ARM.

Raspberry Pi 3 Model B

Raspberry Pi 3 Model B

Reklama

Społeczność Raspberry Pi doczekała się w końcu eksperymentalnej obsługi OpenGL 2.1 dla modelu Raspberry Pi 2. Jest to już druga platforma ARM, która obecnie wspiera ten standard. Po aktualizacji do najnowszej wersji systemu operacyjnego Raspbian, mamy możliwość włączenia sterownika GL bezpośrednio za pomocą programu raspi-conig.

raspi-config

Glxgears ze względu na synchronizację pionową raportuje tylko 60 klatek/s. Obsługa OpenGL 2.1 realizowana jest przez sterownik VideoCore4 Gallium3D bazujący na bibliotece Mesa 11.1.

glxgears

Benchmark glmark2 również się uruchamia, ale na chwilę obecną nie jest w stanie ukończyć testów, kończąc działanie przepięknym segfaultem.

glmark2

glmark2

Próba uruchomienia Nexuiz również zakończyła nię niepowodzeniem, powodując wywrotkę całego systemu. Miejmy nadzieję, że w przeciągu kilku lub kilkunastu tygodni, OpenGL będzie w pełni stabilny i użyteczny.

Jestem bardzo ciekaw, jak będzie się zachowywał w "naturalnych" zastosowaniach.

Czy zastanawialiście się kiedyś nad realizacją własnego projektu inteligentnego domu? Ja osobiście nigdy nie mogłem zebrać się w sobie, aby taki plan zrealizować we własnym domu, ale jakiś czas temu, dzięki uprzejmości sklepu ElTy.pl, trafiła w moje ręce ciekawa płyta UniPi, która znacznie upraszcza cała sprawę.

UniPI 1.1

Płytka została zaprojektowana do współpracy z poprzednią generacją komputerków Rasbperry Pi B oraz B+, jednak bez większych kłopotów dogada się również z Raspberry Pi 2.

UniPI jest wyspecjalizowanym rozszerzeniem, które zamienia naszą "mailnę" w zaawansowane urządzenie do sterowania automatyką domową. Bardzo istotną kwestią podczas projektowania jakiejkolwiek instalacji domowej, jest bezpieczeństwo użytkownika i ochrona jego zdrowia, dlatego ogromnym atutem UniPi jest spełnienie dyrektyw CE. Płyta posiada wymiar 198mm x 86mm i można ją zamontować na szynie DIN.

Dzięki ponownej uprzejmości sklepu internetowego elty.pl, miałem dziś okazję przetestować 7" wyświetlacze ze złączem HDMI. Zapraszam do obejrzenia materiału w serwisie YouTube. Mnie osobiście urzekł wyświetlacz z matrycą IPS, jednak posiadaczy komputerów Raspberry Pi / 2, szczególnie powinien zainteresować model z pojemnościowym ekranem dotykowym.

Kiedy wymieniłem swoją "malinę| na Raspberry Pi 2, pojawił się problem z uruchomieniem popularnych wyświetlaczy TFT 3.5" / 4" od WaveShare z rezystancyjnym panelem dotykowym. Producent, pomimo już dawnej premiery Rasperry Pi 2, nie przygotował stosownych instrukcji lub odpowiednich obrazów systemu. Po kilku eksperymentach, udało mi się w końcu ożenić te wyświetlacze z RPi2.

Zapraszam zatem do małego how-to na przykładzie świeżej instalacji dystrybucji Raspbian (2015-05-05).

W pierwszej kolejności musimy zmienić wyjście sygnału z HDMI na szynę SPI. W tym celu edytujemy plik /usr/share/X11/xorg.conf.d i zmieniamy urządzenie framebuffera z fb0 na fb1:

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

Zmiany zapisujemy wciskając CTRL-X, następnie Y i zatwierdzamy enterem.

Ekran dotykowy również korzysta z magistrali SPI do komunikacji z procesorem, jest ona jednak domyślnie wyłączona, dlatego musimy ją najpierw włączyć. Wydajemy polecenie:

  1. sudo raspi-config

Przechodzimy do pozycji "Advanced Options" i włączamy SPI (Enable/Disable automatic loading of SPI kernel module), zatwierdzając dwa kolejne pytania przyciskiem Yes.

 

 

Możemy wyjść z konfiguracji wybierając opcję Finish i zresetować urządzenie.

Jeśli korzystasz z wersji Rasbiana 2015-05-05, możesz pominąć kolejny krok, jeśli natomiast używasz wersji sprzed 31 stycznia 2015, konieczne będzie jeszcze za komentowanie na czarnej liście modułu spi-bcm2708 w pliku /etc/modprobe.d/raspi-blacklist.conf

  1. sudo nano /etc/modprobe.d/raspi-blacklist.conf

W przypadku świeżego Rasbiana (2015-05-05), plik powinien być pusty. Gdyby jednak znajdował się w nim zapis "blacklist spi-bcm2708", usuń go lub za komentuj linię dodając na jej początku znak # i zapisz zmiany.

W kolejnym kroku musimy pobrać i zainstalować sterowniki dla ekranu LCD oraz panelu dotykowego.

  1. sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update

Nastąpi ściąganie paczek jądra, firmware oraz odpowiednik modułów (~45MB). Kiedy paczki zostaną pobrane, powinna nastąpić ich instalacja.

Kiedy proces dobiegnie końca, restartujemy malinę:

  1. sudo reboot

Mamy już zaktualizowane sterowniki, więc musimy odpowiednio skonfigurować moduły jądra, edytując plik:

  1. sudo nano /etc/modules

Pod linią zawierającą snd-bcm2835 dodajemy:

  1. flexfb width=480 height=320 regwidth=16 init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3

oraz

  1. fbtft_device debug=3 rotate=0 name=flexfb speed=16000000 gpios=reset:25,dc:24

Dodajmy również odpowiednią konfigurację dla panelu dotykowego:

  1. ads7846_device model=7846 cs=1 gpio_pendown=17 speed=1000000 keep_vref_on=1 swap_xy=1 pressure_max=255 x_plate_ohms=60 x_min=200 x_max=3900 y_min=200 y_max=3900

Następnie edytujemy parametry bootowania:

  1. sudo nano /boot/cmdline.txt

i po "rootwait" doklejamy:

  1. fbtft_device.custom fbtft_device.name=flexfb fbtft_device.gpios=dc:24,reset:25 fbtft_device.bgr=1 fbtft_device.speed=16000000 fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo dma.dmachans=0x7f35 console=tty1 consoleblank=0 fbtft_device.fps=50 fbtft_device.rotate=0

Kolejny restart:

  1. sudo reboot

Po ponownym uruchomieniu, ekran powinien już działać prawidłowo, pokazując proces ładowania jądra:

Jeśli chcemy, aby od razu startował serwer X, edytujemy plik:

  1. sudo nano /etc/rc.local

i nad "exit 0" dodajemy linię:

  1. su -l pi -c startx

Kolejny restart i już mamy malinę z "iksami":

  1. sudo reboot

Prawie gotowe! Na zakończenie musimy jeszcze "aktywować" nasz panel dotykowy:

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

gdzie dodajemy nową sekcję:

  1. Section "InputClass"
  2.  Identifier "calibration"
  3.  MatchProduct "ADS7846 Touchscreen"
  4.  Option "Calibration" "3900 240 3900 240"
  5.  EndSection

oraz dodajmy do konfiguracji config.txt odpowiednie zapisy:

  1. sudo nano /boot/config.txt
  1. dtoverlay=ads7846,speed=500000,penirq=17,swapxy=1

Zapisujemy, restartujemy:

  1. sudo reboot

i gotowe :)

Touchscreen do góry nogami?

W przypadku 4" ekranu praktycznie nic nie musimy robić, ale okazuje się, że w przypadku wersji 3.5" ekran dotykowy interpretowany jest "góry nogami". Aby temu zaradzić, musimy doinstalować paczki xinput oraz evtest:

  1. sudo apt-get -y install xinput evtest

oraz odwrócić oś Y w, edytując odpowiedni plik:

  1. sudo nano /etc/X11/xinit/xinitrc

dodając przed . /etc/X11/Xsession linię:

  1. DISPLAY=:0 xinput --set-prop 'ADS7846 Touchscreen' 'Evdev Axis Inversion' 0 1

Po zapisaniu i ponownym uruchomieniu RaspberryPi 2, wszystko będzie jak należy.

Gdzie kupić wyświetlacze?

Wyświetlacze WaveShare 3.5" oraz WaveShare 4" kupicie spokojnie w sklepie elty.pl