Mirlight 2 (Domowy Ambilight)


10
Ocena: None Średnia: 10 (9 głosujących)

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:

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:

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:


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 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. Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj. Dla montażu SMD pomocny będzie także rysunek montażowy w odbiciu lustrzanym, dostępny tutaj

Panele diodowe z powodzeniem można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. 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. Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj. Dla montażu SMD pomocny będzie także rysunek montażowy w odbiciu lustrzanym, dostępny tutaj

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:

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:

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)

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
 
'$hwstack = 100
'$swstack = 100
 
$baud = 38400
Config Serialin = Buffered , Size = 26
 
Config Porta = &B11111111 : Porta = &B11111111
Config Portb = &B11111111 : Portb = &B11111111
Config Portc = &B11111111 : Portc = &B11111111
Config Portd = &B11011010 : Portd = &B10011111
 
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 I As Byte
Dim Temp As Byte
Dim Tab_temp(25) As Byte
Dim Color(24) As Byte
Dim Tab_sum As Byte
Dim Conf_temp As Byte , Conf As Byte
Dim Send As Bit
 
Dim K As Byte , J As Byte
Dim Komenda As Byte , Adres As Byte
 
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim D7 As Bit
 
'*************  Zmienne Koniec  ****************
 
'************ Warunki Poczatkowe ***************
'***********************************************
'*******  Warunki Poczatkowe Koniec  ***********
 Wait 1
'**************  Petla glowna ******************
'***********************************************
Do
 
 Portd.6 = Pind.5                                           'daje 1 na reset Ft232 jesli jest wtyczka do usb wpięta i procesor jest zasilany
 
 If Ischarwaiting() = 1 Then
   Temp = Inkey()
   If Temp > 127 Then
     I = 0
     'Incr Z
     Tab_sum = Temp
     If Temp <> 128 Then Conf_temp = Temp And &B01111111 Else Conf_temp = 0
   Else
     Incr I
     Tab_temp(i) = Temp
     Tab_sum = Tab_sum + Temp
     If I = 25 Then
       Tab_sum = Tab_sum - Tab_temp(25)
       Tab_sum = Tab_sum / 2
       If Tab_sum = Tab_temp(25) Then
         'Incr D
         Stop Timer1
         For I = 1 To 24
           Color(i) = Tab_temp(i)
         Next I
         Start Timer1
         If Conf_temp <> 0 Then
           Conf = Conf_temp
           Conf_temp = 130
           If Conf = 2 Then Printbin Conf_temp
         End If
       End If
 
     End If
   End If
 End If
 
 If Send = 1 Then
   Send = 0
   If Adres = 0 Then Printbin Komenda
   'Portd.3 = Not Portd.3
   Enable Int0
 End If
 
Loop
End
'************ Petla glowna Koniec **************
 
'************ Przerwanie timer 0 ***************
'***********************************************
Prztimer1:
 Timer1 = 65286
 
 Incr Licznik
 If Licznik = 100 Then Licznik = 0
 
 If Licznik < Color(1) Then Set B.1 Else Reset B.1
 If Licznik < Color(2) Then Set B.2 Else Reset B.2
 If Licznik < Color(3) Then Set B.0 Else Reset B.0
 
 If Licznik < Color(4) Then Set B.4 Else Reset B.4
 If Licznik < Color(5) Then Set B.5 Else Reset B.5
 If Licznik < Color(6) Then Set B.3 Else Reset B.3
 
 If Licznik < Color(7) Then Set A.0 Else Reset A.0
 If Licznik < Color(8) Then Set A.1 Else Reset A.1
 If Licznik < Color(9) Then Set B.6 Else Reset B.6
 
 If Licznik < Color(10) Then Set A.3 Else Reset A.3
 If Licznik < Color(11) Then Set A.4 Else Reset A.4
 If Licznik < Color(12) Then Set A.2 Else Reset A.2
 
 If Licznik < Color(13) Then Set A.6 Else Reset A.6
 If Licznik < Color(14) Then Set A.7 Else Reset A.7
 If Licznik < Color(15) Then Set A.5 Else Reset A.5
 
 If Licznik < Color(16) Then Set C.6 Else Reset C.6
 If Licznik < Color(17) Then Set C.5 Else Reset C.5
 If Licznik < Color(18) Then Set C.7 Else Reset C.7
 
 If Licznik < Color(19) Then Set C.3 Else Reset C.3
 If Licznik < Color(20) Then Set C.2 Else Reset C.2
 If Licznik < Color(21) Then Set C.4 Else Reset C.4
 
 If Licznik < Color(22) Then Set C.0 Else Reset C.0
 If Licznik < Color(23) Then Set D7 Else Reset D7
 If Licznik < Color(24) Then Set C.1 Else Reset C.1
 
 Porta = A
 Portb = B
 Portc = C
 Portd.7 = D7
 
Return
'******** Przerwanie timer 0 Koniec ************
 
'************   Inne Etykiety    ***************
'***********************************************
 
Przzew0:
  Disable Int0
  Enable Interrupts
  Getrc5(adres , Komenda)
  Komenda = Komenda And &B01111111
  Send = 1
Return

Ustawienia fusebitów dla mikrokontrolera ATMega16 przedstawione są poniżej:

Jak już wcześniej wspominano, sam układ sprzętowy jest w istocie wyświetlaczem, sterowanym poprzez USB. Po odebraniu paczki danych mikrokontroler sprawdza jej sumę kontrolna i jeśli jest OK to wpisuje do tablicy wartości kolorów, aktualną barwę, wyświetlaną na ekranie. Do osiągnięcia pełni działania, układu wymagany jest program komputerowy, analizujący kolory z ekranu i wysyłający je do części sprzętowej.

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

Testowanie:


Może się zdarzyć że układ mimo usilnych prób uruchomienia dalej nie chce działać. Można wtedy wykonać kilka testów:
  • Przy wyjętym z podstawki procesorze można podłączyć (za pomocą kawałka przewodu) +5V po kolei do wszystkich pinów stanowiących wyjścia kanałów (wejście ULN2803)
  • Sprawdzić podłączenia miedzy FT232 a mikrokontrolerem.
  • Sprawdzić komunikację z układem sprzętowym za pomocą programu Rs232 Tester. Prędkość transmisji powinna być 38400 ,a port taki jak w menadżerze urządzeń przypisany jest do mirlighta. W okno "wysyłanie N" wkleić należy zestaw danych:
    128
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    10
    56

    potem kliknąć "Wyślij N". Kolory powinny zapalić się z mocą 10%

    Druga metodą jest skrypt w pythonie robiący to samo:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    #mirlight.test by grizz - Witek Firlej <a href="http://grizz.pl">http://grizz.pl</a>
    #ver. 0.1 2010.01.26
     
    import serial
    #conf:
    port = "/dev/ttyUSB01"
    data = [128, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 56]
     
    ser = serial.Serial(port, 38400, timeout=0)
     
    print data
    kod = ""
    for x in data:
            kod += chr(x)
    ser.write(kod)

    skrypt jest dodany do repozytorium mirlighta: https://github.com/grizz-pl/mirlight/blob/test/src/mirlight_test.py

Zdjęcia Projektu:

ZałącznikWielkość
Sterownik Schemat55.02 KB
Sterownik Płytka27.13 KB
Sterownik Płytka (odbicie lustrzane)27.23 KB
Sterownik Płytka (4 na stronie)100.32 KB
Sterownik Montowanie33.89 KB
Sterownik Montowanie (odbicie lustrzane)33.98 KB
Panel diodowy Schemat18.19 KB
Panel diodowy Płytka5.84 KB
Panel diodowy Płytka (odbicie lustrzane)5.88 KB
Panel diodowy Płytka (8 na stronie)26.83 KB
Panel diodowy Montowanie7.29 KB
Panel diodowy Montowanie (odbicie lustrzane)7.33 KB
Kod źródłowy4.38 KB
Program po kompilacji (BIN)2.33 KB
Program po kompilacji (HEX)6.56 KB
Sterownik Punkty lutownicze14.52 KB
Sterownik Punkty lutownicze (odbicie lustrzane)14.64 KB
Panel diodowy Punkty lutownicze13.66 KB
Panel diodowy Punkty lutownicze (odbicie lustrzane)13.71 KB



Portret użytkownika mirley

Re: Mirlight

Pisz na maila w takich sprawach

-

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.

Portret użytkownika kamil532

Witam :) Zaprogramowalem

Witam :)
Zaprogramowalem wczoraj atmege i ustawilem fusy tak jak jest w opisie wyzej...no i chyba cos nie tak poszlo bo nie moge wogole nic zrobic z prockiem...wyskakuje taki blad: http://img191.imageshack.us/img191/7954/13631815.pngjest
no i nie wiem o co chodzi, bo programator odcztuje sygnatury innego mikrokontrolera (m32)...co moglo sie popsuc?

No i mam jeszcze jeden problem, zlozylem sterownik do mirlighta i po podlaczeniu zasilania i usb w windowsie pokazuje mi sie komunikat ze nie rozpoznano urzadzenia... sprawdzalem kilka razy czy ft232 jest dobrze wlutowany, i wszystko wydaje sie byc dobrze...nozki maja przejscia na sciezki plytki...jak moge go jeszcze sprawdzic?

Portret użytkownika mirley

Re: Mirlight

Programujesz procka w układzie czy masz zrobioną jakąś podstawkę pod niego? Może przestawiłeś taktowanie na kwarc a kwarca nie ma. Może fusy źle ustawiłeś.... robiłeś to w burn-o-mat czy bezpośrednio w avrdude?

Jeśli nie masz procesora zaprogramowanego to wyjmij go z podstawki w sterowniku i na nóżkę pd6 w podstawce podaj 5V (na rezystor R2), teraz po podłączeniu do usb układ ft232 powinien zostać wykryty. Ft232 zasila się nie z usb a z zasilacza zewnetrznego więc musi być podpięte główne zasilanie do płytki. Jeśli nie ma na płytce sterownika zasilania to po podłączeniu do USB nic nie powinno się stać, żadnych komunikatów. Skoro wywala błąd z nierozpoznanym urządzeniem to coś jest nie tak.

Nie właczaj sterownika do USB zanim program w ATMEGA16 nie będzie prawidłowo działał. Jak widzisz M16 steruje resetem Ft232, więc żeby sprawdzić czy sam ft232 jest dobrze wlutowany (zanim nie masz zaprogramowanego m16) to na rezystor R2 podaj 5V jak już pisałem wcześniej

-

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.

Portret użytkownika kamil532

Wyjałem mC i podlaczylem 5V

Wyjałem mC i podlaczylem 5V do PD6, i juz nie wyskoczyl mi komunikat ze nie rozpoznano urzadzenia (nic nie pojawilo sie tez w menagerze urzadzen) tak jak mowiles :)Czyli ft232 jest dobrze wlutowany.

Uzywalem podstawki Twojego projektu ;) i mam tam wlutowany kwarc 12 mhz, i dlatego wczoraj mi nie dzialalo na tej podstawce...az wstyd mowic taki glupi blad.Ale dzis proboje zaprogramowac mC w ukladzie, ale taki sam blad mam (zasilanie i usb jest podpiete)...A czy 4 pin zlacza prog ma byc wolny?

Mikrokontroler programowalem przez burn-o-mate...i tylko jtag zmienilem i frequency range w external crystal na 16 mhz...

Czy moge wgrac te wsad do atmegi32?

Portret użytkownika derek

detekcja

Witam, fajny projekt, dobre wykonanie. ja kilka dni temu dostałem garść fototranzystorów smd, teraz trwają poszukiwania odpowiednich filtrów. Podejrzewam, że skończy się na malowaniu kolorowymi tuszami lub mazakami. Po co.... chodzi mi po głowie detekcja kolorów w na obrzeżach matrycy w dużym, 42 calowym telewizorze LCD. Dla sterowania ambilightem. Sprawa jak na razie w fazie koncepcyjnej wygląda dosyć analogowo w części elektronicznej ;-)
I przepraszam, że piszę literami drukowanymi (co prawda małymi) ale pisma ręcznego klawiatura jakoś mi nie potrafi przetworzyć.....

Portret użytkownika mirley

Mirlight 2

kamil532 :
Jeśli podłaczysz zasilanie do złacza Z1 i 5V do PD6 to układ Ft musi zostać wykryty po podłączeniu do USB. Najpierw włącz zasilanie do Z1 potem wtyczke do USB i na końcu Pd6
podepnij do 5V

W burno-mat interesuje cie tylko pierwsza zakładka z tabelką fusów "fuse editor", do dalszych zakładek nie przechodź bo wszystko to zaciemnia obraz fusów z pierwszej tabelki. W skrócie Otwierasz burn-o-mat i zakładkę fuses,zmieniasz tryb z normal na expert, klikasz read fuses. Zaznaczasz odpowiednie fusy dokładnie tak samo jak w tabelce przedstawionej na stronie, klikasz write fuses i to jest koniec ustawień fusebitów, resztę zakładek olewasz bo prawdopodobnie przez to mialeś problem za pierwszym razem

w M32 powinno działac tak samo, możesz sobie nawet przekompilować pod m32, zmieniając linijkę z regfile w programie

-

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.

Portret użytkownika Krystian

Ambi do TV LCD 46"

Witam
chciałbym zakupić takie cudo ale sterowanie kolorami za pomocą sygnału z kabla VGA Hdmi lub Component,

Portret użytkownika mirley

Re: Mirlight 2

Układ działa tylko z komputerem... w artykule jest to wyraźnie napisane. Zrobienie tego na VGA to całkowicie inny układ

-

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.

Portret użytkownika progidek

Zauważyłem, że gdy układ

Zauważyłem, że gdy układ dostaje zasilanie w tym momencie wszystkie panele zaświecają się na ułamek sekundy kolorem białym. Nie przeszkadza mi to zbytnio, ale nie wiem czy tak powinno być i czy można to wyeliminować?

Portret użytkownika Duch__

Czy u was też...

Czy u was też kolory ładnie się zmieniają, ale z opóźnieniem około 100ms-300ms, niezależnie od ustawienia prędkości skanowania? Efekt ten jest bardzo drażniący przy szybko zmieniających się ujęciach i szybkich akcjach gdzie na ekranie mam już nowe ujęcie, ale przez w/w czas mirlight wyświetla jeszcze kolor z poprzedniego ujęcia.

Próbuje dopisać teraz funkcję płynniejszego przechodzenia między kolorami, bo przy wolno zmieniających się kolorach widać taki efekt schodkowy, co też jest drażniące ;)

Przydało by się jeszcze możliwość zmieniania prędkości transmisji na nawet 115200 i prędkości skanowania poniżej rzekomych 10ms (kosztem obciążenia procesora).

Wiem, wiem... za dużo wymagam.

Portret użytkownika grizz

Opóxnienie nie jest

Opóxnienie nie jest widoczne... - mam ustawione 10ms.

Płynne przechodzenie między kolorami - nie ma sensu, przynajmniej dla filmów - uzyskasz przez to jeszcze większe opóxnienia.

Prędkośc transmisji po co chcesza zmieniać?

Prędkość skanowania - zmień sobie w kodzie, ale 10 ms... to i tak jest mega mało.

Portret użytkownika mirley

Re: Mirlight 2

Tak na ułamek sekundy ma się zaświecic kolor biały, to oznaka że wszystko działa poprawnie. Dzieje się tak tylko po włączeniu zasilania.

Używam juz dość długi czas mirlighta i mam ustawione skanowanie na 100ms. Nie zauwazyłem opóźnienia w wyświetlaniu kolorów... spróbuj podłączyć ukłąd na chwilkę do innego kompa, może port wprowadza jakieś opóźnienia. Prędkośc transmisji możesz sobie próbowac zmienić, u mnie przy wyżej prędkości niż zadeklarowana pojawiały się coraz częściej błędy transmisji i zamiast uzyskać szybsze zmiany było dokładnie na odwrót bo paczki nie przechodziły kontroli poprawności w programie dla sprzętu.

Każda próba zrobienia uśredniania koloru w mikrokontrolerze spowoduje jeszcze wieększe opóźnienia bo żeby zrobić łagodne przejście między kolorami to musisz aktualną paczkę uśredniać z poprzednią co z założenia opóźnia reakcję układu

-

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.

Portret użytkownika kezeblasz

Jeśli mam listwę ze wspólną

Jeśli mam listwę ze wspólną katodą to da się to jakoś łatwo przerobić ? Bo oryginalna listwa wygląda dużo bardziej estetycznie ;) Czy trzeba wylutowywać ?

Pozdrawiam

Portret użytkownika mirley

Re: Mirlight 2

Zamiast ULN'ów musiał bys dać 24 tranzystory a wspólne katory podłączyć do masy. W programie trzeba by było zrobić nagację stanu na wszystkich wyjściach programowego PWM'a

-

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.

Portret użytkownika Seiden

Pola ustawiłem na środku (w

Quote:
Pola ustawiłem na środku (w granicy pola był tylko kolor biały).
Dla tych diod wystarczyło w funkcji sendColors zmienić wartość czerwoną z 100 na 60 i niebieską na 40, zieloną zostawiłem bez zmian i odwzorowanie barw teraz jest idealne (na ile może być :)
Grizz, czemu uważasz, że te diody są słabe?

Miszcz'u w jaki sposób zmianiłeś wartości poszczególnych kolorów?

Portret użytkownika grizz

W kodzie programu w funkcji

W kodzie programu w funkcji sendColors zapewne ;)

Portret użytkownika Seiden

no właśnie laik ze mnie z tym

no właśnie laik ze mnie z tym programowaniem i nie znalazłem nic z sendcolors :/

Portret użytkownika grizz

https://github.com/grizz-pl/m

https://github.com/grizz-pl/mirlight/blob/master/src/mirlight_gui.py

Linia 149 i n.

			red = int(red*red*100)
			green = int(green*green*100)
			blue = int(blue*blue*100)

I możesz sobie tym operować dodając odpowiednie współczynniki. Warunek: powstała liczba musi byc nie większa niż 100.

O ile czegoś nie pomieszałem ;)

Portret użytkownika Seiden

A jak skompilować to do pliku

A jak skompilować to do pliku exe? coś nie mogę sobie poradzic z py2exe :/

Portret użytkownika grizz

tak jak masz opisane w

tak jak masz opisane w pliku.

W katalogu /src wdusić:

python setup_win_exe.py py2exe

Albo nie kompilować i odpalać, ze źródeł przez plik .bat

Portret użytkownika Seiden

Quote:C:\Python27>python

Quote:
C:\Python27>python setup_win_exe.py py2exe
File "setup_win_exe.py", line 6
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
^
SyntaxError: invalid syntax

i lipa... kożystam z W7x64 czy to może być przyczyna?

Portret użytkownika grizz

LOL! Co ty za pliku

LOL!

Co ty za pliku zapisałeś? :D html'a z githuba :D

Portret użytkownika Seiden

pobrałem źródła ze stronki i

pobrałem źródła ze stronki i puki co nic nie modernizowałem i wyszło co wyszło... Pierwszy raz cos takiego robię =]

Portret użytkownika kamil532

Witam! Po długiej męce z

Witam!
Po długiej męce z FT232 chyba udało mi się dobrze go przylutować...po podłączeniu sterownika do komputera w menadżerze urządzeń pojawia się USB Serial Converter. Czy tak ma być czy może coś innego ma się jeszcze pojawić?? np.USB serial port

Portret użytkownika grizz

Mas zpobrać źródła PROGRAMU a

Mas zpobrać źródła PROGRAMU a nei strony...

git clone... itd tak jak w README. Ew spakowane archiwum zip ze źródłami.

Portret użytkownika mirley

Re: Mirlight 2

Powinien być USB serial converter i powinien pojawić się dodatkowy port com w menadżerze urządzeń

-

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.

Portret użytkownika miszcz

Układ działa cały czas

Układ działa cały czas :)
Tylko jedna rzecz mnie zastanawia, dlaczego po włączeniu komputera FT232 nie jest od razu rozpoznawany przez system? Na liście urządzeń widnieje jako "Nieznane urządzenie" (VID i PID = 0000), muszę odłączyć i na nowo podłączyć kabel USB (co jest trochę upierdliwe). Wydaje mi się, że układ próbuje nawiązać połączenie zanim zostaną załadowane sterowniki i dlatego powstają takie kwiatki.
System XP SP3.

Portret użytkownika mirley

Re: Mirlight

Nie powinno się tak dziać, specjalnie po to sa na płytce te zabawy z resetem układu, dopóki nie będzie zasilania po USB i zasilania. Dobrze masz zamontowane R2-R5?

-

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.

Portret użytkownika gosc1

Widzę, że w lutowym EP będzie

Widzę, że w lutowym EP będzie pana projekt. Nic tylko pogratulować, aby projekt został opublikowany w EP musi chyba redakcję zachwycić, bo w EDW to biorą większość na poziomie.

Portret użytkownika mirley

Re: EP

Już jakiś czas temu dostałem propozycję od redaktora EP aby opisać ten projekt.... w EP będzie bardziej szczegółowy opis (o ile tekst nie zostanie przeredagowany) niż na stronie więc zachęcam do lektury :)

-

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.

Portret użytkownika kamil532

Witam, podłączyłem kupiony

Witam,
podłączyłem kupiony konwerter FT232R (moduł em-218 em-usb03-mini) do nóżek RXD i TXD mikrokontrolera, połączyłem masy płytki sterownika z masa konwertera, i podłączyłem do konwertera reset z sterownika (za opornikiem 4,7 k) no ale nie działa układ :(

Najpierw podłączał zasilanie sterownika, zapalają się diody na biało, potem podłączam konwerter, który system rozpoznaje i instaluje jako USB serial port- com17, odpalam program mirlight ver.0.8 ustawiam com17 i program chodzi ale nie świecą się diody...Bardzo proszę o jakieś wskazówki co może być źle...

Portret użytkownika mirley

Re: Mirlight

nie podłączaj resetu układu FTDi do procesor M16 i sprawdź jaki jest efekt, u mnie FTDI zasilany jest z tego samego napięcia co M16 i temu to jest potrzebne

-

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.

Portret użytkownika kamil532

Podłączyłem konwerter

Podłączyłem konwerter pomijając reset i też nic się nie dzieje :( (zwarłem masy oby układów)...

Portret użytkownika mirley

Re: Mirlight

Rozumiem że sterowniki do konwertera zainstalowałeś? A nie pomyliłeś TX z Rx.... powinno być podpięta Tx do RX. Po właczeniu zasilania diody w mirlight'cie powinny błysnąć i pozostać wyłączone do momentu przyjścia pakietu danych. Może masz procka źle zaprogramowanego, lub fusebity nie są ustawione poprawnie?

-

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.

Portret użytkownika kamil532

Instalowałem sterowniki ze

Instalowałem sterowniki ze strony http://www.ftdichip.com/Drivers/VCP.htm , i konwerter w managerze urządzeń jest widziany jako wirtualny port (com 18).

Podłączałem wcześniej rx do rx, ale teraz podłączyłem na krzyż i tez nic....
Czemu tak w ogóle ma być rx do tx a nie do rx??:)

Faktycznie po włączeniu układu zapalają się na sekundę diody na biało i gasną, włożyłem mikrokontroler do programatora ( z kwarcem 12 mhz) i w burn-o-mate wybrałem verify z Twoim plikiem hex i wszystko się zgadza, fuse bity po odczytaniu:
http://img39.imageshack.us/i/tytuur.png/

Dzisiaj zaczęło mi wyskakiwać w aplikacji mirlighta po kliknięciu na znajdź port okienko z informacja ze znaleziono więcej niż jeden port, ustaw ręcznie (tez ustawiałem, nic nie daje)

Portret użytkownika mirley

Re: Mirlight

Sterowniki masz dobre. Fusebity w procku też. Kwarc w układzie rozumiem że jest 16MHz, mimo tego że w programatorze miałeś inny.

Tx podłączasz zawsze do RX, nadajnik do odbiornika, inaczej nie może być i jest to naturalne

Spróbuj jeszcze na innym kompie to odpalić bo wszystko wskazuje na to że nie powinno być problemów ze sprzętem

-

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.

Portret użytkownika kamil532

Próbowałem podłączyć na innym

Próbowałem podłączyć na innym kompie i na swoim pod linuksem...ale ciagle wyskakuje w programie mirlight ze nie
znaleziono portu...Na windowsie nawet po zainstalowaniu sterowników i pokazaniu sie portu com w managerze urządzeń..

ech...chyba wszytsko pójdzie do kosza :( :(

Portret użytkownika grizz

To wpisz port ręcznie.

To wpisz port ręcznie.
Linux: Wypnij wtyczkę, wepnij wtyczkę, wpisz spod roota

dmesg
- wklej tutaj ~20 ostatnich linijek.

W windowsie - po prostu wpisz nazwę portu z menadżera urządzeń do programu.

Portret użytkownika kamil532

ufff...jakos udalo sie

ufff...jakos udalo sie zainstalowac pakiety :P Mam zainstalowane pakiety: python-serial, pyqt4-dev-tools, qt-x11-free-dbg, libpython2.6, python-qt3, i nadal nie widzi urzadzenia...
Ostatnie linijki polecenia dmesg:

[10728.742554] ftdi_sio 5-1:1.0: FTDI USB Serial Device converter detected
[10728.742617] usb 5-1: Detected FT232RL
[10728.742622] usb 5-1: Number of endpoints 2
[10728.742627] usb 5-1: Endpoint 1 MaxPacketSize 64
[10728.742632] usb 5-1: Endpoint 2 MaxPacketSize 64
[10728.742637] usb 5-1: Setting MaxPacketSize 64
[10728.743550] usb 5-1: FTDI USB Serial Device converter now attached to ttyUSB0
[11125.184094] usb 5-1: USB disconnect, address 5
[11125.184482] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[11125.184519] ftdi_sio 5-1:1.0: device disconnected
[11148.308486] usb 5-1: new full speed USB device using uhci_hcd and address 6
[11148.521482] usb 5-1: New USB device found, idVendor=0403, idProduct=6001
[11148.521491] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[11148.521498] usb 5-1: Product: USB <-> RS232/TTL EM218
[11148.521503] usb 5-1: Manufacturer: ELKOM-SERWIS
[11148.521508] usb 5-1: SerialNumber: FTTQFMB3
[11148.521744] usb 5-1: configuration #1 chosen from 1 choice
[11148.531052] ftdi_sio 5-1:1.0: FTDI USB Serial Device converter detected
[11148.531101] usb 5-1: Detected FT232RL
[11148.531104] usb 5-1: Number of endpoints 2
[11148.531107] usb 5-1: Endpoint 1 MaxPacketSize 64
[11148.531110] usb 5-1: Endpoint 2 MaxPacketSize 64
[11148.531113] usb 5-1: Setting MaxPacketSize 64
[11148.531908] usb 5-1: FTDI USB Serial Device converter now attached to ttyUSB0

Portret użytkownika kamil532

Zapomniałem jeszcze

Zapomniałem jeszcze powiedziec o tym że nic nie daje wpisywanie recznie portu...
Wpisuje /dev/ttyUSB0 i nadal urzadzenie nia dziala...jedyne co dziala mi to ten blysk po podlaczeniu do zasilania :S

Portret użytkownika grizz

hmm komp urządzenie

hmm komp urządzenie widzi.

Klikasz zapisz po wpisaniu portu?

Wpisz port. Kliknij Zapisz. Zamknij program. Otwórz wpisujac

./mirlight -vvv

Sprawdź na karcie ustawień czy dalej masz ustawiony odpowiedni port. Kliknij start. poczekaj 2 sek. Kliknij stop. Zamknij

Wklej tutaj to co program wypluł w konsoli od początku, do końca.

EDIT: ahhh pewnie nie jesteś w odpowiedniej grupie...

wpisz

ls -l /dev/ttyUSB0
i pokaż co zwraca.

Portret użytkownika kamil532

Wpisałem port, zapisałem,

Wpisałem port, zapisałem, uruchomiłem program ponownie...w konsoli pojawilo sie:

$:./mirlight -vvv 
 
	mirlight 
	version 0.8 
	by Witold Firlej (<a href="http://grizz.pl">http://grizz.pl</a>)
 
--
Auto arranging...
Size factor: 		5
vertical width: 	60
vertical height: 	400
horizontal width: 	426
horizontal height: 	40
--
Error:	Unable to open "/dev/ttyUSB0" port
Check your configuration!
--
Scan Interval: 100
no remote command
no remote command
no remote command
--
Auto arranging...
Size factor: 		5
vertical width: 	60
vertical height: 	400
horizontal width: 	426
horizontal height: 	40
--
Error:	Unable to open "/dev/ttyUSB0" port
Check your configuration!
--
Scan Interval: 100
k: 1
	rgb: 0.772549, 0.776471, 0.772549
		rgb: 59.000000, 60.000000, 59.000000
k: 2
	rgb: 0.713725, 0.690196, 0.686275
		rgb: 50.000000, 47.000000, 47.000000
k: 3
	rgb: 0.274510, 0.266667, 0.247059
		rgb: 7.000000, 7.000000, 6.000000
k: 4
	rgb: 0.203922, 0.207843, 0.203922
		rgb: 4.000000, 4.000000, 4.000000
k: 5
	rgb: 0.266667, 0.262745, 0.258824
		rgb: 7.000000, 6.000000, 6.000000
k: 6
	rgb: 0.317647, 0.317647, 0.317647
		rgb: 10.000000, 10.000000, 10.000000
k: 7
	rgb: 0.517647, 0.537255, 0.537255
		rgb: 26.000000, 28.000000, 28.000000
k: 8
	rgb: 0.454902, 0.458824, 0.450980
		rgb: 20.000000, 21.000000, 20.000000
--
Cannot send to device. Check your configuration!

I drugi wynik z terminala:
 ls -l /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 01-25 13:56 /dev/ttyUSB0

Portret użytkownika mirley

Re: mirlight

jak widać problem jest z dostępnością portu..... u mnie działało tylko pod rootem bo z grupami miałem pewne problemy....

-

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.

Portret użytkownika grizz

ls -l /dev/ttyUSB0 crw-rw----

 ls -l /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 01-25 13:56 /dev/ttyUSB0

Czyli sprawa jasna. Linux nie pozwala się bawić niektórymi rzeczami bez zgody administratora. Dodaj się do grupy dialout albo zmień uprawnienia/właściciela pliku (A raczej regułkę udeva, zeby nie powtarzać operacji po każdym uruchomieniu)

Portret użytkownika kamil532

Dodałem sie do tej

Dodałem sie do tej grupy:

lolcio$lolcio: groups
lolcio dialout cdrom floppy audio dip video plugdev bluetooth netdev

Czyli jestem w tej grupie...i zmienilem tez ustawienia w pliku ttyUSB0 tak ze inny mają odczyt/zapis
No ale w zupełności nic to nie zmieniło.

Portret użytkownika grizz

a przelogowałeś się?

a przelogowałeś się?

ew. eleiminując kwestie zabezpieczenia - odpal program spod roota.

Portret użytkownika kamil532

hmmm...Ja mam kupiony

hmmm...Ja mam kupiony konwerter ft232 i zgodnie z rada Mirleya połączyłem mase płytki sterownika z płytką konwertera, i teraz kiedy to odłaczyłem to w terminalu pojawiło się:

./mirlight -vvv
--
Selected port: /dev/ttyUSB0
--
Scan Interval: 100
no remote command
no remote command
--
Test started
Testing posix system
 
Testing /dev/ttyUSB0...
/dev/ttyUSB0: OK
 
Test stopped
0:	smplayer -send-action play
sh: smplayer: not found
no remote command
no remote command
no remote command
--
Auto arranging...
Size factor: 		5
vertical width: 	60
vertical height: 	400
horizontal width: 	426
horizontal height: 	40
--
Selected port: /dev/ttyUSB0
--
Scan Interval: 100
k: 1
	rgb: 0.047059, 0.043137, 0.043137
		rgb: 0.000000, 0.000000, 0.000000
k: 2
	rgb: 0.654902, 0.635294, 0.631373
		rgb: 42.000000, 40.000000, 39.000000
 
<span style="font-weight:bold">...kilka razy tak...a potem:</span>
 
128:	echo '128 - not bind'
128 - not bind
 
<span style="font-weight:bold">i znow:</span>
 
k: 1
	rgb: 0.047059, 0.043137, 0.043137
		rgb: 0.000000, 0.000000, 0.000000
k: 2
	rgb: 0.654902, 0.635294, 0.631373
		rgb: 42.000000, 40.000000, 39.000000
k: 3
	rgb: 0.000000, 0.000000, 0.000000
		rgb: 0.000000, 0.000000, 0.000000
no remote command
no remote command
no remote command

Teraz znajduje urzadzenie chyba, ale nadal nic się nie świeci...

Portret użytkownika mirley

Re: Mirlight 2

Wygląda na to że program teraz poprawnie czyta kolory i wysyła do procka.... Kliknij kilka razy start/stop po włączeniu programu. Włącz jakieś kolorowe tło na monitorze żeby zobaczyć czy działa. Czy pola odczytowe są dobrze ustawione? co pokazują pola odczytowe w programie?

-

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.

Portret użytkownika grizz

ej... co to za stara wersja

ej... co to za stara wersja programu?

COś Ci sieje na odbiornik podczerwini stąd, to not bind.

Portret użytkownika grizz

Puściłem właśnie do

Puściłem właśnie do najnowszej wersji rozwojowej https://github.com/grizz-pl/mirlight/tree/test (d.2011.01.26.1) zmiany, które wyłaczają obsługę zdalnego sterowania, jako, ze i tak nie ma obsługi w interfejsie, ani w plikach konfiguracyjnych. Jak ktos korzysta, to proszę po prostu odkomentować odpowiednie linijki, jak jest to opisane w funkcji watch()