Mirlight 2 (Domowy Ambilight)

Miejsce dobre do dyskusji nad własnymi projektami - pochwal się wszystkim co samodzielnie stworzyłeś.
ODPOWIEDZ
mirley
-
Posty: 11
Rejestracja: 25 lut 2010, 13:34
Lokalizacja: Kraków
Kontakt:

Mirlight 2 (Domowy Ambilight)

Post autor: mirley » 03 sie 2010, 6:42

Witam

Przedstawiony układ jak sama nazwa wskazuje jest domowej konstrukcji Ambilight'em. Jest to druga wersja opisywanej w ubiegłym roku Mirlight'a wyposażona w kilka modyfikacji. Całość oparta jest o mikrokontroler jednoukładowy ATMEGA16 i zestaw trójkolorowych diod LED. Urządzenie składa się ze sterownika i połączonych z nim modułów diodowych, po trzy diody połączone równolegle. Mirlight 2 posiada 8 niezależnych kanałów generujących barwy w zależności od średniego koloru na brzegach ekranu. Posiada również dodatkowe wyjście dla ostatniego kanału, przez co można podłączyć dwa moduły u dołu ekranu. Łączność z komputerem zapewnia interfejs USB przez wbudowany konwerter USB<->RS-232 firmy FTDI. Oprogramowanie sterujące zostało napisane w języku Python i działa z powodzeniem pod systemem Windows i Linux (Testowane było pod Archlinux i PLD Titanium, w wersjach 64-bitowych). Program sterujący umożliwia zdefiniowanie obszarów uśredniania koloru dla każdego z kanałów, oraz konfigurację szybkości przejść kolorów, potrzebną, gdy obraz na ekranie zmienia się bardzo szybko. Dodatkowo urządzenie ma możliwość odbioru transmisji RC5 i sterowanie odtwarzaczem filmów. Działanie zarówno części sprzętowej, jak i programu uległo znacznej poprawie. Odświeżanie kolorów jest teraz zdecydowanie szybsze, przy jednoczesnym wyeliminowaniu błędów w transmisji.

Działanie:
Schemat ideowy sterownika znajduje się na rysunku poniżej:

Obrazek

Sercem układu sterownika jest mikrokontroler U1 (ATMega16) wraz z rezonatorem kwarcowym X1 (16MHz) i kondensatorami C1 (22pF) i C2 (22pF). Złącze Prog umożliwia zaprogramowanie mikrokontrolera bez wyjmowanie procesora z podstawki. Układ U3 (FT232RL)jest konwerterem USB-RS232. Zapewnia on bezproblemową pracę pod wszystkimi systemami operacyjnymi i jednocześnie sam dba o poprawność transmisji po USB. Zarówno po stronie programowej jak i sprzętowej jego obsługa jest identyczna jak portu szeregowego. Złącze USB1 jest klasycznym gniazdem USB B, stosowanym w większości sprzętu komputerowego. Kondensatory C9 (10nF), C10 (100nF) i C11 (4,7uF) filtrują napięcie zasilania dla układu U3. Rezystory R4 i R5 są pomocne przy badaniu podłączenia kabla do portu USB, gdyż cały układ zasilany jest z zewnętrznego zasilacza 5V. R4 podciąga stan portu mikrokontrolera do potencjału masy jak wtyczka jest odpięta, a R5 uniemożliwia zasilanie procesora poprzez wyprowadzenie portu w przypadku gdy zewnętrzny zasilacz jest odłączony. Rezystory R2 (4,7k) oraz R3 (10k) odpowiedzialne są za dopasowanie poziomów logicznych miedzy standardami 5V i 3.3V (zwykły dzielnik rezystancyjny) oraz sterowanie wejściem reset układu U3. Dzięki temu niezależnie czy najpierw zostanie włączony kabel USB a potem włączone będzie zasilanie, czy odwrotnie, komputer poprawnie wykryje urządzenie w systemie. Złącze Z1 jest miejscem podłączenia zasilania 5V, przeważnie bezpośrednio z zasilacza w komputerze, gdyż taka ilość diod może w skrajnym przypadku pobierać prąd większy niż 1,6A. Kondensatory C5-C6(100nF) oraz C3-C4(100uF) filtrują napięcie zasilania. W drugiej wersji Mirlight'a zmienione zostały moduły diodowe na takie ze wspólną anodą. Uprościło to konstrukcję buforów wyjściowych poprzez zastosowanie układów U4-U6 (ULN2803). Kanały podłączone są do sterownika za pomocą tasiemek 10 żyłowych za pośrednictwem popularnych złącz FD10 i wtyczek FC10 (FC1- FC8, FC8B). Tak duże złącze zostało wybrane ze względu na łatwość montażu takich tasiemek i brak konieczności lutowania przewodów. W przypadku przeróbki czy wymiany kanału, wystarczy wyciągnąć wtyczkę. Rezystor R1 (220R) oraz kondensator C7 (100uF) stanowią obwody zasilania dla odbiornika podczerwieni U2 (TSOP1736).

Schemat ideowy jednego z paneli diodowych znajduje się na rysunku poniżej:

Obrazek

Diody D1-D3 wykonane w technologii SMD stanowią podstawę dobrego działania układu. Rozpraszanie barw w takich diodach jest znacznie lepsze niż w odpowiednikach do montażu przewlekanego. Rezystory R1-R9 ograniczają prąd poszczególnych struktur LED. R1, R4 i R7 (180R) mają mniejszą wartość aby zapewnić jednakową moc świecenia wszystkich barw (widzianą przez oko). Pozostałe rezystory mają wartość 330R. Wartości tych elementów mogą być zmieniane, w zależności od zastosowanych diod, tak aby zapewnić odpowiedni prąd na każdą ze struktur LED.


Budowa:
Montaż sterownika nie jest trywialny ze względu na obecność układu w bardzo małej obudowie SSOP28. Trzeba tutaj bardzo uważać przy wykonywaniu samej płytki, jak potem przy lutowaniu układu, zwracając uwagę na to aby zamontować go poprawnie (można skorzystać z rysunku montażowego w odbiciu lustrzanym bo układ jest od spodu). W drugiej kolejności należy wlutować wszystkie zworki (6 sztuk) oraz rezystory. Pod układ U1 dobrze jest dać podstawkę, podobnie jak pod bufory U4-U6. Kolejność pozostałych elementów jest dowolna, z tym że złącza FD10 dobrze jest zamontować na samym końcu.

Wykonanie płytek z diodami wymaga zastosowania cienkiego laminatu, np 0.8mm, gdyż wtedy będzie można lekko wygiąć dany kanał i dopasować do krzywizny monitora. Montaż paneli diodowych (9 sztuk) nie jest trudny ale pracochłonny, gdyż wymaga przylutowania wielu elementów. W tym wypadku jest wiele możliwości montażu. Można wlutować rezystory klasycznie od strony elementów, a diody od strony ścieżek, lub wszystkie elementy umieścić po stronie ścieżek, jak pokazują fotografie. Złącze na taśmę (kątowe) musi być przylutowane od strony druku, i wymaga to niewielkiej wprawy i cienkiego grota lutownicy. Poza tym montaż płytek z diodami nie sprawi żadnego problemu.

Jak już wcześniej wspomniano, układ zasilany jest napięciem 5V bezpośrednio z zasilacza komputerowego. Konstrukcja Mirlight'a 2 umożliwia jego zamontowanie z tyłu monitora bez żadnych dodatkowych elementów. Nie trzeba też żadnego materiału rozpraszającego światło. Przed przystąpieniem do połączenia całości, warto sprawdzić działanie każdego z modułów diodowych, czy wszystkie kolory we wszystkich diodach na pewno świecą i czy natężenie jest jednakowe. Przy zastosowaniu innych diod niż "LED RGB SMD PLCC 5060 3x Chip" trzeba dokładnie sprawdzić zgodność wyprowadzeń. Tasiemki należy tak zacisnąć aby przewodziły 1 do 1 (tak aby pierwszy pin jednej wtyczki był połączony z pierwszym pinem drugiej), zgodnie z rysunkiem poniżej:

Obrazek


Pierwsze piny w złączach FD10 (w sterowniku) mają być podłączone do koloru niebieskiego, piąte do czerwonego, a dziewiąte do zielonego. Złącze FD10 w panelach są na płytce narysowane w odbiciu lustrzanym gdyż ich montaż będzie przebiegał od strony druku. Oznaką dobrego działania urządzenia jest krótki błysk wszystkich diod na kolor biały w momencie włączenia zasilania. Układ prototypowy w stanie spoczynku, kiedy nie wyświetla żadnego koloru, wynosi około 30mA, a po zaświeceniu koloru białego 700mA. Zależy to tylko od użytych diod i prądu na jakim pracują. Rozmieszczenie kanałów przedstawione jest na rysunku poniżej:

Obrazek


Wykaz Elementów:

Sterownik:

1x Złącze Śrubowe ARK2(podwójne)
1x Listwa Goldpin 1x5 (Prog)
9x Złącze FD10
1x Złącze USB B (do druku)
1x 4,7k
3x 10k
1x 220R
1x 10nF
2x 22pF
4x 100nF
1x 4,7uF Elektrolit
3x 100uF Elektrolit
1x Rezonator Kwarcowy 16MHz
1x Odbiornik Podczerwieni TSOP1736
1x Mikrokontroler ATMEGA16 + Podstawka
3x Bufor Inverter ULN2803
1x FT232RL USB-RS232 konwerter

Kanały:

9x Złącze FD10, kątowe
27x 180R
54x 330R
27x Dioda LED RGB SMD PLCC 5060 3x Chip

Inne:

18x Złącze FC10 na taśmę
Przewód taśmowy wielożyłowy(szary)

Część Mechaniczna:

Konstrukcja mechaniczna układu nie sprawia tyle problemów jak miało to miejsce dla wcześniejszej wersji projektu. Mirlight 2 nie wymaga żadnej obudowy, a same płytki mogą być przymocowane do monitora za pomocą taśmy do luster (super mocna taśma dwustronna o strukturze piankowej). Z tego też powodu płytki paneli diodowych lepiej jeśli nie mają żadnych rezystorów po stronie elementów. Umożliwi to łatwe przyklejenie ich do monitora. Dodatkowo cienki laminat z którego zostały wykonane panele diodowe, umożliwi dopasowanie kształtu płytki do krzywizny z tyłu monitora.

Prowadzenie przewodów taśmowych należy dokładnie przemyśleć, żeby jak najmniej zakłócały one normalne użytkowanie monitora (np ni zasłaniały otworów wentylacyjnych itp). Aby uniknąć zbędnej plątaniny kabli sterownik powinien znaleźć się możliwie w środkowej pozycji za monitorem. Zdjęcia projektu przedstawiają propozycję montażu.

Obsługa:

Po wykonaniu układu sprzętowego należy ściągnąć oprogramowanie: http://github.com/grizz-pl/mirlight Dostępne są tam wersje źródłowe, a także plik wykonywalny (*.exe) na system Windows. Więcej na http://grizz.pl/mirlight


Zdjęcia Projektu:

Obrazek

Obrazek

Obrazek

Obrazek

Obrazek

Obrazek

Obrazek

Obrazek


Czekam na opinie i sugestie....


Strona domowa projektu: http://mirley.firlej.org/mirlight2

Awatar użytkownika
haterkmp
Użytkownik
Posty: 652
Rejestracja: 08 sie 2008, 11:47
Lokalizacja: Wałbrzych

Post autor: haterkmp » 03 sie 2010, 6:56

oczywiście jak mirlej coś zrobi to na bank będzie dobre :) pozwolę sobie na ewentualne skopiowanie projektu jeśli nie masz nic przeciwko :mrgreen:

mirley
-
Posty: 11
Rejestracja: 25 lut 2010, 13:34
Lokalizacja: Kraków
Kontakt:

Post autor: mirley » 03 sie 2010, 7:11

Dla siebie projekt można kopiować do woli

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 03 sie 2010, 18:30

Bardzo fajny projekt, mógł byś napisać coś więcej na temat tego softu ??
Tak na prawdę on odwala całą czarną robotę.

mirley
-
Posty: 11
Rejestracja: 25 lut 2010, 13:34
Lokalizacja: Kraków
Kontakt:

Post autor: mirley » 03 sie 2010, 19:42

Kod źródłowy jest tutaj: http://mirley.firlej.org/files/DomowyAmbilight2.bas

Kod został napisany w bascomie i działa na prostej zasadzie. W programie działają 24 programowe PWM oparte na licznik 0-100. Aktualny kolor przechowywany jest w tablicy 24 elementowej. Komunikacja z kompem jest przez usb-RS firmy FTDi, co umozliwia działanie pod linuxem i windowsem. Program odbiera pakiet 26 bajtów zawierających identyfikator paczki, 24 bajty danych i sumę kontrolną. Pozwala to na uniknięcie większości błędów transmisji. Gdy jest błąd na ekranie pozostaje poprzedni kolor.


Na komputerze program napisany jest w Pythonie co pozwala pracę pod wieloma systemami. Zamuje się on pobieraniem kolorów z ekranu oblicznie składowych koloru, przelicznie ich zgodnie z krzywą czułości oka i wysyłaniem po rs razem z suma kontrolną

Program w procesorze także liczy sumę kontrolna i porównuje z ta przysłaną z komputera.

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 03 sie 2010, 21:20

Kod w bascomie widziałem, źle się wyraziłem w poprzednim poście miałem na myśli ten software który jest uruchomiony w PC-ie, on odwala całą pracę reszta to tylko układ wykonawczy.
Gratuluje pomyłsu, jesli tylko znajdę chwilę wolnego czasu wykonam projekt.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 03 sie 2010, 21:58

Mirku, pozwolę sobie i tutaj pogratulować Tobie jakże świetnego mirligt'a. znamy się z Twojej stronki gdzie bacznie śledzę co ciekawsze projekty.

ODPOWIEDZ