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 kamil532

A co znaczy błąd: no remote

A co znaczy błąd: no remote control?? Odbiornika podczerwieni nie lutowałem...chyba można go pominąć?? zostawiłem tylko 3 piny wyjścia na niego.

Program mam w najnowszej wersji jak sądzę...0.8

Pola odczytowe tak się prezentują:
http://img844.imageshack.us/img844/5497/snapshot1q.png

Portret użytkownika grizz

Onacza, ze w danym cyklu nie

Onacza, ze w danym cyklu nie odebrano, żadnej komendy.

Portret użytkownika kamil532

Co jeszcze może być źle?? Co

Co jeszcze może być źle?? Co jeszcze mogę zrobić żeby wreszcie działało?

Portret użytkownika mirley

Re: Mirlight 2

Przejdź pod windowsa, i uruchom mój program Rs232 Tester http://mirley.firlej.org/files/RS232Tester.exe
ustaw sie na port który widzisz w menadżerze urzadzeń i wybierz predkość transmisji 38400, po czym kliknij otwórz port.

W oknie po prawej (wysyłanie N) wklej to:

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

po czym kliknij Wyslij N. Wszystkie kanały powinny zaswiecić na moc około 10%. jesli się tak nie stanie to szukaj błędów sprzętowych, złego zaprogramowania procka, złych fusebitów lub przerw w sciezkach od rs232

-

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

albo nie przełączaj się na

albo nie przełączaj się na windowsa, tylko wykonaj ten skrypt:

#!/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)

Dodałem też ten kod do repozytorium mirlighta: https://github.com/grizz-pl/mirlight/blob/test/src/mirlight_test.py

Portret użytkownika kamil532

Już włączyłem tego

Już włączyłem tego nieszczęsnego Windowsa :P

RS232tester nie zapala diód :( Podłączyłem cały sterownik kabelkami do programatora i programuje go sprawdzając jak się zachowuje cały układ, kiedy programuje go takim kodem:

$regfile = "m32def.dat"
$crystal = 16000000
Config Porta = Output
Config Portc = Output
 Wait 1
Do
      Wait 1
      Porta.2 = 1
      Wait 1
      Porta.2 = 0
         Loop
End
To na jednym kanale zapalają się diody i gasną, zastanawia mnie jednak czy powinny się zapalać na biało(tak robią) czy też na jakiś kolor?? Próbuje jakoś sprawdzić czy układy uln2803apg działa w ogóle, tylko nie wiem za bardzo jak ma działać bo z datasheet nic nie rozumiem :)

Połączenie konwertera z mikrokontrolerem jest chyba dobre..miernik pokazuje ze piny obu plytek sa polaczone, a kiedy wlaczam Rs232teste to na nozkach rx i tx pojawia sie pakiety ( miernik pokazuje jakis prad staly :P rzędu 600mV, oscyloskopu to nie mam). Fuse bity po raz n-ty sprawdziłem i całość przeprogramowałem, ale nic nie pomaga...

Portret użytkownika kamil532

Skrypt natomiast wywala w

Skrypt natomiast wywala w terminalu:

Traceback (most recent call last):
  File "./mirl_test", line 11, in <module>
    ser = serial.Serial(port, 38400, timeout=0)
  File "/usr/lib/python2.6/dist-packages/serial/serialutil.py", line 166, in __init__
    self.open()
  File "/usr/lib/python2.6/dist-packages/serial/serialposix.py", line 175, in open
    raise SerialException("could not open port %s: %s" % (self._port, msg))
serial.serialutil.SerialException: could not open port /dev/ttyUSB01: [Errno 2] No such file or directory: '/dev/ttyUSB01'

Portret użytkownika mirley

Re: Mirlight 2

Dobrze jest w takim razie zacząć sprawdzanie warstwy sprzętowej od diod...... ULN to nic innego jak 8 tranzystorów NPN w jednej obudowie. Na wejście podajesz 5V to wyjście zwiera do masy. Zatem przylutuj sobie kabelek do 5V na płytce mirlighta. Wyciąg procka z podstawki i po kolei w podstawce procka zwieraj piny na których są ULN do masy. Powinny zaswiecic ci wszystkie kolory we wszystkich kanałach po kolei.

Z programem testowym w pythonie jak widac masz problem z portem... zmien w kodzie nazwę portu na poprawną dla ciebie bo ttyUSB01 nie masz jak widzę

-

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

Zrobiłem według Twojej

Zrobiłem według Twojej rady...Zwierałem wszystkie wyjścia na ULN z 5v i okazało się że diody były źle przylutowane.
Naprawiłem problem, sprawdziłem jeszcze raz wszystkie luty, i teraz kiedy daje 5V na nogi ULNów to zapalaja sie po kolei odpowiednie kolory na wszystkich kanałach :)

Sprawdziłem jeszcze raz połączenie przewodów z konwerterem i wszystko przewodzi (rx i tx). No ale kiedy podłączam rsTester to nadal nic się nie świeci....W programie w polu odbieranie pojawiają się jakieś liczby( Nawet jak nie wysyłam przez RStester a jest port otwarty), co chyba znaczy ze uC wysyła je i dochodzą do konwertera??

Co jeszcze może być zle?? Jak moge napisac jakis prosty kod ktory zapali wszystkie kanaly po odebraniu dowolnej liczby??(chciałem jakos sprawdzić czy odbiera coś kontroler) Może coś takiego:
Input Temp
Porta.0 = 1
Porta.1 = 0
Porta.2 = 0
Porta.3 = 1
Wait 15
Porta.0 = 0
Porta.1 = 0
Porta.2 = 1
Porta.3 = 1
Wait 15
Porta.0 = 1
Porta.1 = 0
Porta.2 = 0
Porta.3 = 0
Wait 15

ps.Faktycznie USB01 trzeba było zmienić w skrypcie, i już działa, i wysyła dane do konwertera.

Portret użytkownika mirley

Re: Mirlight

CO masz podłączone w miejscu odbiornika podczerwieni? nie ma prawa program nic odsyłać poza kodem z pilota i sekwencją testową (wtedy odsyła 130). Jakie liczb są odsyłane, coś losowego czy konkretne wartości?

Prześlij schemat twojego konwertera na FTDI bo coś mi tu bardzo nie pasuje. Po wyjęciu procka z płytki i włączeniu układu RStester dalej coś odbiera? Ustawiłeś dobrą prędkość transmisji w rstester?

-

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

W miejscu odbiornika nie mam

W miejscu odbiornika nie mam nic, wlutowałem 3 piny (na zdjęciu Twojej płytki też tak jest), wlutowane jest dobrze, nie ma zwarć.
Raz odesłał mi 128 i potem milczał, a za drugim razem odsyłał:
192 254 254 255 192 224 236 224 255 192 224 255 192 143 192 236 192 255 224 236 224 254 192 254 246 192 206
wygląda mi to na przypadkowe liczby...
Po wyjęciu uC nic nie odsyła, a prędkość w rstesterze ustawiam na: 38400, a port natomiast podaje ten który widzę w managerze urządzeń.

Mój konwerter:
http://elkom-serwis.com.pl/2068-2841-thickbox/-interfejs-konwerter-usb-rs232-ttl-programowanie-komunikacja-przez-usb-modul-em212.jpg

http://elkom-serwis.com.pl/konwertery-interfejsy/2068--interfejs-konwerter-usb-rs232-ttl-programowanie-komunikacja-przez-usb-modul-em212.html

Portret użytkownika kamil532

ps. Właśnie zauważyłem jedną

ps. Właśnie zauważyłem jedną rzecz...

Mówiłeś że masy konwertera i sterownika mają być połączone, no więc połączyłem je przewodem i włączyłem rstester, no i nic nie odbierał, kiedy wyjąłem tylko ten przewód z konwertera znowu zaczął odbierać liczby.

I jeszcze podczas wkładanie konwertera który jest podłączony do sterownika do portu USB zapalają się na sekundę na biało diody...nie wiem czy tak powinno być...w każdym razie nadal nie działa :)

Portret użytkownika bartekzuba

widziałem to w ep 2/11 i

widziałem to w ep 2/11 i powiem że albo od ciebie zgapili albo ty z nimi współpracujesz bo na stronie sklep.avt
można kupić kit z taka samą płytka i częściami ale mimo to fajny projekt a w ep trochę o nim czytałem

Portret użytkownika kaban

ep

Portret użytkownika mirley

Re: Mirlight

Sam przedstawiłem rozbudowany opis mirlighta w gazecie.... żeby tematem zainteresowało się więcej osób.

-

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

Pomalutku, powolutku klarują

Pomalutku, powolutku klarują sie nowe wersje w programie:

  • Autostart
  • minimalizacja po starcie
  • tryb filmowy (czyli tak jak dotychczas)
  • tryb pasywny/statyczny - cały czas wyświetlanie jednego koloru na danym kanale (czyli tryb pracy wszelakiej)
  • regulacja jasności
  • kalibracja

Postępy można podejrzeć jak zwykle na gałęzi testowej https://github.com/grizz-pl/mirlight/tree/test

Jak na razie powstał nowy interfejs... teraz "tylko" wystarczy oprogramować w/w funkcję.

Portret użytkownika grizz

I jak pisałem wyżej

I jak pisałem wyżej programowanie postępuje... ;)

Dopisałem tryb pojedynczego koloru w stanie pasywnym.

klikamy na przycisk all wybieramy kolor. klikamy Start Passive mode

potem juz możemy zmieniać kolor klikajac w all bez konieczności stopowania.

Reszta nowych kontrolek nie działa, więc nie krzyczeć ;) ale gdyby, ktoś chciał pomóc, to bardzo prosze o ściągniecie nowej wersji i testowanie oraz zgłąszanie problemów, uwag i pomysłów.

Jutro, albo we wtorek powstanie obszerniejsza notka na http://grizz.pl

Portret użytkownika kamil532

Witam, mam mały problem z

Witam,
mam mały problem z mirlightem...udało mi się go uruchomić, działał poprawnie kilkanaście minut, no ale po zresetowaniu komputera nie udało mi się go uruchomić ponownie,komputer urządzenie znajduje poprawnie, sekwencja startowa zapala mi diody na wszystkich kanałach, no ale normalnego trybu pracy nie udaje mi włączyć.
Używam zewnętrznego konwertera, czy muszę łączyć jego wyjście reset i gnd tego konwertera z sterownikiem?? Jakie mogą być jeszcze przyczyny problemów z uruchomieniem urządzenia?

Portret użytkownika grizz

a odpal z parametrem -vvv

a odpal z parametrem -vvv (nie działa to w wersji *.exe)

Portret użytkownika mirley

Re; mirlight

Używasz zewnetrznego konwertera USB/RS jak rozumiem. W zalezności od tego co to za konwerter, podłączenia będą różne. Jak to zwykły FTDI bez żadnego MAX232 na wyjściu to wystarczy podłączyć GND, TX i RX do układu mirlighta.

-

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 witoldo7

ftdi problem

u mnie zle incjuje ftdi jesli jest podane napiecie bezposrednio z zasilacza kompa, musze wyciagnac wtyczke usb puzniej ja spowrotem wlozyc, wtedy sterownik sie zaladuje. Nie wiem w czym lezy problem ?, raszta dziala sprawnie.

Portret użytkownika mirley

Re: Mirlight

Zewrzyj 26 nóżkę FTDI do masy (TEST), może to pomoże. Ta moja kombinacja z resetem z procka powinna automatycznie zniwelować ten problem z włączaniem.

-

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 bartekn

Na youtube można obejrzeć

Na youtube można obejrzeć filmiki z domowym autorskim ambilightem z 32 kanałami - efekt super :) Liczba kanałów jest w zupełności wystarczająca, ciekawe ile kosztuje budowa takiego sprzętu na 32diody.

Portret użytkownika mirley

Re: więcej kanałów

Diody to wiadomo ile kosztują, pytanie tylko jak tym wydajnie sterować z kompa.... zbieram różne przemyślenia i może kiedyś powstanie mirlight 3 bardziej uniwersalny z większą liczbą kanałów i możliwością modyfikacji

-

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 bartekn

Kawałek komentarza, może o to

Kawałek komentarza, może o to chodzi :

"For now I use a PIC32 microcontroler to link my? WS2801 RGB neons and my computer through USB.
I started thinking of something which would be able to run without a computer, a TVP7002 and a CPLD seems to be a good start.

I also would advise? you to find some digital RGB neons (based on WS2801 for example, aliexpress is selling some) it would avoid you to use some TLC5940 and generate many PWM yourself."

Portret użytkownika witoldo7

RC

juz sobie poradzilem z wykrywaniem urzadzenia, lecz z pilotem mam pewnien problem z posrod 3 z jednego mi interpretuje sygnaly, dluzesze przytrzymanie "guzika" powoduje reset urzadzenia ;/

no remote command
no remote command
14: smplayer -send-action pause
To jest SMPlayer v. 0.6.9 (SVN r3447) uruchomiony na Linux
14: smplayer -send-action pause
To jest SMPlayer v. 0.6.9 (SVN r3447) uruchomiony na Linux
--
Cannot send to device. Check your configuration!
--
Cannot send to device. Check your configuration!
no remote command

[ 2564.320034] usb 2-1: new full speed USB device using uhci_hcd and address 32
[ 2564.534491] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected
[ 2564.534546] usb 2-1: Detected FT232RL
[ 2564.534550] usb 2-1: Number of endpoints 2
[ 2564.534554] usb 2-1: Endpoint 1 MaxPacketSize 64
[ 2564.534558] usb 2-1: Endpoint 2 MaxPacketSize 64
[ 2564.534562] usb 2-1: Setting MaxPacketSize 64
[ 2564.536528] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0
[ 2594.540077] usb 2-1: USB disconnect, address 32
[ 2594.540365] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[ 2594.540387] ftdi_sio 2-1:1.0: device disconnected
[ 2594.980058] usb 2-1: new full speed USB device using uhci_hcd and address 33
[ 2595.194518] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected
[ 2595.194588] usb 2-1: Detected FT232RL
[ 2595.194592] usb 2-1: Number of endpoints 2
[ 2595.194596] usb 2-1: Endpoint 1 MaxPacketSize 64
[ 2595.194600] usb 2-1: Endpoint 2 MaxPacketSize 64
[ 2595.194604] usb 2-1: Setting MaxPacketSize 64
[ 2595.196575] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB1

Portret użytkownika mirley

Re: pilot

A pilot pracuje na pewno w standardzie Rc5? Nie ma przypadkiem błędów w montażu. Nie ma prawa się zwiesić chyba że procek utraci na chwile zasilanie i wyłączy ftdi

-

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 witoldo7

rc

piloty od karty tv dvb http://lircconfig.commandir.com/lircd.conf/?viewremote=391, 2 z tunera ferguson 3018se, zasilanie napewno dobrze, a 3 ktory dziala od jakiegos starego tv. dla sprawdzenia wylutowalem 2 rezystory od self startu by reset wisial w powietrzu, ftdi nie resetuje sie, ale procek owszem, widac chcarakterystyczny rozblysk diod. Da sie to zmusic do pracy z lirc ?

Portret użytkownika grizz

Quote:Da sie to zmusic do

Quote:
Da sie to zmusic do pracy z lirc ?

Nie próbowałem. A teraz w ogóle nie mam potrzeby używania pilota. Będę jednak bardzo wdzięczny, gdybyś rozgryzł temat, to wtedy dodam to do programu.

Portret użytkownika mirley

Re; Mirlght

A układ bez używania pilota działa poprawnie? może problem jest gdzieś indziej? Zewrzyj 26 nóżke FTDi (TEST) do masy, a rezystor R2 zamiast do Pd6 podłącz do zasilania z wtyczki USB

-

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 witoldo7

Wszystko poza rc dziala juz

Wszystko poza rc dziala juz dobrze, zrobilem tak jak napisane wyzej. Efektem tego jest brak charakterystycznego rozpblysku diod, lecz kombinacja roznych przciskow na pilocie powoduje chwilowa zmiane barw podswietlania.

Portret użytkownika bigt

To pytanie pewnie padło...

...ale jednak je zadam :)
Czy nie dałoby się zastosować jakiś przetwornic step-up albo czegokolwiek innego na wyjściu buforów czy nawet proca,
tak aby zasilać diody 12 v ?
Nieco skomplikowałoby to układ, ale rozszerzyło możliwości.
Tzn:
-wtedy można by zasilać listwy led RGB które kosztują <30zł za mb, czyli ograniczenie kosztów
-łatwo byłoby dostosować to do czegoś większego niż 22' monitor, bo wg mnie sensu to nabiera przy najmniej 30 calach,
a miło robi się przy 40' :) Wtedy po prostu można by stosować dłuższe paski taśm led.
-zwiększyłaby się jasność świecenia - bez problemu można kupić taśmy z 96 led / mb, więc nawet krótki parunasto cm pasek miałby ich co najmniej paręnaście.

Szkoda że nie da się tego podłaczyć bezpośrednio pod TV przez jakieś euro albo cokolwiek innego co każdy telewizor ma, a czego i tak się nie używa....

Portret użytkownika grizz

Obecnie spokojnie możesz

Obecnie spokojnie możesz zamontować dłuższe pakiety świecące i obsłuzyć 60" czy więcej cali.

Podeślij lcd czy plazmę, to będzie można myśleć o nowym projekcie dotyczacym TV. ;)

Portret użytkownika miszcz

Witoldo7 Quote:u mnie zle

Witoldo7

Quote:
u mnie zle incjuje ftdi jesli jest podane napiecie bezposrednio z zasilacza kompa, musze wyciagnac wtyczke usb puzniej ja spowrotem wlozyc, wtedy sterownik sie zaladuje. Nie wiem w czym lezy problem ?, raszta dziala sprawnie.

Quote:
juz sobie poradzilem z wykrywaniem urzadzenia...

Można wiedzieć jak sobie z tym poradziłeś?

Portret użytkownika bigt

móc to można, tylko to po

móc to można, tylko to po prostu bez sensu - żeby móc się solidnie z 40' pobawić potrzeba ponad 300zł wydać + jeszcze to jakoś obudować przyzwoicie z plexi żeby wyglądało, więc wychodzi tyle że taniej jest kupić sobie za 2000zł 50 calową plazmę niż za parę stów mniej 40 czy 42 cali lcd :)
Przy 12v wystarczyłyby tanie taśmy led, wiec można by zrobić pseudoambilight na 40' za mniej niż tu na monitor :P
Robiąc to tak dośc idiotycznie to można teraz dorobić 8 x 3 czyli 24 przetwornice na jakimś scalaku pojedynczym :P
Byłoby też prościej - mniej płytek to wytrawienia :P

Portret użytkownika witoldo7

Wywlilem Self Powered (R2,

Wywlilem Self Powered (R2, R3) , i podciagnalem nozke TEST(26) do masy. Chodz pierwsza czynnosc nie jest konieczna, u mnie z czegos innego wynikała.

Portret użytkownika bigt

Raz jeszcze przejrzałem

Raz jeszcze przejrzałem koszty - większość bo ponad 2/3 kosztów stanowią diody...
Więc kusząca jest wizja optymalizacji owych kosztów :)

Portret użytkownika bigt

znalazłem też taśmy na 5V,

znalazłem też taśmy na 5V, choć niestety spoooro droższe - 5mb za 300zł,
ale to i tak taniej niż same diody :)

Portret użytkownika mirley

Re: Mirlight

1. FtDi faktycznie lepiej działa jak się zewrze nóżkę TEST do masy, nie wszystkie sztuki tego wymagają o czym się ostatnio przekonałem
2. Po co stosować przetwornice.... to dopiero będzie komplikacja układu. Wystarczy zasilać bufory ULN i listwy LED z 12V, po to zrobiłem właśnie takie rozwiązanie w stosunku do pierwszej wersji mirlighta. Dodać stabilizator 7805 do procesora i po sprawie. Na płytce trzeba tylko trochę zasilanie przerobić.

-

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 witoldo7

lub mozna podciagnac procek i

lub mozna podciagnac procek i ftdi pod zasilanie z usb ;)

Portret użytkownika bigt

No i projekt robi się tańszy

No i projekt robi się tańszy , prostszy i imo lepszy :)

Jutro przeprojektuje płytkę :)

Portret użytkownika kamil532

Mam mały problem z aplikacja

Mam mały problem z aplikacja do mirlighta...Otóż w konsoli kiedy próbuje uruchomić program spod root-a dostaje jedynie taki komunikat:

Traceback (most recent call last):
File "./mirlight_gui.py", line 27, in
import serial
ImportError: No module named serial

Nigdy wcześniej tak nie miałem, a już od paru miesiecy cieszę się z urządzenia.
No i nie wiem o co chodzi z tym błedem :)

Portret użytkownika grizz

Wywaliłeś moduł pyserial z

Wywaliłeś moduł pyserial z sysytemu/katalogu aplikacji.

Portret użytkownika kamil532

aptitude install

aptitude install python-serial pomogło :) Dzięki :)

A będziesz jeszcze rozwijać aplikacje do mirlighta? Jakieś nowe funkcje dojdą?

Portret użytkownika grizz

Myślę, ze coś na pewno się

Myślę, ze coś na pewno się pojawi.

Są nawet konkretne plany: http://grizz.pl/mirlight_plany_09

czasu brak.

Portret użytkownika kamil532

Podczas podłączania

Podczas podłączania konwertera dostaje taki komunikat w wyninku polecenia dmseg:

Detected FT232RL
[ 515.336060] usb 2-2.5: Number of endpoints 2
[ 515.336064] usb 2-2.5: Endpoint 1 MaxPacketSize 64
[ 515.336068] usb 2-2.5: Endpoint 2 MaxPacketSize 64
[ 515.336072] usb 2-2.5: Setting MaxPacketSize 64
[ 515.336640] usb 2-2.5: FTDI USB Serial Device converter now attached to ttyUSB0
[ 516.722321] usb 2-2.5: usbfs: interface 0 claimed by ftdi_sio while 'brltty' sets config #1
[ 516.722968] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[ 516.722992] ftdi_sio 2-2.5:1.0: device disconnected

i potem program nie może wykryć urządzenia. Czym może to być spowodowane?

Portret użytkownika mirley

Re: Mirlight

A mikrokontroler jest zaprogramowany i włożony na swoje miejsce?

-

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

Tak, mikrokontroler jest

Tak, mikrokontroler jest zaprogramowany, działał dobrze wcześniej, a teraz coś się porobiło :)

Portret użytkownika mirley

Re: Mirlight

Sprawdź jaki jest stan na nóżce reset FTDI. Powino być około 3.3V po włożeniu wtyczki do USB. Możesz też spróbowac podłączyć do innego portu USB albo pod windowsem włączyć czy to samo się stanie

-

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 Silas

25fps DirectX

Wycia wasz soft 25fps przy DirectX'ie?
Zerknijcie na moj sofcik:
http://www.ambilight4pc.com/component/option,com_fireboard/Itemid,8/func,view/id,634/catid,11/