Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Wyświetlacz matrycowy LED 8x80

daroslav15 21 Jun 2014 21:05 21777 42
Computer Controls
  • Wyświetlacz matrycowy LED 8x80

    Wyświetlacz matrycowy LED 8x80 - mój projekt magisterski. W ludzkiej naturze tkwi fascynacja wszelkiej maści kolorowymi, mrugającymi świecidłami, stąd też chyba popularność wyświetlaczy matrycowych. Można je spotkać zazwyczaj na dworcach, w autobusach, albo w witrynach sklepów. Od dawna chciałem zrobić coś podobnego, praca dyplomowa była idealną okazją na zmierzenie się z takim projektem i jego budową od początku do końca. Poza tym, z racji że na większości zajęć laboratoryjnych/projektowych na uczelni szczytem zaawansowania było mruganie diodami, to na dyplomie nie mogło ich zabraknąć, tym razem w większej ilości.

    Ficzery:

    Rozdzielczość 8x80 pikseli
    Obudowa z lekkich materiałów: dibond + pleksiglas
    Możliwość wyświetlania tekstu, grafiki 8x80 oraz grafiki 24x80
    Dedykowany zasilacz
    Pamięć mieszcząca 4095 sekwencji
    Programowanie wyświetlacza przez USB i oprogramowanie PC

    Matryce:

    Na wyświetlacz składa się 5 małych matryc o rozdzielczości 8x16 pikseli. Matryce zbudowane są z jednostronnego laminatu 1,5mm i czerwonych diod z płaską soczewką typu water clear. Parametry diod (poza kątem rozsyłu strumienia = 120°) nie są mi znane - kupiłem takie na aukcji, bo kształt soczewki umożliwiał zabudowanie przodu pleksiglasem, do tego były w miarę tanie. Laminat miałem jednostronny, zatem od strony z diodami konieczne były przelotki z drutu srebrzonego.

    Wyświetlacz matrycowy LED 8x80Wyświetlacz matrycowy LED 8x80Wyświetlacz matrycowy LED 8x80

    Od strony druku płytka została pocynowana stopem Lichtenberga. Diody połączone są w układ matrycowy - w każdym wierszu anodami i w każdej kolumnie katodami. Takie połączenie zdeterminowane było przez zastosowane drivery kolumn (SCT2024), które mają wyjścia typu sink, czyli w stanie aktywnym ściągane do potencjału masy, natomiast przy dezaktywacji pozostają w stanie Hi-Z. Dla zwiększenia kontrastu gotowe płytki matryc zostały pomalowane czarną farbą od strony diod.

    Sterowniki matrycowe:

    Każdy z modułów matryc dołączany jest do swojego sterownika matrycowego. Moduły multipleksowane są względem wierszy. W roli przełącznika wierszy wykorzystałem licznik pierścieniowy 4017 napędzany sygnałem generowanym przez Timer w uC. Częstotliwość sygnału taktującego licznik fclk=1,84 kHz, zatem wyświetlacz odświezany jest z częstotliwością fref=230 Hz. Tranzystory wierszowe to mosfety IRLML2502. Wszystkie sterowniki matrycowe połączone są szeregowo, przed aktywacją kolejnego wiersza na matrycy następuje wsunięcie danych do rejestrów w driverach kolumn. Zastosowanie licznika pierścieniowego w sterowniku wydawało mi się prostszym rozwiązaniem niż np. stosowanie multiplekserów lub innej logiki. Zasadę sterowania wyświetlaczem powinien zobrazować poniższy zapis przebiegów sterujących.

    Wyświetlacz matrycowy LED 8x80Wyświetlacz matrycowy LED 8x80Wyświetlacz matrycowy LED 8x80


    Sterownik główny:

    Wyświetlaczem steruje ATmega32, program napisałem w C. Na pokładzie sterownika głównego jest układ RTC zasilany supercapem, FT232 do komunikacji z komputerem i pamięć sekwencji - 8-Mbit Dataflash AT45DB081D oraz bufory 74HC125 i 74LVC125 do obsługi magistrali SPI. Sterownik posiada też wejścia z transoptorami np. do przełączania tego co jest wyświetlane sygnałami z przycisków, czujników itp. Dip switche służą do zmiany prędkości transmisji UART-u i konfiguracji ramki, złącza IDC 10-pin służą do podłączenia wtyczki programującej i podłączenia pierwszego ze sterowników matrycowych.
    Wyświetlacz matrycowy LED 8x80 Wyświetlacz matrycowy LED 8x80

    Zasilacz:

    Zasilacz napędzany jest przez transformator TS90/8 o dwóch oddzielonych uzwojeniach wtórnych. Pozwoliło to na budowę dwóch separowanych sekcji zasilających - sekcji niestabilizowanej do zasilania logiki (stabilizator wraz z filtrami umieściłem na płytce sterownika głównego) i sekcji 5V/4A do zasilania ledów. Separacja wydała mi się rozsądnym rozwiązaniem z uwagi na impulsowy charakter pracy matrycy. Sekcja prądowa zasilający LEDy zbudowana została na 7805 i tranzystorach TIP42C - aplikację zaczerpnąłem wprost z dokumentacji stabilizatora dobierając jedynie rezystory dla uzyskania odpowiedniego ograniczenia prądowego. Tranzystor wykonawczy i stabilizator umieściłem na wspólnym radiatorze, który chłodzony jest przez wentylator. Nastawę obrotów wentylatora reguluje prosty sterownik PWM na ATtiny13A. Czujnik temperatury to LM35, który został wciśnięty między żeberka radiatora. Sekcję prądową zasilacza można zewrzeć, a dzięki wymuszonemu chłodzeniu radiator nie nagrzewa się powyżej 65 °C. Zasilacz umieściłem w obudowie po zasilaczu ATX.

    Wyświetlacz matrycowy LED 8x80 Wyświetlacz matrycowy LED 8x80 Wyświetlacz matrycowy LED 8x80

    Oprogramowanie:

    Program do obsługi wyświetlacza o roboczej nazwie LEDMatrixDisp powstał w Visual C# 2010 Express Edition. Składa się on z 3 części: generatora czcionek, konfiguratora parametrów transmisji/ustawień wyświetlacza oraz sekcji do definicji i wgrywania sekwencji wyświetlanego programu. Generator czcionek umożliwia definiowanie zestawu znaków ASCII + polskich znaków diakrytycznych (ą,ę itp) i generowania pliku *.h z czcionką dołączanego przy kompilacji programu. Znaki w zakresie 0x00-0x7F to standardowe ASCII, natomiast do zapisu polskich znaków wykorzystywanych jest kilka kolejnych wartości spoza zakresu standardowego ASCII, z wykorzystaniem najstarszego bitu. Pliki z czcionkami można wczytać w celu edycji. Każdy znak ma rozdzielczość 5x8 kropek - taki sam jak rozmiar znaków w wyświetlaczach alfanumerycznych LCD.
    Wyświetlacz matrycowy LED 8x80Wyświetlacz matrycowy LED 8x80Wyświetlacz matrycowy LED 8x80
    Konfigurator parametrów umożliwia aktualizację daty/godziny w układzie RTC wyświetlacza na podstawie czasu systemowego i służy do definicji parametrów transmisji i jej testu. Ostatnia część programu LEDMatrixDisp odpowiedzialna jest za definicje i wgrywanie sekwencji programu. Profile sekwencji można eksportować i importować do/z pliku tekstowego z rozszerzeniem *.sek.

    Wyświetlacz matrycowy LED 8x80 Wyświetlacz matrycowy LED 8x80

    Sekwencje graficzne tworzy się importując monochromatyczne mapy bitowe, które można narysować chociażby w Paincie. Pamięć AT45DB081D wspiera 3 poziomy organizacji zawartości: na sektory, bloki i na strony. Ja wykorzystuję tylko ostatni stopień podziału. Stron jest łącznie 4096, każda w rozmiarze 264 bajtów. Pierwsza strona przechowuje ustawienia wyświetlacza i liczbę zapisanych sekwencji programu tak, by nie trzeba było kasować całej pamięci przed wgraniem nowych sekwencji. Sekwencje są nadpisywane, a sterownik sam wie do której strony w pamięci ma odczytywać program. W każdej ze stron sekwencji początkowe sześć bajtów również pełni rolę konfiguracyjną – określają parametry danej sekwencji np. jej typ, numer czcionki, jasność itp. Bajty 8-263 przeznaczone są na zapis zawartości sekwencji (np. kodów ASCII wyświetlanego napisu bądź bajtów sekwencji graficznej, z których składany jest obraz do wyświetlenia). Z uwagi na pionową rozdzielczość matrycy wynoszącą 8 px każdy bajt z pamięci przechowuje piksele sekwencji graficznej dla jednej kolumny w matrycy.

    Inne:

    Z racji tego, że w matrycy siedzi 640 diod, a do każdej wymagana była przelotka od strony LEDów z drutu srebrzonego, to w samych matrycach trzeba było wywiercić około 2,5 tys. otworów. Aby nie mordować się trzymając wiertarkę w ręce powstał na tę okazję statyw do wiercenia zbudowany z żelaznej blachy grubości około 2 cm, wspawanych w nią dwóch stalowych prowadnic z karetkami, które kiedyś kupiłem na aukcji, kilku dm^2 blachy aluminiowej, uchwytu do rur oraz kawałka płyty wiórowej. Sprężyny umieszczone na prowadnicach pochodzą ze starych odsysaczy do cyny. Prowadnice dla lepszego posuwu karetek smarowałem olejem do smażenia. Do wiercenia używałem przedłużki ze spiralą z uwagi na mniejszy ciężar w stosunku do wiertarki. Wszystkie otwory na matrycy zrobiłem jednym wiertłem HSS fi 0,7 mm, co jakiś czas ostrząc je pod mikroskopem. Płytki były robione domowym sposobem, w roli soldermaski wykorzystałem termoutwardzalną farbę do szkła i ceramiki.

    Wyświetlacz matrycowy LED 8x80

    Planowałem wyposażyć wyświetlacz w dodatkowy moduł z czujnikiem światła, żeby możliwa była automatyczna regulacja jasności matrycy w zależności od warunków oświetleniowych, niestety nie starczyło mi już na to czasu. Do wgrywania sekwencji wyświetlania albo aktualizacji firmware'u wyświetlacz z komputerem trzeba połączyć przewodem rs232 z wtykami db9, dołaczanego do małej przelotki na usb.

    Wyświetlacz matrycowy LED 8x80 Wyświetlacz matrycowy LED 8x80

    W ramach badań pobawiłem się trochę sprzętem do fotometrii. Wyznaczyłem m.in. krzywą rozkładu luminancji powierzchni świecącej w funkcji kąta obserwacji i luminancję poszczególnych modułów w matrycy. Początkowo żadnych różnic w jasności świecenia pomiędzy poszczególnymi modułami matrycowymi nie widziałem, niemniej siła autosugestii po obejrzeniu wyników pomiarów pozwala przy słabym oświetleniu i małym wypełnieniu sygnału aktywującego dostrzec, że drugi moduł świeci nieco słabiej. Ma to zapewne związek z tolerancją wartości prądu wyjściowego zastosowanych sterowników, albo tolerancją rezystorów nastawczych.
    Obecnie wartość prądu forsującego diody ustawiłem na if=30 mA, co przy załączeniu wszystkich pikseli i maksymalnej jasności przekłada się na pobór z sieci mocy P=33 W.

    Wyświetlacz matrycowy LED 8x80 Wyświetlacz matrycowy LED 8x80


    Wyświetlacz matrycowy LED 8x80 Wyświetlacz matrycowy LED 8x80 Wyświetlacz matrycowy LED 8x80




    Cool? Ranking DIY
    About Author
    daroslav15
    Level 16  
    Offline 
    daroslav15 wrote 216 posts with rating 72, helped 6 times. Live in city Rio de Świebodzineiro / Poznań. Been with us since 2006 year.
  • Computer Controls
  • #3
    pieczki
    Level 11  
    Czy będą udostępnione kody źródłowe?
  • #4
    yogi009
    Level 43  
    Kawałek dobrej roboty, gratulacje! Mam dwa pytanka:

    -. skrobałeś tą czerwoną farbę po utwardzeniu w miejscu pad'ów, czy jakiś "patent" użyłeś?
    -. mógłbyś się podzielić źródełkiem PWM? Ciekaw jestem rozwiązania.
  • Computer Controls
  • #5
    Arek1990
    Level 11  
    yogi009 wrote:
    Kawałek dobrej roboty, gratulacje! Mam dwa pytanka:

    -. skrobałeś tą czerwoną farbę po utwardzeniu w miejscu pad'ów, czy jakiś "patent" użyłeś?


    Na zdjęciu widać, że na pady w pierwszej kolejności naniesiono toner tak samo jak wcześniej na laminat mozaikę ścieżek. Później wystarczy zmyć i po problemie.
  • #6
    maystero
    Level 24  
    yogi009 wrote:

    -. skrobałeś tą czerwoną farbę po utwardzeniu w miejscu pad'ów, czy jakiś "patent" użyłeś?


    Przyłączam się do pytania.


    Wg mnie mogłeś zrezygnować z tradycyjnego zasilacza liniowego. Przecież to górę ciepła wydziela! Na znanym serwisie aukcyjnym zasilaczy impulsowych jest do wyboru do koloru.
  • #7
    daroslav15
    Level 16  
    Quote:
    Takie pytanie, ile roboczogodzin przy tym projekcie?

    Trudno odpowiedzieć. Wyświetlacz robiłem na przestrzeni kwiecień-wrzesień w zeszłym roku. Najbardziej pracochłonne było wykonanie matrycy (wiercenie, osadzanie przelotek i ledów, szlifowanie itp). Około 60% wyświetlacza powstało w ostatnim miesiącu, więc jakby się spiąć, to można cały zrobić w 2 miesiące.

    Quote:
    Czy będą udostępnione kody źródłowe?

    Nie udostępniam. Jak chcesz o coś konkretnego spytać, to chętnie odpowiem.

    Quote:
    . skrobałeś tą czerwoną farbę po utwardzeniu w miejscu pad'ów, czy jakiś "patent" użyłeś?

    Jak ktoś wspomniał - na zdjęciu sterownika matrycowego widać cały proces. Trzeba tradycyjnie wytrawić płytkę + nanieść warstwę z tonerem na same pady, całość pomalować i wygrzać. Później pędzelek i rozpuszczalnik (chyba używałem benzyny lakowej).

    Quote:
    mógłbyś się podzielić źródełkiem PWM? Ciekaw jestem rozwiązania

    PWM generowany jest przez timer1 w uC. Jeden kanał generuje zegar dla licznika wierszy, drugi kanał tego timera generuje pwm aktywujący drivery kolumn.

    Quote:
    Wg mnie mogłeś zrezygnować z tradycyjnego zasilacza liniowego. Przecież to górę ciepła wydziela! Na znanym serwisie aukcyjnym zasilaczy impulsowych jest do wyboru do koloru.

    Rozważałem taką opcję, w sumie nawet chciałem taki zasilacz zbudować. No ale znalazłem w szpargałach transformator i żal było nie wykorzystać. Aż tak dużo energii wyświetlacz z zasilaczem nie pobiera, a wydaje mi się, że taki zasilacz liniowy jest bardziej niezawodny niż chiński impulsowy.
  • #8
    Krawacik3
    Level 12  
    Czy ja dobrze widzę, że na płytce przejściówki RS-232 jako przelotek użyłeś śrubek?
  • #10
    leonow32
    Level 30  
    Mega dobre! Jak sobie pomyślę, jakie znajomi bzdury robili na pracę magisterską to aż śmiać mi się chce :) Nie myślałeś, żeby sprzedawać takie wyświetlacze? Jakością i możliwościami bez problemu może to konkurować z fabrycznymi wyświetlaczami. Ile takich modułów 8x16 można połączyć?
  • #11
    szymon122
    Level 38  
    Możesz coś więcej powiedzieć o kosztach takiego wyświetlacza? Wygląda bardzo profesjonalnie. Nie wiem czy to będzie potem gdzieś wystawiane, ale nawet jeśli będzie to wewnątrz budynku to nie przewiduję długiego życia tego gniazda DB9.
  • #12
    daroslav15
    Level 16  
    Quote:
    Nie myślałeś, żeby sprzedawać takie wyświetlacze?

    Może kiedyś, ale oczywiście trzeba zlecać produkcję pcb i montaż. Ręczne robienie wszystkiego to szaleństwo, uwierz mi :). Projekt chciałbym jeszcze rozwijać, wcześniej miałem już go trochę dość, teraz nie mam czasu, może w przyszłości.
    Quote:
    Ile takich modułów 8x16 można połączyć?

    Sam jestem ciekawy. Robiłem pewne testy-po podłączeniu tylko jednego modułu do sterownika czas narostu zbocza sygnału CLK magistrali to tr=6,8 ns. Po podłączeniu wszystkich, z czym dwa ostatnie złączone taśmą 3 m (zamiast krótką 10 cm), zwiniętą na kształt spirali/cewki czas wzrósł do tr=12,4 ns, poza dodatkowymi oscylacjami sygnały wyglądały dobrze. Do tego tyrałem wszystko cewką z przerywaczem, którą dr Wiczyński miał w laboratorium i nie było problemów z wyświetlaniem.
    Myślę, że zrobienie na takich modułach całego telebimu, powiedzmy 80x80 nie byłoby problemem. Jeśliby wsunięcie takiej ilości bitów do rejestrów zajmowałoby zbyt dużo czasu, to można zmniejszyć częstotliwość odświeżania matrycy, bo obecnie jest bardzo nadmiarowa, a wystarczyłoby powiedzmy z 60-80 Hz, żeby nie było widać migotania. Wtedy też możnaby zmniejszyć prędkość zegara magistrali, żeby pojemności nie stanowiły problemu.
    Quote:
    Możesz coś więcej powiedzieć o kosztach takiego wyświetlacza?

    Za same LEDy dałem coś koło 130 zł, kupiłem 700 sztuk. Materiał na obudowę to kolejne 100. Sporo części miałem, ale jakby płacić za całość to mogłoby się zamknąć w 400-500 zł doliczając koszt wysyłek. Trudno mi określić, bo jak kupuję podzespoły elektroniczne do jakiegoś projektu, to kupuje jednocześnie masę niepotrzebnych mi aktualnie rzeczy :P
    Quote:
    Nie wiem czy to będzie potem gdzieś wystawiane, ale nawet jeśli będzie to wewnątrz budynku to nie przewiduję długiego życia tego gniazda DB9

    Cóż, myślałem o programowaniu przez blututa, ale wtedy byłem biednym studentem bez pracy, więc musiałem ciąć koszta :)
  • #13
    rxone
    Level 10  
    Chciałbym jeszcze zapytać o tą soldermaske, bo wyszła naprawdę profesjonalnie. Większość jakie widziałem w internecie miały widoczne ślady po pędzlu, paskudne zacieki albo odpryski po skrobaniu pinów, a u ciebie idealnie gładko.
    Mógłbyś podać jakiej marki farby użyłeś, oraz jakim typem pędzelka malowałeś, a nie pędzelkiem malowałeś?

    na aledrogo jest tylko farba marki DECO natomiast w sklepach specjalistycznych masa różnych marek.

    Rozumiem, że procedura wygląda następująco:
    1. wytrawiamy standardowo płyskę
    2. cynujemy (chemicznie)
    3. wydruk samych padów i przeniesienie ich na płytke
    4. malowanie (jaka specjalna technika ?)
    5. wygrzewanie (jakaś konkretna temperatura?)
    6. zmywanie toneru spod farbki. Trzeba to wcześniej lekko podskrobać, aby rozpuszczalnik dostał się pod warstwę farby? rozpuszczalnik nie "psuje" powłoki?
  • #14
    pieczki
    Level 11  
    Quote:
    Czy będą udostępnione kody źródłowe?

    Quote:
    Nie udostępniam. Jak chcesz o coś konkretnego spytać, to chętnie odpowiem.


    W jaki sposób jest realizowane przewijanie tekstu? (scroll)
  • #15
    toriman
    Level 15  
    @rxone

    Pod soldermaskę nie cynujemy ścieżek bo to bardzo obniża wytrzymałość powłoki.
    Punkt 2 przenosisz poza punkt 6 i bedzie OK. Cynowanie - jeśli już - na samym końcu, np. stopem Lichtenberga...

    pzdr
  • #16
    yogi009
    Level 43  
    No i właśnie ten rozpuszczalnik mnie zastanawia (autor wspominał coś o benzynie lakowej), przecież on nie jest na tyle inteligentny, żeby rozpuszczać tylko tam, gdzie "podrapane"...
  • #17
    Syzyf123
    Level 12  
    daroslav15 wrote:
    otwory na matrycy zrobiłem jednym wiertłem HSS fi 0,7 mm, co jakiś czas ostrząc je pod mikroskopem.

    Gratulując świetnego projektu, chciałbym prosić o trochę szczegółów na temat ostrzenia wierteł 0,7mm pod mikroskopem...
  • #18
    Sh44dow
    Level 16  
    leonow32 wrote:
    Mega dobre! Jak sobie pomyślę, jakie znajomi bzdury robili na pracę magisterską to aż śmiać mi się chce :) Nie myślałeś, żeby sprzedawać takie wyświetlacze? Jakością i możliwościami bez problemu może to konkurować z fabrycznymi wyświetlaczami. Ile takich modułów 8x16 można połączyć?


    U nas jest podobnie ;-). Kończę studia 2-go stopnia - 50 prac magisterskich i godnych uwagi jest mniej niż połowa, chociaż to i tak niezły wynik w porównaniu do innych uczelni / wydziałów.

    Co do sprzedaży to może bym się tak nie rozpędzał - nie w takim stanie w jakim to jest obecnie. Do tego na rynku jest już tego bardzo dużo - zwłaszcza produkcji wschodniej, które są bardzo tanie i często dobrej jakości, chociaż spotkałem też i polskie gówniane "garażówki" małych "firm", które również się sprzedawały (może to były przetargi państwowe? ;-) ).

    daroslav15 wrote:
    Myślę, że zrobienie na takich modułach całego telebimu, powiedzmy 80x80 nie byłoby problemem. Jeśliby wsunięcie takiej ilości bitów do rejestrów zajmowałoby zbyt dużo czasu, to można zmniejszyć częstotliwość odświeżania matrycy, bo obecnie jest bardzo nadmiarowa, a wystarczyłoby powiedzmy z 60-80 Hz, żeby nie było widać migotania. Wtedy też możnaby zmniejszyć prędkość zegara magistrali, żeby pojemności nie stanowiły problemu.


    Kiedyś zbudowałem panel 128x16 (fizycznie 256x8, jeden zestaw tranzystorów przy wierszach na cały wyświetlacz) również na Mega32. Przy odświeżaniu 400Hz nie było problemów i można by spokojnie wyciągnąć więcej. Z jednego 8-bitowca można wycisnąć na prawdę dużo, chociaż mikrokontrolery są już tak tanie, że IMO powoli przestaje to mieć znaczenie.

    Co do częstotliwości odświeżania - 60Hz to zdecydowanie za mało jak na panel z niskim wypełnieniem (1/8) i LEDami które nie mają bezwładności jak luminofor w CRT. Są osoby, które nie widzą mrugania LEDa podłączonego do gniazdka, ale jednak duża część je zobaczy.
    Nie odnieśliście wrażenia, że większość starszych paneli drażni swoim mruganiem? U siebie widziałem je jeszcze przy 250-300Hz, dlatego skończyłem z 400Hz gdzie jest już słabo widzialne i nie przeszkadza.
  • #19
    daroslav15
    Level 16  
    Quote:
    Chciałbym jeszcze zapytać o tą soldermaske, bo wyszła naprawdę profesjonalnie. Większość jakie widziałem w internecie miały widoczne ślady po pędzlu, paskudne zacieki albo odpryski po skrobaniu pinów, a u ciebie idealnie gładko.
    Mógłbyś podać jakiej marki farby użyłeś, oraz jakim typem pędzelka malowałeś, a nie pędzelkiem malowałeś?

    na aledrogo jest tylko farba marki DECO natomiast w sklepach specjalistycznych masa różnych marek.

    Rozumiem, że procedura wygląda następująco:
    1. wytrawiamy standardowo płyskę
    2. cynujemy (chemicznie)
    3. wydruk samych padów i przeniesienie ich na płytke
    4. malowanie (jaka specjalna technika ?)
    5. wygrzewanie (jakaś konkretna temperatura?)
    6. zmywanie toneru spod farbki. Trzeba to wcześniej lekko podskrobać, aby rozpuszczalnik dostał się pod warstwę farby? rozpuszczalnik nie "psuje" powłoki?


    Używam farby marki ceramica, ale uwaga na rodzaj, musi mieć takie kółeczko na etykiecie. Drugi rodzaj to farba akrylowa i nie nadaje się do płytek. Używam pędzelka nylonowego,
    Wyświetlacz matrycowy LED 8x80
    Farbkę nakładam tym pędzelkiem, póki nie zaczyna schnąć uderzam kantami o np. stół, żeby się lepiej rozpłyneła. Trzeba uważac, żeby nie zostawiać bąbli z powietrzem, bo będą problemy przy grzaniu. Dobrze jest najpierw płytkę odstawić, żeby samoczynnie przeschła, np. wystawić na słońce. Póżniej żelazko z odwróconym dnem na 180-200 st 30-40 min i płytka gotowa.

    Quote:
    W jaki sposób jest realizowane przewijanie tekstu? (scroll)

    W pamięci sterownika zadeklarowana jest tablica - bufor o rozmiarze 80 bajtów. Przy każdym cyklu wszystkie wartości w tablicy są przepisywane o jedną w lewo, a ostania jest uzupełniana o wartość z bitami aktualnie wyświetlanego znaku, które odczytywane są z tablicy z czcionką w pamięci flash. Dalej bufor jest wysyłany jako dane dla sterowników kolumn. Inaczej wytłumaczyć nie potrafię.

    Quote:
    Cynowanie - jeśli już - na samym końcu, np. stopem Lichtenberga...

    Stop Lichtenberga jest tylko na płytkach matryc. Płytki z 'soldermaską' są lutowane od razu, bez cynowania

    Quote:
    No i właśnie ten rozpuszczalnik mnie zastanawia (autor wspominał coś o benzynie lakowej), przecież on nie jest na tyle inteligentny, żeby rozpuszczać tylko tam, gdzie "podrapane"...

    No i tu wychodzi pewna praktyka, którą trzeba nabyć robiąc kilka egzemplarzy takich płytek. Muszą być odpowiednio dobrze wygrzane, nie za mocno i nie za słabo. Do tego rozpuszczalnik - z tego co pamiętam nitro i aceton kompletnie się nie nadają, bo zmywają po chwili nawet utwardzoną farbę. Benzyna daje radę, można nawet mocno pocierać pędzelkiem po płytce i co najwyżej miejscami są drobne ubytki w farbie. W miejscu z tonerem farba ma słabszą strukturę i jak się moczy pędzelek w rozpuszczalniku i macha nim po całej płytce to po chwili farba na padach odchodzi.

    Quote:
    Gratulując świetnego projektu, chciałbym prosić o trochę szczegółów na temat ostrzenia wierteł 0,7mm pod mikroskopem...

    Mam radziecki stereoskop mbs 9, wiertła ostrzyłem dremelem i tarczą do cięcia z końcówką ze spiralą, którą widać na zdjęciu statywu do wiercenia.

    Quote:
    Co do sprzedaży to może bym się tak nie rozpędzał - nie w takim stanie w jakim to jest obecnie.

    Nikt tego wyświetlacza sprzedawać nie będzie. Ale oprogramowanie i powstała elektronika może stanowić bazę do produkcji gotowego wyświetlacza (taka moja opinia). Pamięci w sterowniku sporo wolnej zostało, można naprawdę wiele efektów świecenia jeszcze oprogramować (obecnie dla tekstu jest chyba koło 10), kwestia wyobraźni i kilku wolnych wieczorów.
    Poza tym, jeśliby faktycznie wyposażyć wyświetlacz w moduł z czujnikiem światła, to już czymś konstrukcja by się wyróżniała na tle konkurencji (część programowa odpowiedzialna za obsługę modułu już jest, ale nieaktywna). Często przechodziłem koło pewnego lombardu w porze nocnej, który w oknie miał wyświetlacz ledowy i dawał po gałach pełną jasnością - porażka.

    Quote:
    Co do częstotliwości odświeżania - 60Hz to zdecydowanie za mało jak na panel z niskim wypełnieniem (1/8) i LEDami które nie mają bezwładności jak luminofor w CRT. Są osoby, które nie widzą mrugania LEDa podłączonego do gniazdka, ale jednak duża część je zobaczy

    Zgadzam się z tym, ale 60 Hz to chyba dolna granica. Wszystko jak wspomniałeś zależy od indywidualnych cech wzroku obserwatora. Co do fabrycznych wyświetlaczy, widziałem jeden taki, w którym nie to że było widać odświeżanie, ale on wręcz sprawiał wrażenie mrugania zał/wył, a oglądanie na nim jakiegokolwiek tekstu to była istna tortura. Do obejrzenia w nocy na ul. Dąbrowskiego w Poznaniu idąc w stronę pętli :)

    Quote:
    Generalnie jestem programistycznym laikiem. Nie ma mam zawodowo nic wspólnego z programowaniem. Mi podobny /PIC/ "projekt" zajął tydzień (z przerwami na pracę zawodową, których to uniknąć nie mogłem). Boże/Allahu/Ufo broń przed magistrami podobnej maści.

    Winszuję, czekamy zatem na opis projektu na elektrodzie :)
  • #22
    lechoo
    Level 39  
    Witam, gdy będziesz budował kolejną matrycę graficzną, to zainteresuj się diodami RGB WS2812B - niesamowicie upraszcza to sterowanie, nie są potrzebne żadne dodatkowe układy, a dane są przesyłane kaskadowo magistralą 1-przewodową z szybkością 800kbitów/s.
  • #23
    rxone
    Level 10  
    albo układami z tej samej rodziny WS2803 - 16xPWM komunikacja via SPI cena około 2zł
  • #24
    r-maniac
    Level 15  
    Gotowa matryca 8x8 RGB LED ze wspomnianymi diodami typu WS2812B lub WS2803 to dopiero będzie coś. Niestety na chwilę obecną wykorzystując 64 odrębne sztuki, matryca ma ogromne rozmiary, ale w tym projekcie sprawdziłaby się idealnie.
  • #25
    pieczki
    Level 11  
    Quote:
    W jaki sposób jest realizowane przewijanie tekstu? (scroll)

    Quote:
    W pamięci sterownika zadeklarowana jest tablica - bufor o rozmiarze 80 bajtów. Przy każdym cyklu wszystkie wartości w tablicy są przepisywane o jedną w lewo, a ostania jest uzupełniana o wartość z bitami aktualnie wyświetlanego znaku, które odczytywane są z tablicy z czcionką w pamięci flash. Dalej bufor jest wysyłany jako dane dla sterowników kolumn. Inaczej wytłumaczyć nie potrafię.


    Wytłumaczę o co mi chodzi - z tego co widzę jest możliwość ustawienia różnej prędkości przewijania tekstu. W jaki sposób jest zsynchronizowane wpisywanie danych do driver'ów w zależności od prędkości przewijania tekstu? W Twoim przypadku jest ładne i płynne przewijanie tekstu, u mnie z kolei wygląda jakby obecny i poprzedni stan się nakładały. Sprawia to wrażenie, że czcionka jest pogrubiona(nie są to tak zwane "duszki"). Jakbyś mógł wkleić kawałek kodu tego przewijania, to byłbym wdzięczny. W moim przypadku tablica to 8x32, odświeżanie wierszowo w przerwaniu
  • #26
    daroslav15
    Level 16  
    Quote:
    Witam, gdy będziesz budował kolejną matrycę graficzną, to zainteresuj się diodami RGB WS2812B

    Bardzo fajne te diody. Budowa matrycy RGB to ciekawa opcja i myślałem nad tym przez chwilę, ale nie było stać mnie na taki wydatek, sama matryca kosztowałaby tyle, co cały mój projekt w obecnej formie. Wolałem zrobić monochromatyczną matrycę, ale w większym rozmiarze.

    Quote:
    albo układami z tej samej rodziny WS2803 - 16xPWM komunikacja via SPI cena około 2zł

    Cóż, różnorodność i obfitość driverów LED jest spora. SCT2024, jest jednak trochę tańszym układem od WS2803, jego minus jest taki, że nie posiada wewnętrznego modulatora pwm, za to wyjścia mają większą wydajność prądową i to mnie zachęciło do zakupu.

    Quote:
    Wytłumaczę o co mi chodzi - z tego co widzę jest możliwość ustawienia różnej prędkości przewijania tekstu. W jaki sposób jest zsynchronizowane wpisywanie danych do driver'ów w zależności od prędkości przewijania tekstu? W Twoim przypadku jest ładne i płynne przewijanie tekstu, u mnie z kolei wygląda jakby obecny i poprzedni stan się nakładały. Sprawia to wrażenie, że czcionka jest pogrubiona(nie są to tak zwane "duszki"). Jakbyś mógł wkleić kawałek kodu tego przewijania, to byłbym wdzięczny. W moim przypadku tablica to 8x32, odświeżanie wierszowo w przerwaniu

    U mnie działa to tak: zarówno operacje na buforze obrazu, jak i wysyłanie danych do rejestrów w driverach odbywają się w pętli głównej programu. W przerwaniu, które wywoływane jest przy generacji sygnału zegarowego dla licznika wierszy inkrementowana jest zmienna. Wartość po inkrementacji jest porównywana w pętli głównej z wartością odpowiedzialną za prędkość danego efektu i wtedy dopiero wywoływana jest funkcja zmieniająca coś w buforze obrazu (czyli np. funkcja odpowiedzialna za scroll). Wysyłanie danych do sterowników odbywa się każdorazowo po inkrementacji wspomnianej zmiennej. Kodu ci nie udostępnie, bo mam wszystkie materiały na innym komputerze, do którego teraz nie mam dostępu. Podeślij mi na PW swój program, to może będę w stanie Ci pomóc.
  • #27
    lukashb
    Level 39  
    Akurat z takim pogrubieniem czcionki się spotkałem jak na razie w każdej tablicy którą widziałem. Wygląda to mniej więcej tak, że jest przesuwane o jeden w lewo, potem o jeden w prawo przy tym nie czyszcząc pozycji z przesunięcia w lewo. Tak widać w tablicach w autobusach, i w mojej fabrycznej jakiejś chińskiej. Zakładam, że tak po prostu musi być, bądź oko tak odbiera to.
  • #28
    komatssu
    Level 29  
    Wystarczy zrobić podwójne buforowanie (przełączanie buforów zsynchronizowane z przemiataniem wierszy) i takiego efektu nie będzie.
  • #29
    pieczki
    Level 11  
    Quote:

    U mnie działa to tak: zarówno operacje na buforze obrazu, jak i wysyłanie danych do rejestrów w driverach odbywają się w pętli głównej programu. W przerwaniu, które wywoływane jest przy generacji sygnału zegarowego dla licznika wierszy inkrementowana jest zmienna. Wartość po inkrementacji jest porównywana w pętli głównej z wartością odpowiedzialną za prędkość danego efektu i wtedy dopiero wywoływana jest funkcja zmieniająca coś w buforze obrazu (czyli np. funkcja odpowiedzialna za scroll). Wysyłanie danych do sterowników odbywa się każdorazowo po inkrementacji wspomnianej zmiennej. Kodu ci nie udostępnie, bo mam wszystkie materiały na innym komputerze, do którego teraz nie mam dostępu. Podeślij mi na PW swój program, to może będę w stanie Ci pomóc.

    Popróbuję jeszcze sam rozwiązać ten problem. Jeśli mi się nie uda, to w ciągu paru dni udostępnię kod.
  • #30
    tmf
    Moderator of Microcontroller designs
    Jeżeli kogoś interesuje kod sterowania matrycami to za free można zaglądnąć do przykładów z mojej książki - jest tam i kod sterowania matrycą z diodami sterowanymi on/off, jak i z diodami sterowanymi przebiegiem PWM, co daje możliwość uzyskania odcieni koloru - efekt naprawdę fajny szczególnie dla matryc RGB. Tu jest kod:
    http://helion.pl/ksiazki/avr-praktyczne-projekty-tomasz-francuz,avrppr.htm#szczegoly
    Link z "Przykłady na ftp". Kod umożliwia bezproblemowe sterowanie nawet kilkoma tysiącami diod. A tu fotka jak wyglada matryca RG sterowana z PWM:
    http://2.bp.blogspot.com/-9aE1NZ7bvRg/UmRrBbrl8JI/AAAAAAAAMD8/WDBTke8SHfg/s1600/matrycaRG.JPG

    Stosowanie diod typu WSxxxx jest fajne, niestety diody te są relatywnie drogie, a do zbudowania nawet małej matrycy trzeba ich sporo.