Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 30 gru 2024, o 17:53


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
 Tytuł: Matrix Clock
PostNapisane: 15 sie 2014, o 01:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 sty 2014
Posty: 178
Pomógł: 24

Witamy

Ucząc się programowania AVR-ów postanowiliśmy, że będziemy brać "na warsztat" różne podzespoły zbierane przez lata, na tak zwane „kiedyś się przyda”. Idea była taka, żeby nauczyć się programowej obsługi danego urządzenia (elementu) i odłożyć go ponownie, ale już w oczekiwaniu na pomysł wykorzystania. Nadszedł w końcu czas na wyświetlacz matrycowy CSM-48161 (zakupiony dawno temu przez Krzycha) leżący bez pomysłu na wykorzystanie. Zaczęło się od próby wyświetlenia na nim jakiegoś znaku, Następnie zmiany koloru znaku, bo ten wyświetlacz jest dwukolorowy, a na koniec stworzenia "płynącego" napisu. Pewnie po tych próbach trafiłby także do szuflady ale pewien zbieg okoliczności zapewnił mu przyszłe wykorzystanie. Ponieważ mieliśmy już za sobą obsługę I2C a także układy RTC Tymek stwierdził, że całkiem ciekawie wyglądałby zegar z "płynącą" godziną na tym wyświetlaczu. Akurat Bartek miał na wierzchu stary polski przekaźnik typu R15 wraz z podstawką. Szybko podchwycił pomysł, wziął do ręki wyświetlacz przymierzył go z grubsza do przezroczystej obudowy przekaźnika i powiedział - Zmieści się ! Tymi słowami, jak sie później okazało, podpisał na siebie "wyrok" stworzenia pająka bo przecież oprócz samego wyświetlacza musiały się tam jeszcze zmieścić: RTC wraz z bateryjką podtrzymującą, buzzerek, 8 tranzystorów katod, przyciski i ATmega8 (dlaczego ATmega8 to za chwilę) wraz z podstawką (bo na złącze ISP już nie było szans).
Analiza ilości potrzebnych pinów mikrokontrolera wykazała, że ATmega8 będzie w sam raz - dokładnie wszystkie piny tego AVR-ka będą wykorzystane. Bartek zawsze lubił optymalizację więc wykorzystana pinowo w 100% ATmega8 bardzo mu się spodobała, jednak biorąc sobie zawsze do serca słowa Mirka z jego książek i poradników, Bartek stwierdził, że ATmega8 jest technologicznie przestarzała więc musimy wziąć ATmegę88. Wtedy Tymek powiedział, że Mirek "zezwala" na użycie ATmegi8 jak już się ją posiada i jest pomysł na jej wykorzystanie, nie wolno jednak kupować :) (ale czy tak było naprawdę w którymś poradniku powiedziane ,czy czegoś nie przekręciliśmy,albo źle zinterpretowaliśmy, to trzeba sprawdzić (obejrzeć jeszcze raz wszystkie poradniki ;). ))
Bartek się zgodził i tym sposobem leżąca w Tymkowych zasobach ATmega8 dostała powołanie do zegarka. Ostatecznie Tymek zaproponował, żeby zegarek ten ukończyć do urodzin Krzycha i dać mu go w prezencie. Cel był szczytny a porzeczka jak się okazało postawiona dość wysoko.
W pierwszej kolejności na kartce papieru zapisane zostały założenia projektu oraz wszystkie niezbędne informacje odnośnie użytych pinów AVR-a i połączeń elektrycznych zastosowanych komponentów.
Później na szybko powstał pająk kabelkowy i rozpoczęło się żmudne tworzenie kodu. Nie sposób teraz opisać wszystkich szczegółów, bo sprecyzowanie samych założeń projektu zajęło nam sporo czasu a i tak jeszcze przez kilka kuźni były delikatnie zmieniane i dopasowywane do ergonomii.
Podobnie było z kodem: prace programistyczne rozpoczęły się w listopadzie 2013 a jeszcze po wizycie Mirka na kuźni wnosiliśmy pewne drobne poprawki do kodu zegarka. Kod rozbudowywany był z kuźni na kuźnię (a także poza kuźnią) głównie przez Tymka. Myślę, że od początku do końca Tymek stworzył kilkanaście (jak nie kilkadziesiąt) wersji kodu ale sprawdzenie ich mogło nastąpić tylko na piątkowych kuźniach (ze względu na to, że zegarkowy pająk tam spoczywał), więc jak tylko nowsza wersja działała poprawnie poprzednia została usuwana, żeby się nie pogubić.
Jak już było widać, że zegarek ma ochotę "żyć" nadszedł czas na Bartka i tworzenie pająka :). Kilka zdjęć pokazuje jak to powstawało. Zdjęcia są nazwane literami od A do J w chronologicznej kolejności. Niestety, zdjęcia nie oddają przestrzennej struktury tego pająka, tak jak wygląda w rzeczywistości.

ObrazekObrazekObrazekObrazekObrazekObrazekObrazekObrazekObrazekObrazek

Każdy drucik w pająku musiał być od początku dobrze przemyślany, żeby później nie zablokował możliwości dalszej rozbudowy. Dziesiątki, setki przymierzań do przyszłej obudowy ale Bartek nie dawał za wygraną i tworzył niczym drukarka 3D skomplikowaną konstrukcję. Doprowadzenie do postaci widocznej na zdjęciach E i F zajęło jedną kuźnię. Na tym etapie RTC było podłączone do ATmegi8 za pomocą goldpinów widocznych na zdjęciu F. Kolejna kuźnia i była juz postać ze zdjęcia G i ta forma trwała najdłużej. To na niej Tymek testował kolejne wersje kodu i wnosił stosowne poprawki. Było to najwygodniejsze rozwiązanie bo dołożenie ostatnich komponentów zmusiło nas do odlutowania przewodów od ISP. Dlatego dopóki się dało zegarek testowany był z „kabelkowym” złączem ISP.
Formę pomiędzy zdjęciami G i H widać na filmie z wizyty Mirka na kuźni, natomiast zdjęcia od H do J pokazują zegarek w finalnej postaci.

Teraz należy wspomnieć o tym, jakie funkcje posiada ten zegarek i jak sie go używa. Tymek stwierdził, że najlepszą instrukcją obsługi jest listing programu ponieważ jest trywialny ;)
Mimo to chociaż krótko opiszemy jak to „cudo” działa.
Liczby godzin i minut wyświetlane są w kodzie BCD (prosto z RTC), dlatego podczas ustawiania osobno nastawia się DZIESIĄTKI godzin, JEDNOŚCI godzin, DZIESIĄTKI minut i JEDNOŚCI minut. Ten sposób nastawiania został wybrany, ponieważ zawsze widoczna może być tylko JEDNA cyfra. Jak się okazało, ułatwiło to nam zapis w odpowiednim miejscu rejestrów RTC, a także korzystanie z tablicy gotowych znaków. Ceną tego ułatwienia, była dość skomplikowana i zagmatwana procedura nastawiania drzemki, ale ostatecznie udało się :) Aby użytkownik wiedział, którą cyfrę w danej chwili nastawia, użyliśmy czterech kropek z dolnego rzędu (nieużywanego do wyświetlania cyfr) w taki sposób, że pierwsza z lewej oznacza DZIESIĄTKI godzin, druga z lewej JEDNOŚCI godzin, trzecia z lewej DZIESIĄTKI minut a czwarta z lewej (pierwsza z prawej) JEDNOŚCI minut. W ten oto pomysłowy sposób uzyskaliśmy bardzo proste GUI :)
Dźwięk alarmu wytwarza buzzer jednak, z racji tego, że wszystkie buzzery jakie posiadaliśmy na kuźni nie posiadały generatora zmuszeni byliśmy wygenerować dźwięk programowo. Jedno z przerwań generuje nam przebieg prostokątny o częstotliwości około 2 kHz i „zmodulowany” drugim przebiegiem prostokątnym o częstotliwości 1Hz podawany jest na buzzer. Dźwięk wyszedł straszny ale za to skutecznie budzi :)
Zegarek posiada 3 tryby pracy, a w każdym z nich przyciski otrzymują inne funkcje. Oto krótki opis trybów pracy zegarka i funkcji przycisków:

Tryb 1: Wyświetlanie Godzin – zielony kolor cyfr i efekt „płynącego” tekstu. Aktywność alarmu oznaczają dwie środkowe czerwone kropki w dolnym rzędzie. Przyciski mają następujące funkcje:
Przycisk 1 – Włączanie / Wyłączanie alarmu (zaświecają się / gasną dwie środkowe czerwone kropki w dolnym rzędzie)
Przycisk 2 – Krótkie naciśnięcie to wejście w tryb ustawiania godziny alarmu a długie naciśnięcie to wejście w tryb ustawiania aktualnego czasu
W momencie zadziałania budzika użytkownik ma dwie opcje: wyłączyć alarm, lub pozwolić sobie na 5 minutową drzemkę. W tym momencie przyciski otrzymują nowe funkcje i tak:
Przycisk 1 – Włączanie / Wyłączanie alarmu (zaświecają się / gasną dwie środkowe czerwone kropki w dolnym rzędzie)
Przycisk 2 – włączenie 5 minutowej drzemki. Po naciśnięciu alarm odezwie się po 5 minutach i ponownie można wybrać jedną z dwóch powyższych opcji (wyłączenie alarmu lub drzemka) i tak aż do skutku.

Tryb 2: Nastawianie Godziny Alarmu – wyświetlana jest tylko jedna cyfra w kolorze czerwonym, zielone kropki w dolnym rzędzie oznaczają nastawianą cyfrę
Tryb 3: Nastawianie Czasu – wyświetlana jest tylko jedna cyfra w kolorze zielonym, czerwone kropki w dolnym rzędzie oznaczają nastawianą cyfrę
W trybach 2 i 3 przyciski mają następujące funkcje:
Przycisk 1 – zmiana wartości cyfry
Przycisk 2 – zatwierdzenie cyfry i przejście na ustawianie kolejnej (zaświecające się odpowiednie kropki w dolnym rzędzie oznaczają którą cyfrę nastawiamy). Po ustawieniu 4 cyfry powrót do trybu wyświetlania godziny (Tryb 1).

Na koniec musimy napisać o jeszcze jednej trudności z jaką borykaliśmy się po około 4 kuźniach od rozpoczęcia projektu zegarka. Ponieważ Krzychu ostatnimi czasy oddawał się swojej drugiej pasji – muzyce, nie bywał z nami na kuźni. Jednak po każdym spotkaniu na kuźni Bartek i Tymek relacjonowali Krzychowi ze szczegółami co było robione, co się udało, a co nie. Jednak po kilku kuźniach musieliśmy Krzycha zacząć bajerować i to tak, żeby się niczego nie domyślił. Im dłużej to trwało tym było trudniej – ale udało się. Co ciekawe Mirek umieścił film ze spotkania na kuźni przed planowanym terminem wręczenia prezentu i wtedy nasze ściemnianie zapewne by się rypło, ale Krzychu nie dał znać po sobie, że się domyślił (po obejrzeniu filmu). Niecały tydzień poźniej prezent został wręczony a wszystkie bajerowania i „ściemniania” wyjaśnione przez obie strony :)

W załączniku znajduje się schemat oraz listing kodu zegarka (oprócz koniecznych bibliotek autorstwa Mirka). Co do kodu, to wstyd się przyznać ale nie odpowiada on nomenklaturze Mirkowej, a w tej chwili nie ma już możliwości wgrywania porządkowanego softu do zegarka. Kod był tworzony pod presją czasu dlatego prosimy o wyrozumiałość.
Zdajemy sobie również sprawę, że pewnie są chętni na skopiowanie tej konstrukcji, niestety użyty wyświetlacz jest już niedostępny. Dziś najczęściej dostępne są wyświetlacze 5x8 punktów i w związku z tym oznajmiamy, że trwają prace nad zegarkiem na ogólnodostępnej jednokolorowej matrycy 5x8. Żeby nie trzeba było robić pająka – w pierwszym etapie będzie zaprojektowane PCB w rozmiarze matrycy, wraz ze złączem do programowania. Jak to będzie gotowe, to chcielibyśmy taką płytkę zamówić w jakiejś sprawdzonej firmie. Niestety nasze doświadczenie w tym temacie jest zerowe i gdyby byli chętni na takie płytki to może wspólnymi siłami zrealizowalibyśmy zamówienie dla większej ilości osób. Na pewno będziemy prosić o pomoc jak projekt PCB będzie gotowy. Mając gotowe PCB przystąpimy do tworzenia kodu, a tak naprawdę do przerobienia obecnego. Po zakończeniu prac programistycznych oczywiście umieścimy wszystko, żeby inni też mogli uruchomić sobie własne zegarki.

To by było na tyle, a w razie pytań postaramy się odpowiedzieć.

Widzę, że zdjęcia dodały sie w przypadkowej kolejności. Oznaczenia są następujące (licząc od lewej strony górnego rzędu):
- B
- A
- C
- F
- E
- D
- G
- I
- H
- J


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 07:21 
Offline
Użytkownik

Dołączył(a): 19 sty 2013
Posty: 322
Pomógł: 22

Witam

Gratuluje pomysłu i wykonania. Możecie podać gdzie można kupić ten wyświetlacz.

Pozdrawiam
Elektronik



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 08:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 gru 2013
Posty: 201
Lokalizacja: Koszalin
Pomógł: 22

Kuźnia napisał(a):
Zdajemy sobie również sprawę, że pewnie są chętni na skopiowanie tej konstrukcji, niestety użyty wyświetlacz jest już niedostępny.

Szkoda,może ktoś jednak natknie się na taki wyświetlacz w internecie to proszę o informację.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 08:40 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27322
Lokalizacja: Szczecin
Pomógł: 1041

A ja tam byłem, miód i mleko piłem :lol: ... aż chciałoby się powiedzieć :lol:

Tzn byłem w KUŹNI NR.1 w Polsce, widziałem to nie tylko z bliska ale nawet miałem w ręku to cudeńko tutaj przedstawiane ... Słowo REWELACJA - słabo oddaje efekt w porównaniu z tym gdy można na własne oczy TO zobaczyć.

Pozdrawiam całą kuźnię ;) ... a tym, którzy chcą zobaczyć mini reportaż z wizyty w kuźni i chociaż virtualnie obejrzeć ze mną także ten wyświetlacz w akcji polecam ten - ala poradnik:



ok sprzęt sprzętem ... to co jednak nie powinno umknąć - to naprawdę niesamowici ludzie tworzący tę kuźnię. Mówię wam - gdybyście raz tam trafili - to też tak jak ja, wciąż myślelibyście jak znowu się tam z nimi spotkać, mieć możliwość tak podziałać ...

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 09:36 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3206
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

Szkoda tylko że ci kowale :lol: tak rzadko bywają na forum.

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 11:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 sty 2014
Posty: 178
Pomógł: 24

"Szkoda tylko że ci kowale :lol: tak rzadko bywają na forum."

Tak to już w życiu jest, rodzina ,praca i hobby. W tej chwili te dwa pierwsze maja najwiekszy priorytet. Jednak na hobby też troszkę torta zostaje :)

A z wizytami na forum to staramy sie jak możemy, żeby bywać tu jak najczęściej.

Pozdrawiamy całe forum ATNEL

PS. dla wszystkich, którzy martwią się niedostępnością tego wyświetlacza - przeczytajcie końcową część tekstu i głowa do gory :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO