Spisu treści:
- Krok 1: Zastrzeżenie
- Krok 2: Części i narzędzia
- Krok 3: lutowanie elementów elektronicznych
- Krok 4: Podłączanie kabla VGA
- Krok 5: Programowanie mikrokontrolera ATmega
- Krok 6: Korzystanie z AODMoST
- Krok 7: Przegląd projektu
Wideo: Alternatywnie okludujący dichoptyczny modyfikator transmisji stereoskopowej [ATmega328P+HEF4053B VGA Superimposer]: 7 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:26
Po moich eksperymentach ze szkłami ciekłokrystalicznymi służącymi do zatykania oczu (tu i tam), postanowiłem zbudować coś nieco bardziej wyrafinowanego i jednocześnie nie zmuszającego użytkownika do noszenia PCB na czole (ludzie czasami potrafią zachowywać się wrogi sposób, gdy widzą innych z elektroniką wystającą z ich ciał, cyborgi po prostu nie mają obecnie łatwo). Zaprojektowane przeze mnie urządzenie modyfikuje sygnał VGA wysyłany do wyświetlacza 3D (wideo musi być w formacie Góra – Dół lub Obok siebie), wzmacniając sygnał wideo stymulacją dichoptyczną. Ogromna biblioteka filmów i gier, które można oglądać i odtwarzać w kompatybilnych formatach 3D, powinna sprawić, że każdy użytkownik AODMoST będzie szczęśliwy i zaangażowany. Istnieją badania wskazujące, że formy leczenia, które są możliwe za pomocą AODMoST, są korzystne dla osób z niedowidzeniem.
Krok 1: Zastrzeżenie
Używanie takiego urządzenia może powodować napady padaczkowe lub inne niekorzystne skutki u niewielkiej części użytkowników urządzenia. Budowa takiego urządzenia wymaga użycia umiarkowanie niebezpiecznych narzędzi i może spowodować szkody lub zniszczenie mienia. Opisane urządzenie budujesz i używasz na własne ryzyko
Krok 2: Części i narzędzia
Części i materiały:
- Mikrokontroler ATmega328P-PU
- Przełącznik analogowy HEF4053BP
- 7805 w obudowie regulatora napięcia TO-220
- 3 tranzystory 2N2222
- Tranzystor BS170
- 2x rozproszone niebieskie diody LED 3mm
- rozproszona czerwona dioda LED 3mm
- 2x rozproszone żółte 3mm diody LED
- rozproszona zielona dioda LED 3mm
- 20 MHz HC49/US kryształ
- 10-pinowe złącze męskie AVR ISP (IDC)
- 2-pinowe złącze śrubowe do PCB Złącze 5,08 mm
- Przyciski dotykowe 8x 6x6mm
- 3x potencjometr 1k ohm 6mm
- Rezystor 3x 75 omów 1/4W
- Rezystor 3x 1 kΩ 1/4 W
- Rezystor 3x 2k7 omów 1/4W
- Rezystor 3k3 omów 1/4W
- Rezystor 11x 10 kΩ 1/4 W
- 2x kondensatory ceramiczne 20pF
- 3x kondensatory ceramiczne 100nF
- 2x kondensatory elektrolityczne 100uF
- płyta perforowana (70mm x 90mm, min 24 x 31 otworów)
- kilka kawałków drutu
- taśma izolacyjna
- papier
- Kabel męski VGA na męski VGA
- Zasilanie 12V – 15V DC
Narzędzia:
- przecinak ukośny
- szczypce
- śrubokręt płaski
- mały śrubokręt krzyżakowy
- nóż uniwersalny
- multimetr
- stacja lutownicza
- lutować
- Programator AVR (samodzielny programator jak USBasp lub możesz użyć ArduinoISP)
Krok 3: lutowanie elementów elektronicznych
Jeśli chcesz zaprogramować ATmegę przed lutowaniem, zrób to (możesz wtedy pozostawić CON1 poza PCB). Przylutuj wszystkie elementy elektroniczne do prefboardu. Do wykonania połączeń elektrycznych między komponentami użyj przewodów miedzianych (dopasowane powinny być te o średnicy 0,5 mm z kabla UTP). Upewnij się, że przewody nie powodują zwarć. Jeśli istnieje ryzyko zwarcia (ponieważ jest to przyczyną jednego z wyprowadzeń R21, przewodu z przodu między SW8 i C7 oraz przewodu znajdującego się z przodu obok Y1), zakryj przewód taśmą izolacyjną lub podgrzej -kurczliwe rurki.
Jeśli chcesz, możesz każdą płytkę drukowaną, zamiast korzystać z prefboardu. Procesy wykonywania PCB metodą transferu tonera opisałem w moim poprzednim projekcie. Płytka w plikach.svg powinna mieć wymiary 64,77 mm x 83,82 mm. Załączone pliki zawierające układy ścieżek powinny być bardzo pomocne, nawet jeśli wykonujesz połączenia na prefboard z przewodami miedzianymi.
Krok 4: Podłączanie kabla VGA
Przetnij kabel VGA na pół i zdejmij wszystkie przewody z izolacji. Oznacz jedną część przeciętego kabla jako IN, a drugą jako OUT. Przylutuj przewody do odpowiednich padów na PCB. Aby zidentyfikować, który przewód jest podłączony do którego styku w złączu, użyj testera ciągłości w swoim multimetrze, a następnie skonsultuj się z wyjściem VGA, aby zidentyfikować przeznaczenie każdego przewodu. Wystarczy podłączyć przewody, które przesyłają sygnał wideo w kolorze czerwonym, zielonym i niebieskim oraz impulsy synchronizacji poziomej i pionowej. Jeśli w twoim kablu są inne przewody, po prostu przylutuj je z powrotem lub jeszcze lepiej przylutuj je z powrotem przez prefboard, tak jak zrobiłem z białym przewodem łączącym piny 11 w złączach VGA (połączenie znajduje się teraz między R7 a R8). Karta graficzna wykrywa, że wyświetlacz VGA jest podłączony, wykrywając rezystancję w przybliżonym zakresie od 50 do 150 omów między pinami wideo R, G i B a masą (rezystory końcowe 75 omów w wyświetlaczu, AODMoST dodaje do tej rezystancji), więc I2C piny nie są tak naprawdę potrzebne, a kabel VGA może działać bez ich podłączenia (podobnie jak w kablu, którego użyłem, oczywiście brak I2C oznacza, że monitor nie będzie w stanie przesłać informacji o obsługiwanych rozdzielczościach, co może być problematyczne). Jeśli istnieje ryzyko zwarcia, użyj taśmy izolacyjnej lub rurki termokurczliwej. Połącz ekran w dwóch częściach przewodu ze sobą i za pomocą taśmy izolacyjnej zabezpiecz obie części kabla VGA razem i mocno przymocuj kabel do płytki drukowanej. Umieść kilka warstw papieru z tyłu PCB i przymocuj go taśmą izolacyjną.
Krok 5: Programowanie mikrokontrolera ATmega
Podłącz programator AVR do CON1 za pomocą odpowiedniego kabla taśmowego lub przewodów połączeniowych żeńskich do żeńskich. Użyłem USBasp i AVRDUDE, więc wgranie pliku.hex wymagało ode mnie wykonania polecenia:
avrdude -c usbasp -p m328p -B 8 -U flash:w:aodmost.hex
Musiałem też zmienić fuse bity na E:FF, H:D9, L:F7, aby mikrokontroler używał kryształu 20MHz. Zachowałem domyślne rozszerzone i wysokie wartości bajtów fuse byte i zmieniłem niską wartość bajtu fuse byte z L:62 na L:F7 za pomocą następującego polecenia:
avrdude -c usbasp -p m328p -B 8 -U lfuse:w:0xF7:m
Jeśli pojawi się błąd podczas przesyłania pliku.hex, być może trzeba będzie zmienić wartość -B (bitclock) z 8 na wyższą, na przykład 16.
Krok 6: Korzystanie z AODMoST
Podłącz zasilanie 12V – 15V DC do zacisków śrubowych (- jest bliżej górnej krawędzi PCB). Podłącz złącze VGA z połowy IN kabla VGA do karty graficznej, złącze z połowy OUT do wyświetlacza 3D. Urządzenie ma 4 tryby, 3 z nich rysują pary prostokątów na wideo. Jest 6 stron opisu. Te z numerami 0 i 3 zawierają ustawienia częstotliwości/okresu, współczynnika okluzji, włączania/wyłączania prostokąta i tak dalej. Strony 1 i 4 zawierają ustawienia pozycji, a strony 2 i 5 zawierają ustawienia rozmiaru. Naciskając przyciski MODE + PAGE przywracasz ustawienia domyślne we wszystkich trybach. Możesz przeczytać więcej o konfigurowaniu AODMoST w user_manual.pdf
Jednym z możliwych źródeł treści 3D w formacie Top – Bottom lub Side By Side są gry komputerowe. Jeśli używasz karty graficznej GeForce, w wiele gier z tej listy można grać z włączoną opcją CustomShader3DVision2SBS w 3DMigoto. Możesz dowiedzieć się, jak ją włączyć i jak rozwiązać problem z odcieniem wyświetlanym na ekranie przez 3D Vision Odkryj tryb anaglyph 3D tutaj (uwaga: odkryłem, że musisz ustawić „LeftAnaglyphFilter” na „&HFF00FF00” i „RightAnaglyphFilter” na „ "&HFFFF0000"” [inne kombinacje kolorów również powinny działać, wystarczy, że brakuje jednego koloru składowego], aby wyłączyć tintę w trybie Discover anaglif). Użytkownicy Radeon i GeForce powinni mieć możliwość korzystania z oprogramowania TriDef 3D. Istnieją gry takie jak GZ3Doom (ViveDoom), które natywnie obsługują 3D i można w nie grać bez specjalnego oprogramowania.
EDYCJA: Miałem problemy z wyłączeniem odcienia 3D Vision Discover w nowszej wersji sterowników NVIDIA. To doprowadziło mnie do odkrycia SuperDepth3D, shadera post-processingu ReShade. To oprogramowanie jest kompatybilne z co najmniej 20 grami i współpracuje z procesorami graficznymi różnych producentów.
EDYCJA 2: Znalazłem rozwiązanie problemu braku możliwości wyłączenia odcienia 3D Vision Discover w nowszych sterownikach NVIDIA. Jak zwykle, należy zmienić „StereoAnaglyphType” na „0” w „HKLM\SOFTWARE\WOW6432Node\NVIDIA Corporation\Global\Stereo3D\”, a następnie zablokować klucz rejestru. Aby otworzyć Edytor rejestru, naciśnij WIN + R, a następnie wpisz regedit i naciśnij ENTER. Zablokowanie klucza będzie wymagało kliknięcia prawym przyciskiem myszy, wybrania opcji Uprawnienia, Zaawansowane, Wyłącz dziedziczenie, potwierdzenia wyłączenia dziedziczenia, powrotu do okna Uprawnienia i na koniec zaznaczenia pól Odrzuć dla wszystkich użytkowników i grup, które można zaznaczyć i potwierdzenia tego za pomocą kliknij przycisk OK. Zauważ, że może zaistnieć potrzeba zmiany wartości „LeftAnaglyphFilter” „RightAnaglyphFilter”. Jeśli chcesz wprowadzić jakiekolwiek zmiany, musisz odblokować klucz rejestru, odznaczając pola odmowy lub włączając dziedziczenie.
Jeśli masz problemy z włączeniem 3D Vision, ponieważ kreator konfiguracji w Panelu sterowania NVIDIA ulega awarii, musisz zmienić „StereoVisionConfirmed” na „1” w „HKLM\SOFTWARE\WOW6432Node\NVIDIA Corporation\Global\Stereo3D\”. Spowoduje to włączenie 3D Vision w trybie Discover (co pozwoli na korzystanie z modów/poprawek opartych na 3DMigoto, które umożliwiają wyświetlanie SBS/TB 3D na dowolnym wyświetlaczu po odkomentowaniu „run = CustomShader3DVision2SBS” w konfiguracji „d3dx.ini” mod/fix plik).
Zwróć uwagę, że w 32-bitowej lokalizacji klucza Windows jest „HKLM\SOFTWARE\NVIDIA Corporation\Global\Stereo3D\”. Również HKLM może zostać zastąpiony przez HKEY_LOCAL_MACHINE.
EDYCJA 3: NVIDIA zamierza usunąć obsługę 3D Vision w kwietniu 2019 r. (Mówią o wydaniu 418 jako najnowszym możliwym sterowniku, który go obsługuje, ale 3D Vision jest nadal obsługiwany w co najmniej 425.31).
Krok 7: Przegląd projektu
Sygnał VGA ma 3 kolory składowe: czerwony, zielony i niebieski. Każdy z nich jest przesyłany osobnym przewodem, z intensywnością koloru składowej zakodowaną w poziomie napięcia, które może wahać się od 0V do 0,7V. AODMoST rysuje prostokąty (nakładkę) zastępując sygnał koloru generowanego przez kartę graficzną poziomem napięcia dostarczanym przez tranzystory Q1-Q3 w układzie wtórnika emiterowego, które przetwarzają impedancję napięcia na rezystorze 2k7 – dzielnik napięcia 1k trimpot. Przełączanie sygnałów odbywa się za pomocą analogowego multipleksera/demultipleksera HEF4053B, zasilanego z zasilacza 12V – 15V DC. Rezystancja na HEF4053B jest powiązana z jego napięciem zasilania (wyższe napięcie – mniejsza rezystancja). Gdyby zastosowano niższe napięcie zasilania, karta graficzna nie byłaby w stanie wykryć wyświetlacza.
Reszta AODMoST jest zasilana z 5V DC z regulatora napięcia 7805. Poziom sygnału z mikrokontrolera sterującego przełączaniem HEF4053B jest konwertowany przez szybki MOSFET BS170.
Impulsy synchronizacji poziomej i pionowej różnią się poziomem napięcia od 0 V do 5 V, a przewody, które je przenoszą, są bezpośrednio podłączone do pinów przerwań ATmegas skonfigurowanych jako wejścia o wysokiej impedancji.
Z jakiegoś powodu mikrokontrolery ATmega328P-PU, które miałem (mają na wierzchu różne numery), wszystkie mają problemy z wewnętrznymi rezystorami podciągającymi, więc zastosowałem zewnętrzne 10k podciągnięć. Jedynym logicznym powodem takiego zachowania, który odkryłem, jest to, że wraz z rozszerzaniem się wszechświata zmieniają się fundamentalne prawa natury, co powoduje nieprawidłowe działanie układów scalonych (prawdopodobnie był to żart).
Urządzenie pobiera około 50 mA.