Mirlight (Domowy Ambilight)


9.6
Ocena: None Średnia: 9.6 (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:

ZałącznikWielkość
Sterownik Schemat67.6 KB
Sterownik Płytka23.36 KB
Sterownik Płytka (odbicie lustrzane)23.36 KB
Sterownik Płytka (3 na stronie)64.86 KB
Sterownik Montowanie32.26 KB
Blok LED Schemat17.66 KB
Blok LED Płytka6.79 KB
Blok LED Płytka (odbicie lustrzane)6.84 KB
Blok LED Płytka (8 na stronie)34.48 KB
Blok LED montowanie8.39 KB
Kod Źródłowy4.86 KB
Program po Kompilacji (BIN)2.34 KB
Program po Kompilacji (HEX)6.6 KB
Kod źródłowy (Wersja 2009.11.15) Działa z nowym programem4.36 KB
Kod źródłowy (Wersja 2009.11.21) Działa z nowym programem, pilot działa4.41 KB
Kod źródłowy (Wersja 2010.03.20) Działa z nowym programem, pilot działa +autowykrywanie portu4.51 KB



Portret użytkownika gosc

Wieżę że działa, ale czy

Wieżę że działa, ale czy można by było zobaczyć jakąkolwiek prezentację? Z tego co przebuszowałem, po chyba większości podobnych projektów ten ma największy potencjał (jedynie podobny projekt widziałem, bodajże na 3 AVRach tylko, że 12-kanałowy, który naprawdę dobrze się prezentował ale miał strasznie nie dorobione oprogramowanie, przez co ogólnie naprawdę słabo wypadł). Nie chcę, żeby to jakoś źle zabrzmiało, ale chcę zmontować taki sprzęcik dla brata (fanatyk gier) i chciałbym mieć choćby jakikolwiek podgląd jak prezentują się gry na nim.
Pozdrawiam i życzę dalszych sukcesów

Portret użytkownika grizz

Nie dysponuję odpowiednim

Nie dysponuję odpowiednim sprzętem, Mirek też nie.

Filmiki byłyby paskudnej jakości takie jak tu: http://mirley.firlej.org/blog_mirlight

Portret użytkownika gosc

Do czego jest ten gold

Do czego jest ten gold pin?
http://img36.imageshack.us/img36/654/mambfoto04.jpg
szukam i szukam na schemacie ale jakoś nie widzę jego sensu istnienia.
Pozdrawiam

Portret użytkownika mirley

Re; Mirlight

To jest złącze zasilania przydatne podczas programowania, miałem tam podpięte zasilanie z USB podczas testów nad układem. Na schemacie widnieje jako pin Z (tuż nad procesorem)

-

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 gosc

Dzięki, równie dobrze można

Dzięki, równie dobrze można od razu podpiąć zasilanie do Z1 (ARK) zamiast do tego pina, zgadza się? Nie bardzo lubię lutować pojedyncze gold piny, bo jakoś nie umiem ich ustawić pionowo :), znasz jakiś dobry patent na to?
PS: części już zamówione, mam nadzieję, że wszystko się uda :)

Portret użytkownika mirley

Re; Mirlight

Możesz od razu podpiąć zasilanie i nie montować tego goldpina. Ja lutuję je tak na oko a potem ewentualnie kombinerki :)

-

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 alien

Skończyłem budowę, ale są

Skończyłem budowę, ale są jakieś problemy. Po otrzymaniu sygnału kolor się zmienia ale na dowolny odcień, a nie na taki jaki wynikałby z ustawień programu. Wydaje mi się, że to problem z konwerterem, ale nie mam jak go sprawdzić. Do podłączenia używam konwertera z Twojej strony (wersja duża).
Dzięki za pomoc

Portret użytkownika grizz

Jeszcze upewnij się czy kabel

Jeszcze upewnij się czy kabel masz ok.

Portret użytkownika alien

Kurcze sam nie wiem, jeszcze

Kurcze sam nie wiem, jeszcze przed chwilą byłem pewnie, że to coś z konwerterem. Właśnie sprawdziłem "na gorąco" jednym pinem LEDa wszystkie kanały (w programie pola ustawione w tym samym miejscu i kolor w programie też się zgadzał z tym co na ekranie) i okazało się, że dioda nie świeci jednakowo dla wszystkich kanałów, dodatkowo mając na ekranie np. tylko kolor czerwony okazuje się, że napięcie jest w prawie wszystkich (R, G i B). Jakieś zwarcia? Tylko, że jak sprawdzałem to nic takiego nie widziałem.

----

Aha zapomniałem dodać, że w konsoli programu cały czas wypisuje "BUM!".

Portret użytkownika mirley

Re: Mirlight

jesli używasz konwertera w wersji dużej to zapewne puszczasz sygnal przez układ max232 i potem podłaczasz go do wyprowadzeń Rxd i Txd procesora w Tym układzie. To jes poważny błąd i tak napewno nie pójdzie a jeśli pójdzie to bardzo wątpliwe jest takie połączenie. Jeśli chcesz aby komunikacja była dobra to albo wyciąg z podstawki konwertera układ max232 i podłącz bezpośrednio Txd ATTINY w konwerterze z Rxd w Mirlight'cie i Txd w mirlight'cie z Rxd w konwerterze, albo daj drugi układ max232 przy Mirlight bo on nie ma żadnego interfejsu tylko bezposrednie podłaczenie do portó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.

Portret użytkownika alien

Wielkie dzięki, wszystko

Wielkie dzięki, wszystko ładnie działa :)
Zastanawia mnie tylko te "BUM!", wywala na

Quote:
x=ord(temp)

I takie pytanie na marginesie, jak jest z zasobożernością tego? Obecnie siedzę na Windows 7, na Athlonie 3000+, 1GB RAMu i po włączeniu Mirlighta 'Menedżer okien pulpitu' zaczyna pożerać 30% CPU, a pyhton 10-30%. Jakiś konflikt systemu z pythonem? Tylko jak to sprawdzić (pythona pierwszy raz widzę na oczy)?

Portret użytkownika grizz

mirlight - bum

BUM! to zaznaczanie miejsca odczytu ze sterowania pilotem. Nie ma jeszcze obsługi tego - tzn. czyta kod poprawnie z pilota, ale nic z nim nie robi, oprócz wyświetlenia :D

Zasobnożerność... hmm u mnie jakieś 3-7% zabiera. Program zaś nie doszedł jeszcze do wersji 1.0, nie mówiąc już o optymalizacji :D wiec pewnie spokojnie zasobnożerność będzie można uciąć o jakieś 40-70-%

Co do tego ma Menadżer okien pulpitu z Windowsa, to nie mam pojęcia... ;)

Portret użytkownika alien

Mam takie ogólne pytanie, czy

Mam takie ogólne pytanie, czy zawsze Ci wyświetla dobry kolor? Zauważyłem, że podczas oglądania filmów często kolor jest niezupełnie taki jaki powinien być np. głowa człowieka powoduje czasami świecenie na niebiesko, czasem jest za dużo zielonego.

Portret użytkownika grizz

Gdzie masz błąd - na

Gdzie masz błąd - na podglądzie w programie, tylko na diodach, czy tu i tu?

Portret użytkownika mirley

Re: Mirlight

Kolory są prawidłowe, czasami mignie jakiś kolor "z kosmosu" i zaraz zniknie ale myślę że to wina transmisji Rs232 bo nie ma tam żadnej kontroli transmisji i mogą być błędy. Jesli film jest kiepskiej jakości to kolory mogą być dziwne. Próbuj rożnych ustawień szerokości pasków pobierania koloru

-

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 alien

Te rozbieżności nie są tylko

Te rozbieżności nie są tylko w filmach, w grach też czasem dziwnie się zachowują (najczęściej kolor zielony i niebieski - z barwami gdzie jest sporo czerwonego jakoś nie zauważyłem tego problemu). Widoczne to jest tylko na diodach program normalnie interpretuje kolory. Nie wiem czy u Ciebie/Was występuje też problem z wyłączeniem (po wyłączeniu część paneli dalej świeci, trzeba kilka razy włączyć i wyłączyć, żeby zgasić wszystkie). Porównując jakość z Waszego filmiku a tym jak mi działa to jakby porównywać Porsche do malucha. Coś z Atmegą? Programator mam w formie "kabelkowej" na LPT i jakoś nie jestem przekonany czy dobrze się zaprogramowało (za 10 razem przeszło poprawnie sprawdzenie).

Portret użytkownika grizz

hmm z tym wyłączaniem, to

hmm z tym wyłączaniem, to chyba załatwilismy sprawę ostanio? Czy mi się pomieszało, Mirek?

Quote:
Porównując jakość z Waszego filmiku a tym jak mi działa to jakby porównywać Porsche do malucha
Co jest maluchem? ;P

Portret użytkownika mirley

Re: Mirlight

Z tym wyłączaniem to były kiedys problemy ale wkońcu chyba dobrze działało po dniu męczarni :) Jak będzie dalej tak do kitu działac to mam pewien pomysł... teraz wyłączanie jest programowe, po kliknięciu w programie wysyłany jest czarny kolor do każdego z kanałów układu. Wymysliłem że zrobie to sprzętowo, to znaczy po wysłaniu jednej instrukcji specjalnej wszystko momentalnie zgaśnie. To wydaje mi się lepszym rozwiązaniem, a dodatkowo będzie trzeba wprowadzić jakieś CRC do transmisji RS232 aby kolory nie pojawiały się z kosmosu.

Mirlight'a zostawiłem całego w krakowie więc jak wrócę to się tym zajmę. Narazie za wszystkie cenne uwagi dzięki... napewno się przydadzą

Ps. programator zrób sobie usbaspa i po sprawie.

-

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 alien

Chyba zrobię usbaspa i

Chyba zrobię usbaspa i jeszcze raz wszystko zaprogramuję. Chyba, że te kolory są przez zakłócenia w kablach (zwykła linka 1mm) albo coś w konwerterze - Jaki stosujesz u siebie? I takie ostatnie pytanie - czy gdy w np. Paint'cie wypełniłeś obraz na jeden kolor to wszystkie panele zmieniły kolor na odpowiedni czy nie, bo nie wiem czy to jakiś problem u mnie.
PS: co do czarnego to nie wystarczy puścić np. 5 razy kolor czarny w odstępach 100ms? tak by było chyba najprościej?

Portret użytkownika grizz

Jak zrobisz tak w paincie to

Jak zrobisz tak w paincie to powinno się wszystko tym kolorem wypełnićm o ile masz odpowiednio pola ustawione, bo jak nachodza na pasek zadań, czy obramowanie okna, to kolory będą się róznić.

Co do PSa to teraz jest to tak realizowane.

Portret użytkownika mirley

Re: Mirlight

Wolał bym zrobić wyłączanie sprzętowo jedną komendą, bo jak wysyłam 8x czarny to jest większa szansa że któryś nie załapie. Konwerter to poprostu dwa tranzystory wlutowane w pająku ale lepszy jest max232.

-

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 alien

Krótki Filmik

Zrobiłem dwa krótkie filmiki przedstawiające "kolory z kosmosu", na potrzebę których pozwoliłem sobie zmodyfikować program (żeby dane wysyłał w sposób ciągły, nie tylko przy zmianie koloru na ekranie), żeby lepiej to było widoczne.
http://www.youtube.com/watch?v=XBhcpNoAFI0
http://www.youtube.com/watch?v=Pp7L9AH5ZaA

Na Twoim filmiku z Króla Lwa wygląda wszystko bez żadnych problemów. Wydaje mi się, że najprostszym sposobem byłoby wysyłać dwukrotnie ten sam kolor, a uC porównywałby najpierw te wartości i dopiero gdy są takie same zmieniał kolor. Niestety o programowaniu uC mam pojęcie... hm... zerowe :) to raczej nie wyjdzie mi nic dobrego z tym. Chyba, że ten "kosmiczny zielony" bierze się z jakiegoś uszkodzenia (tranzystory chyba odpadają, bo każdemu panelowi zdarzyło się zamrugać na zielono, najczęściej są to panele 1 i 2), albo przez przewody - nie są ekranowane, co też na pewno może wpływać na zakłócenia.
Na koniec zdjęcie z nie przerabianej wersji programu:
http://img6.imageshack.us/img6/449/pict1908.jpg
Ten zielony będzie się świecił, aż do zmiany koloru na ekranie.

PS: te poprzyklejane kartki to taka prowizorka na razie :)

Portret użytkownika grizz

re: mirlight

Quote:
Zrobiłem dwa krótkie filmiki przedstawiające "kolory z kosmosu", na potrzebę których pozwoliłem sobie zmodyfikować program (żeby dane wysyłał w sposób ciągły, nie tylko przy zmianie koloru na ekranie), żeby lepiej to było widoczne.

Jeszcze raz. bo nie rozumiem.

Portret użytkownika alien

Domyślnie program wysyła

Domyślnie program wysyła informację o kolorze dopiero gdy się on zmieni, w przeciwnym wypadku nic nie wysyła sygnalizując to ładnym napisem "Sending skipped!". Żeby lepiej było widać kosmiczne kolory wyrzuciłem z programu tą zależność dzięki czemu kolory są wysyłane bez przerwy (lepiej widać błędy koloru - dane są wysyłane dużo częściej).

Portret użytkownika grizz

To masz coś źle... ze

To masz coś źle... ze sprzętem raczej - kabel? port? Bo u nas miganie i błedy nigdy nie miały takiego nasilenia. Zaimplementowanie opuszczania wysyłania miało na celu... no własnie, Mirek - nie czasem zlikwidowanie problemów z miganiem?

Portret użytkownika alien

Tak przypuszczałem, dzięki.

Tak przypuszczałem, dzięki. Za kilka dni będę miał trochę czasu to rozbiorę sprzęt na czynniki pierwsze i zobaczę co jest nie tak. Pytanie do obeznanych z elektroniką: to może być przez nieekranowane kable położone blisko siebie w różnych płaszczyznach/płytce konwertera leżącej na Mirligcie oddzielonych od siebie papierem fotograficznym (chyba to :D)?

Portret użytkownika mirley

Re: Mirlight

Zmniejszanie częstotliwości wysyłania danych poprawiało pracę całości.... dlatego razem z grizz'em napisaliśmy takie obejście. Program do uC napisany jest w Bascomie a nie jest to optymalny język więc poprostu sprzęt nie wyrabiał takiego działania. Myślałem już żeby zmienić cały sprzęt na inny, bo teraz procesor musi uciągnąć 24 generatory PWM programowe a nie było by to konieczne gdybym multipleksował wyświetlacze diodowe. Pomyślę nad tym wszystkim ale naprawdę nie wiem kiedy... kombinujcie a jak cos wymyślicie to piszcie.. nie dam rady wszystkiego sam zrobić.

-

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 alien

Coś pokombinuje, ale chciałem

Coś pokombinuje, ale chciałem wiedzieć czy to są zakłócenia na kablach. Czyli te błędy kolorów są spowodowane niewyrabianiem uC?

Portret użytkownika grizz

Nie, raczej nie, ale

Nie, raczej nie, ale pozmieniaj czasy wysyłania na większe, żeby układ spokojnie miał czas wszystko przetworzyć i porównaj czy wtedy błędy się zmniejszą.

Portret użytkownika alien

Sprawdziłem, zmniejszenie

Sprawdziłem, zmniejszenie częstotliwości nie pomógł.
Dodatkowo:
- po zamianie w programie koloru zielonego z niebieskim dalej mruga na zielono (czyli soft ok)
- po wyłączeniu wysyłania danych do 6 paneli (działają tylko 2) mruganie nie zniknęło, a dodatkowo okazało się, że te wyłączone panele też się zaświecają na zielono

Sprawdziłem tranzystory i są sprawne. Na wyjściu Atmegi pojawiają się problemy z napięciem koloru zielonego.
Nie mam za bardzo pomysłu co jest powodem, na programowaniu uC nie mam pojęcia jedynie mnie zastanawia:

       Gled_rs(kanal) = W(2)
       Shift Gled_rs(kanal) , Right , 4

Czy nie zamienić ze sobą tych linii? (nie znam się tylko rzucam pomysłami).

Portret użytkownika mirley

re: Mirlight

Spróbuj zastąpić fragment:

       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

kodem:

       Rled_rs(kanal) = W(1) And &B00001111
       Bled_rs(kanal) = W(2) And &B00001111
       Shift W(2) , Right , 4
       Gled_rs(kanal) = W(2) And &B00001111

Powinno byc trochę lepiej, a jak nie to pisz dalej co się dzieje

-

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 alien

Ehh...z góry przepraszam

Ehh...z góry przepraszam wszystkich za zamieszanie, okazało się, że wszystkie te problemy są przez Windowsa 7, właśnie wrzuciłem z powrotem XP i działa przepięknie :). Żadnego mrugnięcia, choćby minimalnego (a już jestem przewrażliwiony na tym punkcie), okazało się że jest też dużo "szersza" skala fadingu, a cały program działa znacznie szybciej, stabilniej i miej obciąża procesor. Coś mi się wydaje, że sterowniki do konwertera z Visty nie są do końca kompatybilne. Aż chce się teraz oglądać :).
Dzięki za pomoc i wytrwałość :)
Pozdrawiam

Portret użytkownika pawlik835

Witam chciałbym zapytać czy

Witam chciałbym zapytać czy taki kondensator może być?
"Kondensator elektrolityczny 100uF / 25V"

Portret użytkownika pawlik835

jeszcze mam małe pytanko czy

jeszcze mam małe pytanko czy jak wyślę wykaz elementów do Pana to Pan sprawdzi i jak coś to mi odpisze na email? poza tym rezystory mogą być na 0,125 W?

Portret użytkownika mirley

Re: Mirlight

Kondensator może być a rezystory daj lepiej na większą moc, takie zwykłe 0,25W napewno wystarczą. Odnośnie listy części to nie ma co sprawdzać. To co potrzebujesz masz w spisie elementó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.

Portret użytkownika pawlik835

"a do złącza RS/USB należy

"a do złącza RS/USB należy podłączyć konwerter USB<->RS-232. Do tego złącza możliwe 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."
czyli tego układziku nie można odrazu bezpośrednio podłączyć do portu rs 232?
poza tym nie powinno chyba mieć znaczenia jak bym podłaczył jeszcze ze 2 diody do każdego modułu rgb ponieważ 32 cale to trzeba większą ilością oświetlić. Z tym że pewnie trzeba będzie osobny zasilacz?

Portret użytkownika pawlik835

a wogóle jakie napięcie

a wogóle jakie napięcie zasilania jest?

Portret użytkownika mirley

Re: Mirlight

Napięcie zasilania to 5V, patrz opis. Aby podłaczyc to do kompa potrzebujesz konwertera max232 albo mostka USB/RS. Na konwerter popatrz w miniprojektach, jest tam gotowa płytka. Zasilacz musisz dać dodatkowy bo całośc może brać nawet 1A prądu w skrajnym przypadku. Tranzystory zastosowane pozwalają na sterowanie prądem aż do max 1A na każdy kolor w każdym kanale ale płytka nie wytrzymie takiego prądu gdyby każdy kanał tak dział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 pawlik835

"BC516 - 24 SZTUKI"

"BC516 - 24 SZTUKI" ZASTANAWIAM SIĘ CZY MOŻNA WSTAWIĆ INNE ZAMIAST TYCH TRANZYSTORÓW?
PROSZĘ NAPROWADZIĆ POCZĄTKUJĄCEGO ELEKTRONIKA :)

Portret użytkownika mirley

Re: Tranzystory

Możesz dac dowolne inne tranzystory PNP, znajdując wcześniej w pdf'ie ich prąd maksymalny, np dla BC556 maksymalny prąd to 100mA, jeśli więc zakładasz że tak ograniczysz prąd rezystorami że nie urośnie powyżej tej wartości to spokojnie możesz dać BC556. Jeden tranzystor w moim przypadku steruje jednym kolorem w jednym kanale (3 struktury led)

-

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 keraM

kupno

Witam
nie jestem elektornikiem na tyle zaawansowalnym abym mogl sobie to zrobic, a bardzo mi sie to podoba
czy istnieje mozliwosc zakupu gotowego zestawu?;> prsze o info na gadu 124863

Portret użytkownika mirley

Re: Mirlight

Niech kolega przeczyta regulamin odnośnie wpisów, a w tej sprawie napisz na email do mnie.

Ps. Nie mam gadu-gadu i nie zamierzam go zakładać :)

-

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 bobski

Moglbys dodac schemat tego

Moglbys dodac schemat tego dwutranzystorowego konwertera poziomów i jak go wpiac w uklad

Portret użytkownika mirley

Re: Konwerter

Popatrz na tranzystory podłączone do portu com w projekcie tutaj.

-

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 alien

Witam po dłuższej przerwie

Witam po dłuższej przerwie :)
Za jakiś czas zabieram się za budowę drugiego Mirlighta, ale chciałbym kilka rzeczy zmienić.
1. Zintegrować konwerter RS/USB - który z Twojej strony byłby najlepszy (mini czy mikro)?
2. Zastosować multipleksowanie, dzięki czemu można by zrobić 12/16 kanałów

Tylko pozostaje kwestia wydajności. Próbuje uzyskać efekt jak najbliższy temu z oryginalnych TV Philipsa, ale cały czas nie jest to w 100% płynne podświetlenie. Można to zobaczyć np tu:[url=]http://www.youtube.com/watch?v=77wzIJBuOJk[/url]. Pomimo dużej szybkości zmiany kolorów przejścia są bardzo płynne, "miękkie" i widać, że nadążają za kolorami na ekranie. Mnie się to nie udało.

PS: Podczas pisania tego postu zauważyłem, pojawiła się nowa wersja programu i nowy sprzęt. Można gdzieś zobaczyć changelog części sprzętowej?

Portret użytkownika mirley

Re: Mirlight

Nowy sprzęt jest narazie całkowicie w mojej głowie i nic jeszcze nie zaprojektowałem. Samo projektowanie to nic w porównaniu z koncepcją jak to zamontować na monitorze i czym rozproszyć światło aby był jednolity kolor.

W nowym mirlight' cie też mam zamiar dać konwerter RS-USB ale nie ten prosty co jest na stronie bo on niestety nie działa mi pod linuxem 64-bitowym a to przekreśla jego użycie w moim przypadku. Poza tym musze mieć szybkość transmisji 38400 aby wszystko szło płynnie. Wstępne testy z nowym oprogramowaniem starego sprzętu dały szybkość odświeżania kolorów 82Hz (10000 odebranych paczek w 2 minuty i 2 sek), co daje możliwość zrobienia bardzo szybkich zmian koloró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.

Portret użytkownika alien

Z mojej strony mogę polecić

Z mojej strony mogę polecić diody smd z Maritexu. Bardzo dobrze "mieszają barwy" - znacznie lepiej od zwykłych przewlekanych.
Ja zrobiłem stelaż z listwy kątowej z mdfu skręconej śrubami, do listw bezpośrednio przykręcałem panele z diodami. Całość zaczepiłem na cienkim pręcie (gdzieś znalazłem taki stary wieszak z powyginanego prętu stalowego fi ok. 1mm) wygiętym w kształt litery S - sprawdza się idealnie.
Czyli nowa wersja programu działa dalej na tej samej konfiguracji? Już ściągam :)

Portret użytkownika mirley

Re: Program Mirlight

Musisz ściągnąć nową wersję programu do uC, skompilować i wgrać oraz nową wersję programu w Pythonie. Powstało to dzisiaj i nie mieliśmy jeszcze czasu aby to dokładnie potestować.

-

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 alien

Jak na razie to spaliłem

Jak na razie to spaliłem sobie at2313. Tak to się kończy jak człowiekowi nie chce się wszystkiego po odpinać tylko pcha paluchy na ślepo :(. Więc testy zrobię dopiero jutro.

Portret użytkownika grizz

Jestem właśnie po pierwszym

Jestem właśnie po pierwszym teście praktycznym nowej wersji.

Uwagi:

  • Nowa wersja działa zdecydowanie lepiej, natychmiastowo reaguje na zmiany kolorów, co świetnie sprawdza się w momentach szybkiej akcji na filmie
  • W przypadku scen bardziej statycznych, gdzie następują minimalne wahania koloru - np. drzewa na tle jasnego nieba - pojawia się dość irytujące miganie kanału - ale to dość proste do przeskoczenia w programie (chyba :P)
  • Płynne przejścia między kolorami wydają się zupełnie zbyteczne - obecnie wrażenie wcale nie jest gorsze od ww. na filmie philipsa (nie licząc, tego, ze 8 kanałów to troszkę mało na 24" monitor)
  • Związku z masą obliczeń program zaczął dość mocno zjadać procesor (~30% jednego rdzenia 2.0ghz)- przy oglądaniu filmów nie ma to znaczenia, mamy drugi rdzeń w zapasie, jednak przy grach to problem, który trzeba wyeliminować. Chętnie zobaczę jakieś pomysły.
  • GUI trzeba przeprojektować.