Wiele ekranów wyświetlacza


16

Chcę zbudować mini system multimedialny oparty na raspberry pi B +, który ma 2 ekrany wyświetlacza:

  1. Główny ekran (jak 42-calowy telewizor LED), który odtwarza główny film w jakości Full HD.
    • HDMI
    • RCA / AV / Composite
  2. Kontrolny ekran dotykowy (jak 3 ~ 8 "TFT / LCD / ...), który wyświetla listę dostępnych filmów, szczegóły aktualnie odtwarzanego wideo na ekranie głównym oraz niektóre opcje i ikony graficzne do wyboru, który film chcę być odtwarzany na głównym ekranie telewizora.

    • HDMI
    • RCA / AV / Composite
    • USB
    • GPIO (równoległy lub szeregowy)
    • DSI
    • . . . .

    Dużo na tym szukałem na kilku różnych forach; często zauważano, że po podłączeniu HDMI RCA wyłącza się i na odwrót (czy to prawda?). Zakładając, że jest to poprawne, jedynymi opcjami protokołu dla ekranu sterowania są USB, GPIO i DSI.

Teraz moje pytania są następujące:

  1. Czy możliwe jest posiadanie 2 różnych treści wyświetlacza przy użyciu tylko 1 raspberry pi B +?
  2. Jeśli tak, który protokół jest najlepszy dla kontrolnego ekranu dotykowego? (HDMI / RCA / USB / GPIO / DSI / ...).

    Jak mam obsługiwać te jednoczesne wyświetlanie treści?

  3. Jeśli nie, co sugerujesz mi zrobić?

    Czy są jakieś inne opcje niż użycie 2 tablic Raspberry pi B +?

Wielkie dzięki za poświęcony czas i pomoc. Jest to bardzo cenione.


2
Jak wywnioskowałeś, jeśli podłączysz drugi ekran do czegoś innego niż HDMI lub RCA, powinieneś być w stanie korzystać z obu. Zostało to potwierdzone przez raspberrypi.org przy użyciu dodatkowego adaptera VGA dla modeli 40-pinowych +.
Złotowłosa

Dzięki @goldilocks za komentarz. Widziałem o adapterze VGA Gert i podobnych sprawach. Ale moim głównym problemem jest to: w jaki sposób mogę obsługiwać te 2 ekrany, aby wyświetlać różne treści? Od czego powinienem zacząć Przepraszam, że zadaję proste pytania, ale jestem zupełnie nowy w pi i Linux!
Omid1989

2
Nie będziesz mógł rozpocząć, dopóki nie podejmiesz decyzji i nie będziesz mieć dwóch ekranów. Potem powinno to być dość proste, ale wszelkie pytania na ten temat są ogólne i dotyczą Linuksa . Jeśli szukasz „podwójnych monitorów linux X”, znajdziesz różne rzeczy. Domyślnie to, co prawdopodobnie się wydarzy, to to, że dostaniesz to samo na obu ekranach, ale X można skonfigurować tak, aby traktować je inaczej. Mogą, ale nie muszą mieć indywidualnych buforów ramki (które mogą, ale nie muszą mieć znaczenia, w zależności od tego, co chcesz zrobić).
złotowłosy

Jeszcze raz dziękuję @goldilocks za pomocny komentarz. Czy mógłby Pan krótko opisać, czym są „framebuffer” i „X”? Już szukałem ich, ale po prostu się zdezorientowałem!
Omid1989

2
Wikipedia zwykle robi porządną robotę z tego rodzaju rzeczami. X, a właściwie serwer Xorg jest podstawową warstwą normalnego pulpitu GUI ( lxdedziała na nim). Bufora ramki mogą być używane do robienia rzeczy graficzne poza X (na przykład na pi, omxplayerużywa go). Jeśli chcesz tylko zwykłego pulpitu z dwoma głowami, nie musisz się tym martwić.
Złotowłosa

Odpowiedzi:


8

Raspberry Pi Foundation twierdzi jednoznacznie, że adapter VGA w nagłówku GPIO „oznacza, że ​​można go używać jako dodatkowego monitora obok HDMI” ( stąd ). Z pewnością powinieneś być w stanie to zrobić przez USB; dowody na to, że pi działa z wieloma głowami, zobacz komentarze poniżej. Wyjątkiem jest oczywiście próba jednoczesnego korzystania z wideo HDMI i RCA. Sądzę, że to ograniczenie ma związek z tym, że GPU może obsłużyć tylko jedno wyjście. Zakłada się również, że wideo USB nie może korzystać z GPU, ale jestem tego pewien; piTFT i inne ekrany dotykowe oparte na GPIO również nie mogą używać go bezpośrednio. Jest to naprawdę dobre, jeśli chcesz mieć podwójne głowice, ponieważ oznacza to, że powinny istnieć dwa całkowicie oddzielne systemy wideo i stamtąd bierze je Linux.

Jeśli uruchomisz dwa wyświetlacze w X, będą one prawdopodobnie domyślnie dublowane, ale inne ustawienia można łatwo skonfigurować. Nie jestem pewien, czy można uruchomić X na jednym monitorze i buforze ramki na drugim, czy uruchomić dwa bufory ramki. Chociaż to ostatnie jest możliwe, może nie mieć zastosowania do wszystkich konfiguracji.


Dzięki @goldilocks za odpowiedź. Właściwie już znalazłem odpowiedź na moje pytanie na oficjalnym forum Raspberry Pi. Ktoś już to zrobił, nawet na 3 monitorach, najpierw edytując jądro, a następnie tworząc 3 bufory ramek. Więcej informacji można znaleźć tutaj: raspberrypi.org/forums/viewtopic.php?p=661085#p661085
Omid1989

1
Dziękuję wam - może będę mógł wykorzystać w celu potwierdzenia, że niektóre z moich założeń powyższych. Dodałem to częściowo, ponieważ ktoś właśnie zadał pytanie podobne do tego, które tutaj przekierowałem, ponieważ zgodnie z filozofią SE nie chcemy 15 różnych wątków pytań i odpowiedzi dotyczących mniej więcej tego samego („Czy mogę uruchomić wiele ekranów? „). Możesz również szczegółowo odpowiedzieć na swoje pytanie, jeśli podoba Ci się / kiedy to działa.
złotowłosy

Chociaż czytałem ten temat na oficjalnym forum Raspberry Pi, nie mogłem w pełni zrozumieć odpowiedzi, ponieważ nie jestem zbyt dobrze zaznajomiony z terminami takimi jak jądro, framebuffer itp. Więc byłbym wdzięczny, jeśli podsumujesz tę odpowiedź i opublikujesz samouczek krok po kroku tutaj; abym mógł wybrać najlepszą odpowiedź tutaj. Dzięki miliardowi za poświęcony czas i pomoc @goldilocks. Naprawdę to doceniam.
Omid1989

@goldilocks A jak mogę przełączyć się z ekranu lcd na ekran hdmi (nie jest to konieczne, aby uruchomić się w tym samym czasie)? Ja zapytałem tutaj pytanie .
Ionică Bizău,

Drodzy @goldilocks, teraz, kiedy fundacja RaspberryPi w końcu wydała swój oficjalny ekran, może uda nam się znaleźć lepszą odpowiedź na to popularne pytanie. Może to pomóc wielu entuzjastom. Czekam na wiadomość od ciebie.
Omid1989,

0

OP nie dostarczył wystarczającej ilości informacji o oprogramowaniu używanym do wybierania filmów itp. Podejrzewam więc, że pożądane jest, aby X działał na dwóch ekranach jednocześnie, przy czym jeden kontrolował drugi. W takim przypadku odpowiedź brzmi „nie”, o ile mogę ustalić

W przypadku innych funkcji wieloekranowych, oto krótkie podsumowanie tego, co zrobiłem:

1) Na pierwszym Rpi z 3,5-calowym ekranem dotykowym mogę podłączyć ekran HDMI i używać go jako terminala znakowego, naciskając Ctrl-Alt-F2. Ekran 3,5 "zawiesza się i możesz wykonywać wszystkie polecenia na HDMI za pomocą tej samej klawiatury i myszy. Aby wrócić do ekranu 3,5", naciśnij Ctrl-Alt-F7

2) Na moim drugim Rpi mam rozruch z HDMI w X. Następnie za pomocą PuTTY (znak) lub Remote Desktop (grafika) lub TightVNC (grafika), mogę mieć uruchomiony drugi ekran, który jest niewidoczny na HDMI. Normalna klawiatura i mysz nadal działają na HDMI. Używam Bluetooth, aby uzyskać dźwięk, ponieważ mój monitor jest tylko na ekranie.

Klawiatura i mysz komputera działają w programie zdalnego dostępu. Zdecydowanie moim ulubionym jest Pulpit zdalny, ale TightVNC ułatwia przesyłanie plików.
We wszystkich przypadkach najprawdopodobniej będziesz chciał również uruchomić FileZilla dla transferów, szczególnie jeśli komputer sterujący sam w sobie jest podwójnym monitorem.

Bardziej związany z pytaniem OP, jedynym sposobem, w jaki znalazłem kontrolę rozruchowego HDMI z programów zdalnego dostępu, są funkcje aparatu. Ale jest zastrzeżenie.

TU JEST RUB: Gdy używasz funkcji aparatu, takich jak raspivid, raspistill itp., ZAWSZE wyświetla się na wyjściu HDMI. Nie jest nawet wystarczająco uprzejmy, aby przejść na pełny ekran, co oznacza, że ​​nadal możesz za nim widzieć swój pulpit X. Wygląda na to, że pasuje do wyświetlacza od góry do dołu, a kiedy funkcje aparatu zostaną zakończone, HDMI albo wróci na pulpit, albo stanie się czarne, jeśli przekroczysz normalny czas braku aktywności, który pustoszy ekran.

3) Uruchomiłem również moje inne Rpi na 60-calowy ekran, aby pokazać kilka sztuczek rodzinie i po prostu zaakceptowałem fakt, że widzieli, jak wywołuję te funkcje. Po prostu trzymam otwarte małe okno terminala (na środku ekranu, aby na nim nakładały się filmy) do miejsca, w którym mam kilka skryptów BASH do wydawania dowolnych poleceń, których potrzebuję (na przykład, aby pokazać im mój ostatni timelapse lub critters Czujnik ruchu kamery NoIR złapany na podwórku w nocy) i część dowodzenia przeszła im przez głowę. Właśnie obejrzeli filmy.

Jeśli korzystasz z interfejsu graficznego w swoim programie do wybierania muzyki, tym lepiej, ponieważ wtedy będą mogli zobaczyć, co robisz. Wtedy mogą och, och, ahhh, w jaki sposób możesz sprawić, by tak mały komputer zrobił to wszystko, genialne, że jesteś.

Ale jeśli chodzi o sedno tego pytania, wydaje mi się, że OP myśli bardziej zgodnie ze środowiskiem prezentacji biznesowej. Twierdzę, że w takim przypadku nie ma prawdziwego substytutu dla małego notebooka, który mógłby obsługiwać dwa wyświetlacze.


0

Właśnie znalazłem krótki film, który pokazuje, jak ten facet był w stanie obsługiwać dwa monitory, zmieniając rzeczy w jądrze. Nie mogę tego komentować inaczej niż po prostu wymienić link:

https://www.youtube.com/watch?v=dTcU5YSq-Ww


Witamy w Raspberry Pi! Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Steve Robillard,

Zrozumiany. To było poza moim poziomem wiedzy. Było to jednak związane z PO.
SDsolar

A raczej wkleiłem ten komentarz do pytania PO.
Piotr Kula,

0

Jest jeden sposób, ale musisz wykonać trochę pracy fizycznej. Na oficjalnej stronie fundacji pi stwierdzono, że omxplayer nadaje się do podwójnego wyjścia audio, ale musisz to zrobić z wiersza poleceń. Wystarczy wpisać następujące polecenie: omxplayer --display = 5 [NAZWA PLIKU]

To polecenie pozwala odtwarzać filmy na wyjściu HDMI z jednoczesnym użyciem ekranu dotykowego.


0

Jest to możliwe, jeśli używasz frameworka Kivy. Będziesz mógł kodować swój interfejs użytkownika w pythonie (dla ekranu dotykowego), a następnie odtwarzać filmy niezależnie przez wyjście HDMI.

Podstawowy przykład struktury kodu na RPi3 z oficjalnym 7-calowym ekranem dotykowym znajduje się tutaj .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.