(5 głosujących) Układ ten, a w zasadzie dość duże urządzenie, jak sama nazwa wskazuje jest domowej konstrukcji Ambilight'em. 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 posiada 8 niezależnych kanałów generujących barwy w zależności od średniego koloru na brzegach ekranu. Łączność z komputerem zapewnia interfejs RS-232, ale można zastosować dowolny konwerter USB<->RS-232. 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 mozliwość odbioru transmisji RC5 i sterowanie odtwarzaczem filmów, a później także (jeśli zajdzie taka potrzeba) innymi programami.
Ten układ dostępny jest w nowszej wersji, odwiedź: Mirlight 2 Działanie:Schemat ideowy sterownika znajduje się na rysunku poniżej: Sercem układu jest mikrokontroler U1 (ATMEGA16) wraz z rezonatorem kwarcowym X1 (16MHz) i kondensatorami C1 (22pF) i C2 (22pF). Układ w zasadzie składa się z 24 takich samych bloków sterujących pojedyńczymi segmentami LED. W roli elementów sterujących pracują tranzystory T1 - T24 (BC516), a rezystory odpowiednio R1 - R24 (3,3k) ograniczają prąd bazy tych tranzystorów. Elementy sterujące zostały podzielone na 3 grupy po 8, a każda z grup podłączona jest do osobnego portu mikrokontrolera U1. Wyjściami sterownika są złącza RKolor (goldpin), GKolor (goldpin) i BKolor (goldpin), podające odpowiednio napięcie na czerwone, zielone i niebieskie struktury LED w każdym z kanałów. Do zaprogramowania mikrokontrolera służy złącze Prog, a do złącza RS/USB należy podłączyć konwerter USB<->RS-232. Do tego złącza mozliwe jest też podłączenie klasycznego portu RS-232, wymagane jest tylko zastosowanie układu dopasowującego poziomy logiczne (MAX232) do standardów zgodnych z interfejsem RS-232. Ponieważ urządzenie w wersji podstawowej wykorzystuje tylko jednokierunkową transmisję danych, na schemacie znalazł się układ U2 (TSOP1736), wraz z elementami R25 (220R) i C7 (100uF). Dzięki temu możliwy jest odbiór transmisji RC5 z pilota i wysyłanie odpowiednich poleceń do komputera. Złącze Z1 (ARK) to punkt podłączenia zasilania dla całego układu. Masa układu została dodatkowo wyprowadzona na złączu Z2 (ARK) aby ułatwić podłączenie masy od wszystkich bloków LED. Kondensatory C3 (100uF), C4 (100uF), C5 (100nF) i C6 (100nF) stanowią filtr zasilania dla sterownika i bloków LED. Schemat ideowy jednego z bloków LED znajduje się na rysunku poniżej: Każdy z kanałów składa się z trzech trójkolorowych struktur LED (Diody D1 - D3) podłączonych równolegle. Ich prąd ograniczany jest za pomocą rezystorów R1 - R9 (330R lub 180R). Czerwone struktury LED mają mniejszą rezystancję szeregową (180R) w celu dopasowania (na oko) jasności wszystkich kolorów. Złącze RGB (goldpin) zapewnia kontakt diod LED ze sterownikiem. Budowa:Układ sterownika z powodzeniem można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Montaż sterownika jest klasyczny, a kolejność elementów może być dowolna. Na początku dobrze jest zacząć od montażu wszystkich tranzystorów, a następnie odpowiadające im rezystory. Pod mikrokontroler dobrze jest zastosować podstawkę. W dalszej kolejności należy wlutować wszystkie pozostałe kondensatory i rezystory, a na samym końcu złącza ARK i goldpin. Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj. Bloki LED można z powodzeniem zbudować w oparciu o płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Montaż płytek z diodami nie jest skomplikowany, należy go rozpocząć od wlutowania rezystorów. Przy diodach RGB należy zwrócić uwagę na prawidłową biegunowość (katoda to najdłuższa z 4 nóżek). Po zmontowaniu całego bloku należy go sprawdzić za pomocą zasilacza 5V, gdyż zarzyło się że jedna z diod nie była do końca sprawna (jeden kolor uszkodzony). Tak samo postępujemy z montażem pozostałych bloków (razem 8 sztuk). Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj. Sterownik można umieścić w dowolnej obudowie z tworzywa. Jako obudowę diod LED wygodnie jest zastosować ramkę z rurki hydraulicznej, gdyż łatwo można ją połączyć w całość za pomocą kolanek. W rurce wycięte są duże otwory, tak aby zmieściły się całe płytki (3 kanały od góry, 2 na bokach i jeden od spodu), a wycięte fragmenty zastąpione są kalką techniczną, rozpraszającą światło z diod RGB. Do zasilania całości nie wystarczy port USB (w przypadku zastosowania przejściówki USB<->RS-232), należy wykonać dodatkowy zewnętrzny zasilacz 5V, lub podłączyć układ do zasilacza w komputerze. Połączenia bloków LED do płytki sterownika można wykonać za pomocą przewodu taśmowego, poza masą którą lepiej zrobić grubszym przewodem (lub kilkoma w taśmowymi) Wielkości płytek z diodami LED są wyliczone dla 24 calowego monitora, można jednak skrócić trochę płytki, stosując dwie diody na kanał. Będzie można wtedy zamontować taki układ na dowolnym monitorze. Drugim rozwiązaniem jest przyklejenie płytek z diodami bezpośrednio do monitora, kanały wtedy mogą trochę na siebie zachodzić (nie sprawdzałem jaki jest efekt w takim przypadku). Wykaz Elementów:Sterownik:2x Złącze śrubowe ARK2(podwójne) 1x Listwa Goldpin 1x3 1x Listwa Goldpin 1x4 1x Listwa Goldpin 1x5 3x Listwa Goldpin 1x8 24x 3,3k 1x 220R 2x 22pF 2x 100nF 3x 100uF Elektrolit 1x Rezonator Kwarcowy 16MHz 1x Odbiornik Podczerwieni TSOP1736 24x BC516 1x Mikrokontroler ATMEGA16 + Podstawka Bloki LED:24x 180R 48x 330R 24x Dioda LED RGB (wspólna katoda) Programowanie:Kod Źródłowy do sterownika został napisany w BASCOM AVR firmy MCS Electronics (http://www.mcselec.com/). Program przedstawiony jest poniżej: '************* Konfiguracja uC ***************** '*********************************************** $regfile = "m16def.dat" $crystal = 16000000 $baud = 9600 Config Porta = &B11111111 : Porta = &B11111111 Config Portb = &B11111111 : Portb = &B11111111 Config Portc = &B11111111 : Portc = &B11111111 Config Portd = &B00000010 : Portd = &B11111111 Config Timer1 = Timer , Prescale = 8 Enable Timer1 : On Timer1 Prztimer1 On Int0 Przzew0 Nosave Config Int0 = Low Level Enable Int0 Config Rc5 = Pind.2 Enable Interrupts '********** Konfiguracja uC Koniec ************ '****************** Nazwy ******************* '*********************************************** Rd Alias Porta Gd Alias Portb Bd Alias Portc '************* Nazwy Koniec **************** '****************** Zmienne ******************* '*********************************************** Dim Licznik As Byte Dim Rled(8) As Byte , Bled(8) As Byte , Gled(8) As Byte Dim Flaga_przejscia As Bit Dim Dzielnik As Byte Dim Licz_err As Byte Dim Bled_rs(8) As Byte Dim Gled_rs(8) As Byte Dim Rled_rs(8) As Byte Dim Kanal As Byte Dim W(2) As Byte Dim D As Byte , N As Byte Dim I As Byte , K As Byte , J As Byte Dim Komenda As Byte , Adres As Byte Dim Odebrano As Bit Dim Kolor_r As Byte Dim Kolor_g As Byte Dim Kolor_b As Byte Dim Dziel_przejscia As Byte 'ustawiany dzielnik '************* Zmienne Koniec **************** '************ Warunki Poczatkowe *************** '*********************************************** Dziel_przejscia = 100 N = 1 '******* Warunki Poczatkowe Koniec *********** '************** Petla glowna ****************** '*********************************************** Do D = Inkey() If D > 0 Then W(n) = D Incr N If N = 3 Then N = 1 '******************** dwa dajty: [kanal,red][green,blue] po 4 bity Kanal = W(1) Shift Kanal , Right , 4 If Kanal < 9 Then Rled_rs(kanal) = W(1) And &B00001111 Gled_rs(kanal) = W(2) Shift Gled_rs(kanal) , Right , 4 Bled_rs(kanal) = W(2) And &B00001111 Rled_rs(kanal) = Rled_rs(kanal) - 1 Rled_rs(kanal) = Rled_rs(kanal) * Rled_rs(kanal) Gled_rs(kanal) = Gled_rs(kanal) - 1 Gled_rs(kanal) = Gled_rs(kanal) * Gled_rs(kanal) Bled_rs(kanal) = Bled_rs(kanal) - 1 Bled_rs(kanal) = Bled_rs(kanal) * Bled_rs(kanal) Else 'ustawienia If Kanal = 9 Then Dziel_przejscia = W(2) End If '******************** End If End If If Flaga_przejscia = 1 Then 'robi przej?cia p?ynne kolorow Flaga_przejscia = 0 For I = 1 To 8 If Bled(i) > Bled_rs(i) Then Decr Bled(i) If Bled(i) < Bled_rs(i) Then Incr Bled(i) If Rled(i) > Rled_rs(i) Then Decr Rled(i) If Rled(i) < Rled_rs(i) Then Incr Rled(i) If Gled(i) > Gled_rs(i) Then Decr Gled(i) If Gled(i) < Gled_rs(i) Then Incr Gled(i) Next N If N = 2 Then 'error odczytu, jak nie odebra? parzystej liczby bajtow Incr Licz_err If Licz_err >= 5 Then Licz_err = 0 D = Inkey() D = Inkey() D = Inkey() D = 0 N = 1 End If End If End If If Odebrano = 1 Then If Adres = 0 Then 'pilot o adresie 0 Bled(1) = 100 : Bled(2) = 100 : Bled(3) = 100 : Bled(4) = 100 : Bled(5) = 100 : Bled(6) = 100 : Bled(7) = 100 : Bled(8) = 100 Rled(1) = 100 : Rled(2) = 100 : Rled(3) = 100 : Rled(4) = 100 : Rled(5) = 100 : Rled(6) = 100 : Rled(7) = 100 : Rled(8) = 100 Gled(1) = 100 : Gled(2) = 100 : Gled(3) = 100 : Gled(4) = 100 : Gled(5) = 100 : Gled(6) = 100 : Gled(7) = 100 : Gled(8) = 100 Printbin Komenda End If Odebrano = 0 Enable Int0 End If Loop End '************ Petla glowna Koniec ************** '************ Przerwanie timer 0 *************** '*********************************************** Prztimer1: Timer1 = 65286 Incr Licznik If Licznik = 100 Then Licznik = 0 For K = 1 To 8 J = K - 1 If Licznik < Rled(k) Then Set Kolor_r.j Else Reset Kolor_r.j If Licznik < Gled(k) Then Set Kolor_g.j Else Reset Kolor_g.j If Licznik < Bled(k) Then Set Kolor_b.j Else Reset Kolor_b.j Next K Incr Dzielnik If Dzielnik = Dziel_przejscia Then Dzielnik = 0 Set Flaga_przejscia End If Rd = Not Kolor_r Gd = Not Kolor_g Bd = Not Kolor_b Return '******** Przerwanie timer 0 Koniec ************ '************ Inne Etykiety *************** '*********************************************** Przzew0: Disable Int0 Enable Interrupts Getrc5(adres , Komenda) Komenda = Komenda And &B01111111 Odebrano = 1 Return Ustawienia fusebitów mikrokontrolera ATMEGA16 przedstawione są poniżej: (zrzut z programu Burn-O-Mat) Obsługa:Obsługa i instalacja programu współpracującego z Mirlight, znajduje się na stronie autora: http://grizz.pl/mirlight. Tam też należy kierować pytania odnośnie działania programu. Zdjęcia Projektu:
|
|||||||||||||||||||||||||||||||||||||
Re: Mirlight
Twoje obliczenia są słuszne gdybym chciał mieć jednakowe prądy dla każdej z diod... a ja chciałem mieć jednakowe jasności każdej z diod i to jeszcze żebym swoim okiem widział jednakowe jasności. Tak więc rezystory dobrałem doświadczalnie tak aby uzyskać zamierzony efekt.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam. na początku wielki
Witam. na początku wielki szacunek za projekt.
Mam pytanie odnośnie podłączenia. Zmontowałwm sterownik i planuję go podlączyć przez RS-232 za pomocą kabla od monitora, w którym jest 9 przewodów. Który przewód do którego pina? I jeszcze jeden problem związany z montażem, gdyż kupiłem diody ze wspólną anoda ponieważ w sklepie nie było innych, czy da sie zrealizować projekt przy użyciu tych diod?
Re: Mirlight
jesli jeszcze nie wykonałeś ukłądu to przejdź do projektu Mirlight2. Tutaj sa tranzystory PNP i diod ze wspólną anodą nie podłączysz. W drugim projekcie są diody ze wspólną anodą, co prawda SMD ale ze schematu wyczaisz co i jak
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
niestety już wykonałem układ,
niestety już wykonałem układ, wszystko polutowane w sterowniku tylko nadal mam problem z podłączeniem. A o te diody sie postaram ;)
Re: mirlight
W tej wersji będziesz potrzebował albo standardowego konwertera max232 i portu szeregowego w komputerze albo poprostu konwertera FTDi FT232 żeby zrobić sobie od razu port szeregowy na USB, tak jak zrobiłem to w mirlight2. Popatrz na schemat do mirlight2. Musisz dołączyć przynajmniej kilka diod aby to działało bo inaczej nie zobaczysz efektu. Nie zapomnij o skompilowaniu i wgraniu najnowszej wersji programu oraz o ustawieniu fusów
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.