Projektor DLP z wykorzystaniem Raspberry Pi 3 oraz modułu TI LightCrafter Display 2000
W artykule omówiono podłączenie i obsługę modułu DLP LightCrafter Display 2000 (projektor DLP) produkcji Texas Instruments do komputera jednopłytkowego Raspberry Pi 3. Moduł ten został pierwotnie zaprojektowany do łatwej współpracy z komputerami jednopłytkowymi BeagleBone. Niestety pod kątem wydajności, zwłaszcza w aplikacjach multimedialnych, BeagleBone znacznie ustępuje konkurencyjnemu rozwiązaniu jakim jest Raspberry Pi 3.
Jak jednak zostanie to przedstawione w artykule, konfiguracja Raspberry Pi do pracy z modułem LightCrafter Display 2000 jest stosunkowo prosta, a radość z samodzielnej budowy bezgłośnego i energooszczędnego projektora multimedialnego – bezcenna.
Już od dobrych kilkunastu lat na rynku komponentów elektronicznych mamy do czynienia z rewolucją w obszarze układów mikro-elektro-mechanicznych (MEMS). Układy te, które jeszcze kilka lat temu znane były wyłącznie z zastosowań w mikrofonach i czujnikach ciśnienia, dziś są niemal nieodłącznym elementem większości urządzeń mobilnych.
Badania prowadzone nad układami MEMS (pod kątem ich miniaturyzacji, nowych obszarów zastosowań i obniżenia kosztów produkcji) wymusiły również tożsamą rewolucję w obszarze układów MOEMS, czyli układów łączących zagadnienia mikrooptyki i MEMS. Jednym z najbardziej reprezentatywnych przykładów MOEMS-ów są projektory DLP oraz zastosowana w nich technologia sterowanej matrycy milionów mikroluster.
To co do niedawna wydawało się tematyką rodem z filmów science-fiction, dziś trafia „pod strzechy” i umożliwia zbudowanie własnego miniprojektora w domowym zaciszu.
Projektor DLP
W świecie elektroniki użytkowej od lat obserwujemy toczące się „wojny” standardów i rozwiązań technologicznych, jak np. rozstrzygnięte już starcia formatów Blue-ray i HD-DVD czy technologii plazmowej i LCD. W segmencie projektorów multimedialnych klienci wciąż zadają pytanie – wybrać projektor LCD bazujący na panelach ciekłokrystalicznych, czy jednak zdecydować się na technologię mikroluster zastosowaną w projektorach DLP? Nie podejmując się tutaj żadnych prób rozstrzygnięcia tego sporu, warto podkreślić jedno – w świecie projektorów DLP niepodzielny prym wiedzie firma Texas Instruments, która jest autorem i właścicielem patentów z zakresu technologii DLP. Choć przywykło się mówić, że wszystkie wojny technologiczne wygrywa końcowy klient – otrzymujący tańsze i lepsze rozwiązanie – nie mniejsze zwycięstwo odnoszą również… konstruktorzy i programiści.
Projektor DLP – zalety
Firma Texas Instruments swoją przewagę rynkową próbuje wypracować nie tylko na poziomie czysto technicznym (projektor DLP to wyższy kontrast obrazu, głębokie czernie i niższy pobór mocy), ale również w wykorzystywanym modelu biznesowym – dostarczając konstruktorom i producentom urządzeń końcowych kompleksowy zestaw układów, zestawów deweloperskich i narzędzi do szybkiego i łatwego zaadaptowania technologii DLP w konstruowanych projektorach. Przykładem takich działań jest zestaw DLP LightCrafter Display 2000 (DLPDLCR2000EVM) – rysunek 1.
Rys. 1. Moduł projektora DLP LightCrafter Display 2000
Sercem każdego projektora DLP jest układ DMD (z ang. Digital Micromirror Device), oparty na technologii MOEMS i będący sterowaną cyfrową tablicą tysięcy mikroluster (każde o powierzchni kilkunastu mikrometrów kwadratowych) odbijających lub rozpraszających padający na nie strumień świetlny.
W zależności od konstrukcji projektora możemy wyróżnić urządzenia z pojedynczym układem DMD (wówczas światło odbite przepuszczane jest przez wirujący trójkolorowy dysk umożliwiający uzyskanie wielobarwnego obrazu) lub z wieloma matrycami mikroluster (każdy z trzech składowych kolorów RGB jest wyświetlany przez oddzielny układ DMD). Wadą pierwszego z rozwiązań jest „efekt tęczy”, natomiast drugiego wysoka cena.
Układ DMD, filtry, soczewki oraz źródło światła stanowią „część optyczną” w blokowej budowie typowego projektora DLP. Uzupełnieniem toru optycznego jest „część elektroniczna” w skład której zaliczamy układ kontrolera matrycy DMD, układ PMIC do zarządzania zasilaniem i sterowaniem diodami LED, pamięci EEPROM/Flash oraz w zależności od typu pracy projektora – wbudowany mikroprocesor lub układ interfejsowy (do konwersji sygnałów HDMI, VGA, …). Typowy projektor DLP w schemacie blokowym przedstawiono na rysunku 2.
Rys. 2. Schemat blokowy typowego projektora DLP (na podstawie: ti.com)
DMD od TI – ekspresowy przegląd
W zależności od docelowego przeznaczenia produktu (rynek IoT, projektory mobilne do automatyki domowej, kino domowe, …) firma Texas Instruments przygotowała szereg układów DMD różniących się m.in. rozmiarem matrycy, a tym samym rozdzielczością wyświetlanego obrazu – od standardu nHD (układ DLP2000) poprzez WVGA (DLP2010 i DLP3000), 720p (DLP3010), WXGA (DLP4500) aż do rozdzielczości 1080p (DLP4710) i 4K. Dla każdej z matryc DMD przygotowano również dedykowany kontroler matrycy oraz układ PMIC. Tak dobrane zestawy tworzą gotowe platformy do budowy własnych projektorów DLP. Co więcej, dla każdego z zestawów przygotowano również platformy referencyjne, ułatwiające pracę na wczesnym etapie prototypowania. Zbiorcze informacje o wybranych układach DMD oraz dedykowanych dla nich kontrolerach i układach PMIC przedstawiono w tabeli 1.
.2″ nHD | .2″ WVGA | .3″ 720p | .47″ 1080p | |
Rozdzielczość | 640×360 | 854×480 | 1280×720 | 1920×1080 |
Wielkość plamki | 7.6μm | 5.4μm | 5.4μm | 5.4μm |
Jasność (w lumenach) | 20-30 | 50-100 | 200-300 | 500+ |
Maks, przekątna obrazu w dobrze oświetlonym pomieszczeniu | 15-20″ | 20-30″ | 35-45″ | 50-60″ |
Maks. przekątna obrazu w słabo oświetlonym pomieszczeniu | 40″+ | 50″+ | 60″+ | 70″+ |
Układ DMD | DLP2000 | DLP2010 | DLP3010 | DLP4710 |
Kontroler DMD | DLPC2607 | DLPC3430 | DLPC3433 | DLPC3439 |
Układ PMIC | DLPA1000 | DLPA2000 | DLPA2005 | DLPA3000 |
Zestaw ewaluacyjny | DLPDLCR2000EVM | DLPDLCR2010EVM | DLPDLCR3010EVM | DLPDLCR4710EVM |
Tab. 1. Portfolio układów DMD wraz z listą dedykowanych kontrolerów (źródło: ti.com)
Moduł DLP LightCrafter Display 2000
Jak przedstawiono to w tabeli 1, zestaw DLP LightCrafter Display 2000 (DLPDLCR2000EVM) został wyposażony w układ DLP2000 o rozdzielczości nHD (640×480). Jest on przeznaczony do budowy najtańszych i energooszczędnych projektorów mobilnych. Zestaw ten nie ma wbudowanych kontrolerów interfejsów HDMI, VGA czy MHL. Na złącza szpilkowe w rozstawie kompatybilnym z komputerami BeagleBone wyprowadzone zostały sygnały interfejsu równoległego RGB. Jest to interfejs 24-bitowy RGB wraz z sygnałami HSYNC, VSYNC, CLK oraz DE. Ponadto wyprowadzono linie I2C do komunikacji z kontrolerem DLPC2607 oraz linie sterujące pracą modułu – rysunek 3.
Rys. 3. Rozkład wyprowadzeń płytki DLP LightCrafter Display 2000
Raspberry Pi – interfejs DPI oraz podłączenie projektora
Wszystkie komputery Raspberry Pi zostały wyposażone w kontroler DPI (z ang. Display Parallel Interface) umożliwiający bezpośrednie podłączenie wyświetlaczy LCD/projektorów z interfejsem równoległym RGB, do wyprowadzeń GPIO. W zależności o wybranej konfiguracji, kontroler DPI umożliwia wysterowanie wyświetlaczy pracujących w formacie RGB888/RGB24 (po 8 bitów na kolor), RGB666 (po 6 bitów na kolor) oraz RGB565 (5 linii dla koloru czerwonego i niebieskiego oraz 6 linii dla koloru zielonego). Wszystkie sygnały kontrolera (sygnały R, G, B, HSYNC, VSYNC, CLK oraz DE) zostały wyprowadzone na 40-pinowe złącze rozszerzeń, po uprzedniej konfiguracji wyprowadzeń GPIO do pełnienia alternatywnej funkcji ALT2. Przypisanie poszczególnych linii interfejsu DPI do wyprowadzeń GPIO zostało przedstawione w tabeli 2.
Wyprowadzenie GPIO | Funkcja (konfiguracja ALT2) |
Wyprowadzenie GPIO | Funkcja (konfiguracja ALT2) |
|
GPIO 0 | PCLK | GPIO 14 | DPI_D10 | |
GPIO 1 | DE | GPIO 15 | DPI_D11 | |
GPIO 2 | VSYNC | GPIO 16 | DPI_D12 | |
GPIO 3 | HSYNC | GPIO 17 | DPI_D13 | |
GPIO 4 | DPI_D0 | GPIO 18 | DPI_D14 | |
GPIO 5 | DPI_D1 | GPIO 19 | DPI_D15 | |
GPIO 6 | DPI_D2 | GPIO 20 | DPI_D16 | |
GPIO 7 | DPI_D3 | GPIO 21 | DPI_D17 | |
GPIO 8 | DPI_D4 | GPIO 22 | DPI_D18 | |
GPIO 9 | DPI_D5 | GPIO 23 | DPI_D19 | |
GPIO 10 | DPI_D6 | GPIO 24 | DPI_D20 | |
GPIO 11 | DPI_D7 | GPIO 25 | DPI_D21 | |
GPIO 12 | DPI_D8 | GPIO 26 | DPI_D22 | |
GPIO 13 | DPI_D9 | GPIO 27 | DPI_D23 |
Tab. 2. Przypisanie linii interfejsu DPI do wyprowadzeń GPIO
Ze względu na możliwość konfiguracji kontrolera do pracy w trybach RGB888, RGB666 oraz RGB565, poszczególne wyprowadzenia GPIO są mapowane do funkcji linii R[x], G[x] oraz B[x] zgodnie z informacjami przedstawionymi w tabeli 3.
Tab. 3. Przypisanie linii interfejsu DPI do wyprowadzeń GPIO (na podstawie: raspberrypi.org)
Raspberry Pi – konfiguracja
Czas przystąpić do konfiguracji komputera Raspberry Pi, którą rozpoczynamy od pobrania ze strony producenta ostatniej wersji dystrybucji Raspbian [1] (będącej modyfikacją Debiana dla komputerów Raspberry Pi) oraz wgrania obrazu systemu na kartę SD. Następnym krokiem jest konfiguracja wyprowadzeń GPIO do pełnienia alternatywnej funkcji ALT2, a więc funkcji przypisanej do kontrolera DPI. Konfiguracja ta zostanie przeprowadzona z wykorzystaniem pliku konfiguracyjnego config.txt – umieszczonego na partycji /boot w obrazie systemu. Potrzebne są także predefiniowane warstwy opisu Device Tree (dostępnych również na partycji /boot w katalogu overlays).
Warstwy opisu Device Tree ułatwiają organizację wsparcia dla wielu konfiguracji sprzętowych z wykorzystaniem tego samego jądra systemu. Listę przygotowanych przez producenta warstw wraz z ich opisem i listą przyjmowanych argumentów można znaleźć w pliku /boot/overlays/README. Wśród plików z rozszerzeniem *.dtbo (a więc skompilowanych warstw opisu Device Tree), w katalogu /boot/overlays możemy odszukać również pliki dpi18.dtbo oraz dpi24.dtbo, które zgodnie z zawartym w README opisem, konfigurują wyprowadzenia GPIO do pracy w trybie DPI z magistralą 18- lub 24-bitową.
Jak możemy szybko przeliczyć, konfiguracja magistrali w trybie 24-bitowym „pochłonie” wszystkie 28 wyprowadzeń GPIO (24 linie RGB oraz cztery sygnały VSYNC, HSYNC, CLK i DE) – nie zostawiając tym samym możliwości komunikacji z kontrolerem DLPC2607 po magistrali I2C. W tym miejscu użytkownik może zdecydować się na wykorzystanie konwerterów sygnałów USB<->I2C i pełnej 24-bitowej konfiguracji lub skonfigurować interfejs DPI do pracy w trybie 18-bitowym. „Włączenie” wybranej warstwy Device Tree jest realizowane poprzez umieszczenie w pliku /boot/config.txt wpisu w postaci:
dtoverlay=<nazwa warstwy DTBO>
Dla omawianej 18-bitowej konfiguracji:
dtoverlay=dpi18
Podczas konfiguracji Device Tree należy upewnić się, że skonfigurowana warstwa nie koliduje z inną, uprzednio wykonaną konfiguracją sprzętu. W przypadku warstw dpi18 oraz dpi24, należy wyłączyć sprzętowe kontrolery magistral I2C oraz SPI (o ile zostały one uprzednio włączone):
dtparam=i2c_arm=off dtparam=spi=off
lub
#dtparam=i2s=on #dtparam=spi=on