Dołączył(a): 17 mar 2014 Posty: 333 Lokalizacja: Rybnik
Pomógł: 55
Witam.
Budowa tablicy LED chodziła mi po głowie już dobrych parę lat, ale jakoś do tej pory nie mogłem się za to zabrać. Raz byłem już nawet na etapie zamawiania modułów LED 8x8, ale akurat był jakiś błąd na stronie sklepu, zrządzenie losu Ostatnie czasy temat ten jest mi bliższy, jako iż pracuję przy telebimach LED -obsługa, serwis.
Zaczęło się od tego, że udało mi się zdobyć trzy maskownice do modułów zewnętrznych. Jedna maskownica to 32 kolumny i 16 rzędów. To właśnie one narzuciły mi rozdzielczość i rozmiar pojedynczego modułu. Zacząłem poszukiwanie odpowiednich diod, a prosto nie było.
W ekranach stosowało się diody owalne, które mają szerszy kąt świecenia w poziomie, dla poprawy czytelności od boków. Jej wymiar to 5,2x3,8mm i takie też otwory były wykonane w maskownicach. Niestety tutaj dużego wyboru nie mamy jak przy standardowych 5mm czy 3mm i cena trochę wyższa. Diod potrzebowałem 1600, więc szukałem hurtowni, aby wynegocjować dobrą cenę, no i się udało.
Na początku lipca zakupiłem czerwone diody i tą datę można uznać za początek projektu Wtedy jeszcze nie wiedziałem, że Mirek szykuje taką niespodziankę w YB odnośnie tablic LED.
Założenia były następujące: -Modułowa budowa -Zastosowanie zewnętrzne -Prostota wgrywania sekwencji -Programowanie bezprzewodowe -Przyjazna aplikacja do tworzenia sekwencji -Możliwość wyświetlanie tekstu, grafiki, animacji -Zegar czasu rzeczywistego RTC -Pomiar temperatury DS18B20 -Zasilanie 230V
Panel LED Każdy moduł ma szerokość 25,5cm i zawiera 512 diod LED. O ile z zaprojektowaniem PCB nie było problemu o tyle wykonanie płytki takie wielkości przysporzyło mi kilku problemów. Pierwszym z nich okazała się drukarka, ponieważ płytki wykonuję metodą termotransferu. Przy płytkach, które wykonywałem do tej pory nie było żadnych problemów, ale przy tej wielkości okazało się, że wydruk nieznacznie się rozjeżdża, co na prawie 26 cm było już zauważalne. Po przeszukaniu internetu -przypadłość dość częsta domowych drukarek. Na szczęście miałem dostęp do profesjonalnego sprzętu Konica. Drugi problem okazał się poważniejszy. Do tej pory korzystałem z stworzonego narzędzia do nagrzewania PCB. Niestety, nie można było jednocześnie nagrzać całego obszaru PCB, tym bardziej dwustronnie i pomimo 3 prób zawsze gdzieś powstał jakiś bąbel powietrza. Poirytowany tą sytuacją znalazłem na znanym portalu aukcyjnym laminator, jeszcze tego samego dnia miałem go w domu. Szybka przeróbka i to był strzał w dziesiątkę. Po kilku latach już miałem wprawę w "metodzie żelazkowej" i płytki wychodziły ładne, ale to co doświadczyłem przy laminatorze, to było to. Duża powtarzalność, szybkość i prostota wykonywania. Na trzy tak duże dwustronne PCB, toner nie odchodził z ani jednego miejsca.
Potem przyszedł czas na wiercenie całości. Kupiłem trzy zwykłe wiertła do metalu HSS 0,6mm, do tego ręczna wiertarka. Fakt, zajęło to sporo czasu, ale wiertła dały rade wywiercić blisko 4000 otworów
Na koniec ustawienie diod i lutowanie. Ponieważ nie wykonuję metalizacji otworów, jedną elektrodę lutowałem od góry PCB, drugą od dołu. Takie coś wymusiło na mnie montaż kolejnych kolumn.
Drivery LED Aby konstrukcja była modułowa, sterowania musi być maksymalnie uproszczone, więc w grę wchodziły tylko rejestry przesuwne. W zasadzie wybór był prosty, SCT2024, gdyż ogranicza nam to mocno ilość zewnętrznych elementów dyskretnych. Inaczej podszedłem do wyboru wierszy, metoda stosowana w profesjonalnych rozwiązaniach czyli dekoder "3 to 8" 74HC138. Ponieważ wierszy jest 16, więc dwa takie układy odpowiednio połączone tworzą dekoder "4 to 16". Dzięki temu zabiegowi wybór konkretnej linii jest maksymalnie uproszczony i skrócony. Jako klucze tranzystory P-Mosfet. Zastosowałem tranzystory o prądzie Id 1.7A w obudowie Micro 8. Trzeba mieć trochę cierpliwości, żeby to polutować, ale za to wszystko zmieściło się w jednej linii na wysokość. Tak więc linie potrzebne do sterowania modułu to odpowiednio: 1. Data 2. CLK 3. LATCH 4. PWM 5. A 6. B 7. C 8. D
PCB jeszcze przed docięciem:
Sterownik Sprawa prosta, gdy dobrze przygotujemy moduły matryc, sterowania jest bajecznie proste, więc i sam sterownik jest prosty. Na pokładzie siedzi Atmega 328p pędzona kwarcem 20Mhz. Jako pamięć dla sekwencji wykorzystałem układ winbond W25x32, dysponujący rozmiarem aż 4MB . Układ bardzo prosty w obsłudze, kiedyś stworzyłem fajną bibliotekę do jego obsługi, więc teraz to była tylko formalność. Jako układ RTC zastosowałem PCF8563. Programowanie zapewnia nam moduł nRF24L01. Dla niego również stworzyłem prostą bibliotekę obsługującą podstawowe funkcję, gdyż z tych modułów korzystam częściej.
Program na AVR Program napisany został od podstaw przeze mnie w C. Biblioteki do wszystkich obsługiwanych peryferii w ramach ćwiczeń tworzyłem sam. Wyjątkiem jest 1 wire (tylko komunukacja), lekko zmodyfikowałem tą pokazaną przez Mirka w BB. Nazwy dni miesiąca i tygodnia przechowuję w zewnętrznej pamięci flash, w AVR przechowuję tylko adres pierwszego znaku danego słowa. Raz, że oszczędność pamięci procesora, dwa że ułatwia to wyświetlanie -stosuje się tą samą funkcje, która służy do wyświetlania tekstu z zewnętrznej pamięci.
Są dwie możliwości wyświetlania tekstu. Pierwsza to taka z wykorzystaniem czcionki "wbudowanej", znaki generowane są "w locie" przez program. Powoduje to zmniejszenie rozmiaru sekwencji, gdyż programujemy surowe znaki w Ascii. Drugi sposób z czcionką systemowa. Tutaj już tekst zamieniany jest na grafikę przez aplikację na PC i jedna sekwencja zajmuje 192 bajty. Wszystkie efekty generowane są przez AVR w funkcjach nieblokujących, z wykorzystaniem zmiennej liczącej kroki. Dwa programowe timery służą odpowiednio do ustalenia prędkości efektu i czasu pauzy na prezentację.
W programie stworzyłem tablice wskaźników na funkcje w flash, a więc wywołanie danego efektu jest bardzo proste. Ułatwia to tez ewentualne dodanie nowego efektu, które sprowadza się do napisania funkcji i dodania jej do tablicy adresów.
Oczywiście zastosowany mechanizm podwójnego buforowania i regulację jasności z wykorzystaniem fototranzystora. Zastosowałem skanowanie 1/16 co może się trochę kłócić z założeniami "zastosowanie zewnętrzne". W profesjonalnych rozwiązaniach stosuje się raczej 1/8 i mniej, podwyższając tym samym prąd średni i jasność. Prąd średni można też podnieść poprzez zwiększenie prądu na driverze, ale skróci to żywotność diod. Aktualnie prąd statyczny diod ustawiłem na 20mA, docelowo 30mA. Program na chwilę obecną zajmuje trochę ponad 48 %pamięci. Zaimplementowałem również zabezpieczenie przed błędnym zaprogramowaniem zewnętrznej pamięci, sumy i bajty kontrolne, aby maksymalnie poprawić bezawaryjność.
Nadajnik Tu muszę przyznać, że stworzyłem coś uniwersalnego i z efektów pracy jestem bardzo zadowolony Co mi po tablicy, która wyświetla stały napis, albo potrzebuje programatora i osobnego programu do jego zmiany.
Jak już wspomniałem moduły nRF24l01 wykorzystuje częściej i czasami fajnie byłoby mieć możliwość komunikacji z komputera. Dlatego tez powstało takie oto urządzenie.
Wszystko udało się upchać w naprawdę małą obudowę, niewiele większa od rozmiarów samego modułu nRF. Sama obudowa pochodzi z uszkodzonej karty dźwiękowej USB. A co my tutaj mamy? -Konwerter USB-UART na układzie CH340G (swoją droga układ niebyt lubiany przez pewnego zielonego ) -Procesor ATmega 8, pracujący jako translator UART-SPI -Moduł nRF24l01
I to praktycznie tyle, jeszcze kilka elementów dyskretnych. moduł NRF wymagał przeróbki, tj. wlutowanie kwarcu od drugiej strony. Sama atmega jest pędzona kwarcem 18,432Mhz, czyli ten "RS-lubny". Komunikacja odbywa się z prędkością 115200. Własnie w takich momentach człowiek dostrzega siłę drzemiącą w tak niepozornym stworku jakim jest bootloader. A jak obsługiwać to małe cacko? AT, kilka prostych komend. AT+RST =chyba nie wymaga tłumaczenia. AT+SPEED= ustawia prędkości transmisji 0=250 kbps, 1= 1 Mbps 2= 2 Mbps AT+SPEED? Zwraca prędkość AT+CHANNEL= Ustawia kanał transmisji AT+CHANNEL? Zwraca kanał transmisji AT+LEN= ustala długość słowa 0 lub > 32 długość dynamiczna AT+LEN? Zwraca długość słowa AT+ADDR=x;x;x;x;x ustala adres odbiorcy AT+ADDR? zwraca adres AT+SEND[x] wysyłanie danych, x =1 do 256
Na chwilę obecną urządzenie umożliwia jedynie wysyłanie danych, bo taką miałem potrzebę. Nie wykluczam, że z czasem rozbuduję je o więcej opcji oraz odbiór danych. Wszystkie ustawienia przechowywane są w pamięci EEPROM. W załączniku zamieszczam schemat, bootloader, wsad do procesora, mozaikę.
Zasilacz Typowy modułowy zasilacz 5V 5A. U nas trudno dostać takie na 5V, jak są to ceny z kosmosu, dlatego ten przyszedł prosto z chin.
Aplikacja PC Czyli dlaczego projekt przewidziany na 2 miesiące trwa już 7 miesięcy Tworzenie sekwencji i programowanie ma być maksymalnie uproszczone, aby mógł zrobić to każdy. Dlatego te aplikacji na PC poświęciłem naprawdę sporo czasu. Napisana jest w najnowszym delphi. Włożyłem w nią dużo pracy, dużo też musiałem się w miedzy czasie douczyć, aby wszystko zagrało tak jak ja tego chcę. Sporą części zajęło mi wykonanie symulacji sekwencji. Symulacja odbywa się w osobnym wątku, a prezentacja odbywa się na formie. Wymusiło to konieczność synchronizację i wprowadziło trochę problemów, zamieszania, ale ważne, że działa tak jak chce.
Mamy możliwość zapisu sekwencji do pliku, w przypadku kolejnego zapisu pod tą samą nazwą tworzony jest plik backup. Same ustawienia przechowywane są w pliku ini. Z takich ciekawszych, każde programowanie sekwencji pozostawia po sobie plik hex, przechowujący dokładnie to co wgrywamy do flasha. Taki debugger na wszelki wypadek.
Z resztą, najlepiej wszystko zobaczcie sami! (polecam oglądać z dźwiękiem)
Na nagraniu panel podglądu w programie jest strasznie wyblakły, w realu ma on żywe czerwone kolory. Niestety tablice LED z powodu jasności ciężko sensownie nagrać, dlatego wygląda jakby napisy się zlewały W rzeczywistości taki efekt nie występuje.
Na zakończenie Projekt nie jest jeszcze dokończony pod względem technicznym. Wszystkie płytki zabezpieczone są lakierem izolacyjnym PVB16, jednak od strony diod planuję wykonać zalewę masą zalewową do elektroniki, z powodu pracy w niesprzyjających warunkach. Pozostaje również stworzenie obudowy, biorę na razie pod uwagę druk 3D.
Niestety nie znalazłem jeszcze na tyle czasu, żeby dokładnie przeczytać cały rozdział YB o tablicy LED. Myślę, że znajdę tam sporo śmiesznie prostych rozwiązań, nad którymi ja się trochę nagłowiłem. Nie wykluczone, że wtedy wprowadzę poprawki. Na chwilę obecną skorzystałem z zapodanej tam funkcji map() do przemapowania zakresów przetwornika ADC do jasności wyświetlacza.
Uff, jeśli dotarłeś do tego momentu gratuluję, że chciało się Tobie przeczytać moje wypociny Schematy oraz inne pliki pomocnicze w załączniku. W razie wszelkich pytań chętnie służę pomocą.
Załączniki:
Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.
To jest jakiś KOSMOS ! coś ŚLICZNEGO i długo trzeba szczękę zbierać z podłogi ... no MEGA PRACA wykonana - zarówno z lutowaniem diod, projektowaniem pisaniem kodu i do procka i na PC ... fajne pomysły - (super ta zewnętrzna pamięć flash) ... extra no extra. Moje szczere GRATULACJE !
Dołączył(a): 25 lis 2013 Posty: 120 Lokalizacja: Koło
Pomógł: 6
Patrząc na takie projekty muszę stwierdzić, że miną lata świetlne zanim będę w stanie dorównać koledze w realizowaniu podobnych projektów. Swoją drogą Anonimowy nie zastanawiałeś się nad udzielaniem korepetcji w programowaniu?
Dołączył(a): 19 cze 2014 Posty: 820 Lokalizacja: Tam gdzie PYRY są
Pomógł: 64
Wow, wow, wow. No ładne cacko ... piękna sprawa. Kupa wspaniałej roboty. Wiem ze to pasja i tu godziny się nie liczą ale mimo wszystko. Gratuluję pomysłu, wiedzy, zdolności. Czekamy na film.
Dołączył(a): 17 mar 2014 Posty: 333 Lokalizacja: Rybnik
Pomógł: 55
mirekk36 napisał(a):
fajne pomysły - (super ta zewnętrzna pamięć flash) ... extra no extra. Moje szczere GRATULACJE !
A dziękuję, miło słyszeć takie słowa
Pamięć zewnętrzna była w zasadzie konieczna, gdyż przykładowa sekwencja przedstawiona na filmiku zajęła około 8KB. Przy okazji może wspomnę też coś o strukturze pamięci. Na samym początku znajduje się bajt kontrolny oraz ilość zaprogramowanych sekwencji. Następnie mamy tablice adresów, każdy składa się z 3 bajtów, wskazuje na początek danej sekwencji. Tablica ta jest dynamiczna, zajmuje 3bajty*ilość sekwencji . Daje nam to możliwość wyboru w programie dowolnej sekwencji z zaprogramowanych, nie musimy nawet czytać ich po kolei. Na dalszych adresach znajdują się już dane sekwencji. Na początku każdej jest nagłówek 6 bajtów, a w nim: effect In | speed | pauzaH | pauzaL | effect out | frame
frame -wykorzystane do animacji i efektu flash. I na końcu dane do wyświetlenia.
pbmaster napisał(a):
lata świetlne zanim będę w stanie dorównać koledze w realizowaniu podobnych projektów.
Nie potrzeba lat, wystarczą tylko chęci oraz książki Mirka i każdy może takie coś zrobić
pbmaster napisał(a):
Swoją drogą Anonimowy nie zastanawiałeś się nad udzielaniem korepetcji w programowaniu?
Że niby ja korepetycje? Chyba jeszcze nie jestem na takim poziomie
majster napisał(a):
Masz jakieś wideo z działania matryc ?
skalarro napisał(a):
Czekamy na film.
Filmik jest w pierwszym poście, od 2:12 pokazuję działanie tablicy
Dołączył(a): 19 cze 2014 Posty: 820 Lokalizacja: Tam gdzie PYRY są
Pomógł: 64
anonimowy napisał(a):
Filmik jest w pierwszym poście
A widzisz, nie dojrzałem go. Pewnie dlatego, że na pięciocalowym ekraniku nie wszystko widać od razu ;] Jestem pod wrażeniem, może jak dojdę do VIOLETBOOKa też będę w stanie coś podobnego wyskrobać... Na razie moje osiągi przy tym to jak miganie LEDem. Lubię jak takie smaczki tu wpadają do tego działu. Pozdrawiam.
Gratuluję super udanego projektu pomysłu jak i wykonania płytek PCB gdy tylko zobaczyłem ilość tych diod to aż mnie ciarki przeszły nie wiem ile godzin to lutowałeś, ale jestem pełen szacunku dla Twojej pracy
P.S. Mam pytanie odnośnie laminatora, dzięki któremu wykonałeś te płytki ... jestem zainteresowany kupnem takiego urządzenia. Czy podczas dokonywania zakupu, kierowałeś się czymś szczególnym? Czy porostu kupiłeś pierwszy lepszy laminator? Jeśli nie jest to tajemnica chętnie poznam markę i model który wykonał swoją pracę jak należy
Dołączył(a): 16 mar 2014 Posty: 745 Lokalizacja: Warszawa
Pomógł: 32
No cacy matryca, a oprogramowanie to już cud, miód palce lizać Szkoda, że ja takich cudeniek nie potrafię. Jeszcze nie potrafię .... bo mnie kolega zaintrygował i bez walki się nie poddam
Dołączył(a): 17 mar 2014 Posty: 333 Lokalizacja: Rybnik
Pomógł: 55
Tomek86 napisał(a):
Czy podczas dokonywania zakupu, kierowałeś się czymś szczególnym? Czy porostu kupiłeś pierwszy lepszy laminator? Jeśli nie jest to tajemnica chętnie poznam markę i model który wykonał swoją pracę jak należy
Laminator kupiłem nowy, cena była taka, że bez zastanowienia mogłem zaryzykować, a był to jedyny który znalazłem z mojego miasta. Model to ProAction OL286. Dodałem termostat bimetaliczny 180 stopni i dodatkowy włącznik, więc laminatora mogę dalej używać do papieru.
MikieMan napisał(a):
Jeszcze nie potrafię .... bo mnie kolega zaintrygował i bez walki się nie poddam
Dołączył(a): 17 mar 2014 Posty: 333 Lokalizacja: Rybnik
Pomógł: 55
Dziękuję wszystkim za miłe słowa.
To coś znane jako CH.. cośtam trafiło tam głównie z powodu, że był najmniejszym układem konwertera USB-UART jaki miałem w zapasach.
Powoli kończę już obudowę, wstawię niedługo zdjęcie całości. Myślałem nad technologią druku 3D, niestety drukarki do których miałem dostęp mają pole robocze 200x200. Ja potrzebowałbym więcej. Wykonanie tego w zewnętrznych firmach byłoby przy tej ilości dość kosztowne.
Podjechałem do sklepu budowlanego zobaczyć, co mają i znalazłem kątownik aluminiowy 40x20mm 2m. Aż zacytuję Mirka z YB "Zaglądamy do oferty najbliższego marketu budowlanego i ...BINGO![...] Wygląda na to, że wyprodukowano ten ceownik (kątownik) specjalnie dla nas, do naszego zegara!"
Grubość ścianki 2mm, trochę się obawiałem przy gięciu na tak małym łuku, bo aluminium łatwo pęka, robiłem specjalnie nacięcia do połowy grubości i jakoś się udało, więc tylko jeden róg jest łączony. Na zdjęciu same maskownice, bez diod.
Dołączył(a): 27 maja 2013 Posty: 562 Lokalizacja: Bydgoszcz
Pomógł: 23
No powiem Ci jak dla mnie elegancko Ci to wyszło. Gratuluję cierpliwości przede wszystkim do wiercenia no i lutowania. Jak i również całego projektu. Widać że to jest cała Twoja własna inwencja Twórcza, a nie kopiowanie czy powielanie czegoś, a takie doświadczenia procentują na lata w kolejnych projektach. A ilość pracy jaką w to włożyłeś oraz serca musi być niesamowita także naprawdę podziwiam i gratuluję.
P.S. Projekt przykół moje oko ponieważ sam osobiście sobie żyje własnie podobnym tematem bo siedzę nad Mirkowym "Matrixem" z Yellowbokiem ale widzę że patrząc na Twój projekt jest to takie pójście na łatwiznę
Dołączył(a): 17 mar 2014 Posty: 333 Lokalizacja: Rybnik
Pomógł: 55
Intre napisał(a):
Projekt przykół moje oko ponieważ sam osobiście sobie żyje własnie podobnym tematem bo siedzę nad Mirkowym "Matrixem" z Yellowbokiem ale widzę że patrząc na Twój projekt jest to takie pójście na łatwiznę
No przyznam, że myślałem, że zaczną się już pojawiać w DIY jakieś projekty z Mirkowym matrixem, jakieś nowe efekty itp, ale na razie jakoś cisza
Znalazłem chwilę na dalszą prace nad obudową.
Całość prezentuje się tak: Tylna ścianka wykonana została z płyty dibond szczotkowany srebrny. Śruby z łbem stożkowym, żeby się schował, z nierdzewki bo z ocynkiem różnie bywa.
Profil 2mm, więc gwintowanie nie wchodziło za bardzo w grę, zastosowałem nitonakrętki z kołnierzem stożkowym, które tutaj idealnie się sprawdziły
Obudowa prawie ukończona, zostało jeszcze zamontować zasilacz, bo do środka nie wejdzie.
Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość
Nie możesz rozpoczynać nowych wątków Nie możesz odpowiadać w wątkach Nie możesz edytować swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników