Czasoodmierzacz lub zegar z budzikiem jak kto woli ;)


Witam!

Chciałbym dziś pokazać urządzenie, które powoli i z bólami tworzyłem ostatnimi czasy.
Inspiracją do ruszenia z pracami były zbliżające się urodziny narzeczonej, której chciałem podarować coś nietypowego, a jednocześnie praktycznego. A że nie może być chyba nic bardziej praktycznego i przydatnego każdego dnia niż zegarek z budzikiem to wybór padł właśnie na takie urządzenie ;-) Dodatkowo temat wszelakich zegarków jakoś tak ciągle się przewija w życiu elektronika :-D

Stage 1: założenia

Od samego początku miałem w głowie pewną wizję całości i pomimo stopniowego dodawania nowych rzeczy trzymałem się wyraźnego szlaku. Początkowo chciałem zastosować wyświetlacze siedmiosegmentowe, ale znalazłem na pewnym poltaru aukcyjnym wyświetlacze alfanumeryczne 4 x 20 zgodne z HD44780 w atrakcyjnej cenie, więc? nastąpiła pierwsza zmiana założeń. Sterowanie miało odbywać się za pomocą przycisków, ale to też ostatecznie zostało zastąpione pilotem. Oprócz zegara postanowiłem wyświetlać jeszcze pełną datę i temperaturę. Dodałem również budzik na 7 dni tygodnia. Chciałem by podświetlanie ekranu adaptowało się do jasności otoczenia, tak by w nocy nie raziło, a w dzień gwarantowało czytelność. Na podobnej zasadzie miało działać podświetlanie obudowy. Właśnie, obudowa ? koniecznie estetyczna i schludna ? kobiety jakoś niezbyt doceniają wyeksponowanie starannie polutowanej PCB :-P Jedyną funkcją której nie udało mi się zrealizować to (nazwa wymyślona przeze mnie) ?Przypominacz TV? ? coś działające na zasadzie podobnej do budzika, tyle ze nie wzywa do wstawania, a przypomina o zbliżającym się filmie lub programie ? najpierw piknięciem i wyświetleniem stosownego komunikatu, a potem włączeniem telewizora na odpowiedni kanał. Brakło jednak umiejętności programistycznych do implementacji własnej metody nadawania komend IR w standardzie Sony, a nasz odbiornik nie reagował na komendy nadawane za pomocą bascomowego ?sonysend?. Ale może kiedyś?

Stage 2: program

Całość programu powstawała sobie powolutku w chwilach wolnych od innych zajęć i obowiązków. Do tego celu powstawał na bieżąco prototyp na płytce stykowej, wyglądało to mniej więcej tak:

Program pisany był w Bascomie (proszę nie zaczynać dyskusji o tym jak tragiczny jest to język, a inne jakie dobre). Jako że zegarek, a już budzik w szczególności musi być czytelny nawet z daleka i z oczyma zamglonymi z powodu pobudki trzeba było zrobić coś, by główne wskazanie urządzenia, czyli godzina, była odpowiednio widoczna. Podpatrzyłem kilka różnych projektów i opracowałem własny sposób wyświetlania ?dużych znaków? na wyświetlaczu alfanumerycznym. W tym miejscu podziękowania dla kolegi kuniarz za słowo porady ? choć nie wykorzystałem jego pomysłu to zdecydowanie nakierował mnie na właściwe tory. Dzięki! :-) Najpierw powstały czcionki:

A następnie implementacja tego do programu. Do odmierzania czasu wykorzystałem popularny RTC PCF8583 ? układ już dosyć wiekowy, ale mimo to dobry. Myślałem że wiek i popularność tego układu pomogą mi w poszukiwaniu sprawdzonej metody jego programowej obsługi ? niestety zawiodłem się. Również prośby o pomoc trafiły w pustkę. Zmuszony byłem więc sam rozgryźć problem, który okazał się nie taki straszny. Ostatecznie udało mi się stworzyć pełnowartościowy zegar z pełną obsługą daty (dni tygodnia, lata przestępne). Kalendarz może odliczać dowolną ilość lat (no dobrze, jego koniec nastąpi w roku 65535 ? ograniczenie wynikające z ?pojemności? zmiennej typu word :-P). Dalej poszło już z górki: dwa PWM?y na timerze1 sterują buforami na darlingtonach BC516, które z kolei zasilają diody wyświetlacza i obudowy. Sprawdzanie jasności otoczenia zrealizowane jest za pomocą dzielnika z fotorezystora i rezystora i przetwornika A/C mikrokontrolera. Aby uniknąć wahań i nieprzyjemnego migotania odczyt zapisuję bez żadnej konwersji i przeliczania do zmiennej word a następnie dzielę przez 10. Dzięki temu otrzymuję liczby całkowite w zakresie 0-10. To nie woltomierz i taka dokładność w zupełności wystarcza. Odbiór sygnałów RC5 zrealizowany na typowym odbiorniku IR 36kHz ? SFH5110. Jego zasilanie zrealizowane jest zgodnie z notą katalogową, ponieważ miałem problemy z zakłóceniami i przypadkowymi, bezsensownymi przerwaniami.

Stage 3: wykonanie

Tutaj zaczęło się przysłowiowe zoo :-D nie obliczyłem sobie czasu potrzebnego na wykonanie całej mechanicznej i elektronicznej części przez co musiałem bardzo się uwijać :-P Dodatkowo los rzucał mi co chwile kłody pod nogi. Płytkę zaprojektowałem w oparciu o schemat narysowany ?na kolanie? (dlatego taki zagmatwany i mało czytelny):

Zostawiłem płytkę dwustronną, choć pewnie udało by się upchnąć wszystko na jednostronnej z tego powodu, że nie miałem czasu nad tym myśleć, a wykonanie płytki dwu czy jednostronnej zajmuje podobną ilość czasu. I tu pierwszy zonk: drukarka odmówiła posłuszeństwa. Sobota wieczór, nie ma gdzie wydrukować mozaiki ścieżek ? przymusowy przestój do poniedziałku. Po wydrukowaniu ?na mieście? okazało się, że albo jakiś lipny toner mieli, albo włączony tak ekstremalny tryb jego oszczędzania że pomimo stosowania tego samego papieru, laminatu i metody termotransferu po odmoczeniu papieru spora część ścieżek na warstwie dolnej (bottom layer) się odblepiła? Cóż, na poprawki nie było czasu, więc poprawiłem co mogłem na szybko pisakiem. Lutowanie na szczęście przebiegło bez większych problemów ? jedynie nie mogłem nigdzie dostać podstawki precyzyjnej DIP40 i mikrokontroler ostatecznie zamontowany został na kawałkach listwy żeńskiej. Ale to mała wada.



Obudowa to grawerowane i wyginane na gorąco plexi. Grawer robiony ręcznie ? jak wyszło oceńcie sami. Wyginana za pomocą gorącego powietrza, podświetlona dwoma diodami białymi (z rezystorami 180omów) i jedną czerwoną (z rezystorem 100omów) co w efekcie daje ładny różowy kolor ? niestety na zdjęciach kiepsko widać.

Nie mam zbyt wielu zdjęć z budowy ? nie dość zę zarezerwowałem na nią za mało czasu, to jeszcze całość musiałem jakoś konspirować (tyle, na ile to możliwe w kawalerce zajmowanej razem z kobietą ;)). Ostatecznie zdążyłem, prezent się udał.

A co Wy powiecie?



Programu raczej nie zamierzam udostępniać ? kosztował mnie sporo pracy, a szukając u kogokolwiek pomocy otrzymywałem odpowiedzi w stylu ?doucz się?, ?poczytaj datasheeta?, ?to jest tak proste, że nie warte mojej uwagi?. No cóż? Ale jeśli ktoś będzie potrzebował pomocy, to służę radą.




Portret użytkownika White

zegarek

Baaaaardzo ładne. Napiszę jeszcze raz Bardzo ładne.Jestem pod wrażeniem.

Quote:
Obudowa to grawerowane i wyginane na gorąco plexi.

To zrobiło na mnie największe wrażenie.Jak ty to zrobiłeś?Jaką metodą grawerowania?Jakiś szablon cuś jestem zielony w grawerowaniu chociaż sam chciałem zawsze coś takiego zrobić.Moja jedyna grawerka to będzie niedługo do zegara tekstowego Mirka lecz to na cnc.
Pozdrawiam i jeszcze raz gratki.

-

Co cie nie zabije to cie wzmocni.
(Nie dotyczy kondensatora 230V)

Portret użytkownika villen

Metoda bardzo prosta - dremel

Metoda bardzo prosta - dremel i wiertełko 0.6mm. Kiedyś dawno spróbowałem i okazało się że idzie taka praca bardzo sprawnie. Pisakiem do płyt narysowałem sobie delikatnie główne kontury a dalej to już inwencja własna ;)

Portret użytkownika grizz

Wygląda bardzo ciekawie,

Wygląda bardzo ciekawie, tylko zmienić te wkręty...

Portret użytkownika villen

To są śruby jeśli już :P M3,

To są śruby jeśli już :P M3, ze stali nierdzewnej z łbem wpuszczonym w fazkę w plexi. Ładniej się tego nie zrobi - śruby z łbem na klucz ampulowy mają ten łeb większy niż standardowy "krzyżak" i są trudniej dostępne...

Portret użytkownika alex

P M3

ja bym wyszlifował koła z cienkiej pleksi o rozmiarach ciut większych niż łeb sruby zmatowił od spodu i nakleił na te śruby w celu zamaskowania.Bo pozatym zegar wykonany jest świetnie.

Portret użytkownika drowning_man

odp

Gratuluje udanej konstrukcji. Prezentuje się całkiem nieźle, jedyne co mi nie pasuje to rażące podświetlenie pleksi, a raczej sam punkt światła na dole, wg mnie powinna świecić sama grawerka. Robiłem kiedyś "obrazki" wyrzeźbione w pleksi i poświwietlane diodami led, wyglądało to w ten sposób, że pleksi wystawała z małej obudowy w ktorej umieszczona była elektronika i diody RGB, dzieki temu same diody nie były widoczne i świeciła praktycznie sama grawerka i ranty pleksi.
Odnośnie samej elektroniki i jej wykonania to nic dodac nic ując:-).
Pozdrawiam.

Portret użytkownika mirley

Re; Zegar

bardzo fajny zegar, prezentuje się znakomicie.....proszę się zastanowić nad umieszczeniem kodu źródłowego do zegarka, na pewno przyda się innym w budowie swoich podobnych lub stosowania wyświetlania cyfr w taki sposób. Faktu włożenia dużej ilości pracy nie trzeba tutaj podkreślać, bo bardzo dobrze to widać bo po jakości wykonania i złożoności projektu i oprogramowania

Mimo że nikt nie chce pomagać w tym co się robi, to ja i tak zawsze wszystko podaje do ściągniecia, a projektów na stronie trochę mam.

-

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 villen

drowing_man - też tak robiłem

drowing_man - też tak robiłem przy innych projektach, ale przy tej konwenkci obudowy nie wyobrażam sobie jak miałbym to wykonać. Na zdjęciach efekt ten jest sporo wyolbrzymiony przez aparat - zdjęcie przy dosyć długim czasie otwarcia przesłony. Na żywo jest to o wiele mniej widoczne - wnękę w tym górnym kawałeczku plexi, który przykrywa diody zamalowałem grubą warstwą białego markera olejnego i dodatkowo sam brzeg, w którego stronę świecą diody zasłoniłem paseczkiem folii aluminiowej. Dzięki temu diody świecą tak jakby tylko w podstawkę - "obudowę właściwą".
Podstawka drewniana, np z jasnej sosny lakierowanej bezbarwnym lakierem wyglądała by pewnie ładniej i umożliwiała właśnie schowanie diod, ale tu gdzie mieszkam nie mam niestety warunków i możliwości żeby coś takiego ładnie wykonać. Gięta plexi była więc chyba najrozsądniejszym wyjściem :P

Mirley - dzięki. Program może i umieszcze, ale dopiero kiedy go ostatecznie dokończe. Na razie jego końcówka była pisana w zbyt dużym pośpiechu i nie nadaje się raczej do pokazywania innym :P Szczególnie topornie napisane jest menu - na sprytny, szybki i zoptymalizowany pomysł jego pisania wpadłem dopiero przy pisaniu podmenu budzika, a nie miałem czasu przepisywać reszty. Do tego w pamięci zostało mi jeszcze duuużo miejsca i chciałbym dopisać wyświetlanie imienin na cały rok i najważniejszych świąt, typu dni matki, kobiet, dziadka, babci, itd itp. Mam wyprowadzone ISP więc jak narzeczona nie będzie patrzeć to będę po cichu "dłubał" :)

Ale za to może już dziś dokończe mój "artykuł" o obsłudze PCF'a 8583 - zarówno odczycie jak i zapisie danych. Na rozgryzienie czeka jeszcze obsługa alarmu, którą będę wykorzystywał w najbliższym projekcie super-energooszczędnego naręcznego zegarka binarnego. Równiez tak jak mówiłem jeśli ktoś chciałby wykorzystać mój sposób wyswietlania dużych znaków na wyświetlaczu alfanumerycznym to służę pomocą - czcionki udostępniłem, można podejrzeć, mogę podpowiedzieć. Dalej już jest dosyć łatwo ;)