Elektroda.pl
Elektroda.pl
X
Computer ControlsComputer Controls
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Zegar - wszystko w jednym - program.

06 Gru 2007 10:37 4011 13
  • Poziom 40  
    Witam
    Teraz będzie mowa o programie do tego projektu, więc temat umieszczam w odpowiednim dziale. Schemat i projekt płytki jest tu:
    https://www.elektroda.pl/rtvforum/topic682986-0.html
    Wszystko jest już polutowane, zostało mi uruchomić zasilanie i biorę się za pisanie programu w asemblerze, posiłkując się makrami. Jeśli macie jakieś pytania lub pomysły, to zapraszam do współpracy. Jeśli mam umieścić gotowy program na forum, to musicie trochę mi pomóc, potrzebne jest przede wszystkim Wasze zainteresowanie tym tematem . Zrobiłem zdjęcia gotowej płytki. Wyświetlacze są 1,8'' i 1'', płytka ma 2dm² i mieści się na niej wszystko oprócz zasilacza stabilizowanego 12V. Kiedyś zrobiłem zasilacz na 230V w takim zegarku i był problem z bezpieczeństwem w trakcie programowania, dlatego nie ma zasilacza na płytce.

    Zegar - wszystko w jednym - program.

    Zegar - wszystko w jednym - program.

    Może jednak opiszę co ten zegar ma robić w przyszłości i jak rozwiązałem niektóre sprawy.
    1. Wyświetlanie multipleksowe z możliwością wykorzystania wyświetlaczy ze wspólną anodą lub katodą, wybór jest realizowany w trakcie montażu płytki.
    2. Zabezpieczenie wyświetlaczy przed zatrzymaniem przemiatania, ponieważ zatrzymanie powoduje świecenie jednego wyświetlacza z prądem który go zniszczy.
    3. Jest wejście USB i przez nie można będzie zmieniać wszystkie nastawienia w zegarze i odczyt parametrów. Oczywiście tu sam nie dam rady, nie umiem programować PC.
    4. Jest 7 przycisków do ręcznej zabawy z nastawieniami i przełączaniem rodzaju pracy.
    5. Jest możliwość sterowania z pilota. Tu też potrzebuję pomocy, jeśli ma obsługiwać więcej standardów niż mam dostępnych pilotów w domu.
    6. Czas będzie liczony przez PCF8583 ale w przyszłości będzie podłączony dodatkowo zegar DCF.
    7. Oprócz wyświetlaczy LED 4+2, 7 LED i kropek (których jeszcze nie widać), będzie też alfanumeryczny LCD 2X16. Z Waszą pomocą można rozszerzyć na inne wyświetlacze. Co ma być na nim wyświetlane też jest w fazie początkowej i potrzebuję jakieś sugestie.
    8. Jasność wyświetlaczy LED będzie regulowana wg oświetlenia zewnętrznego, tak aby w nocy nie oświetlały pomieszczenia a w dzień było coś widać.
    9. Jest też biper do obsługi klawiatury i może budzika ale też do innych zadań, na razie nie mam pomysłów.
    10. Oczywiście, pomiar temperatury na DS18B20 i to w kilku punktach. Zastosowałem metodę wykorzystania interfejsu szeregowego przez Atmela, zobaczymy co z tego wyniknie, zależało mi na odciążeniu procesora.
    11. Jest pięć wyjść, które można wykorzystać w różny sposób, np. do termostatu. Mnie potrzebny jest wyłącznik zasilania sprzętu audio-wideo na pilota dla oszczędności prądu, standby jednak trochę pobiera prądu.
    12. Są gniazda do rozszerzeń i mam zamiar na koniec dorzucić barometr, higrometr i wejście z odbiornika DCF.
    13. Wyjście do sterowania diodą LED RGB z możliwością uzyskania 2^48 kolorów.
    14. Przetwornica impulsowa na 5V. Potrzebowałem wydajnego źródła do podłączenia innych urządzeń np. diod LED RGB.

    Jest też wiele innych rzeczy które przeoczyłem w opisie, ale jak by była dyskusja to przypomnę sobie o nich i jednocześnie wykryję inne błędy, dlatego potrzebuję Waszej pomocy, sam nie potrafię z sobą rozmawiać.
    Cena tego zegarka nie będzie taka straszna. Przy zamówieniu 10 płytek, koszt jednej spadnie poniżej 30zł a wyświetlacze (niestety tylko czerwone) kosztują poniżej 3zł za sztukę. Oczywiście z wielu rzeczy można zrezygnować i obniżyć cenę a w przyszłości można resztę dolutować lub podłączyć.
  • Computer ControlsComputer Controls
  • Poziom 42  
    Witam,

    wow, aż mi szczęka opadła jak zobaczyłem tę płytkę... kurka - jak ty to robisz? ;) (to taka uwaga na marginesie)

    projekt z teorii przerodził się już w praktykę i jest naprawdę bardzo rozbudowany oraz ma wiele szczytnych założeń

    ..... szkoda, że ja ostatnio prawie nie mam czasu na zabawę elektronikę :( .. nie mniej jednak będę z uwagą śledził projekt. Oczywiście w miarę potrzeby i swoich skromnych możliwości postaram się go wspomóc - głównie jeśli chodzi o oprogramowanie do PC (tak jak kiedyś obiecałem) .... widzę, że jest wbudowany USB-RS232 na ATmega48 i super.

    .... tak więc jeśli już dojdzie do pisania czegoś gdzie będzie potrzebna w jasny sposób zdeklarowana wymiana danych z PC to jak mówiłem spróbuję coś spłodzić, z tym że ciężko mi będzie ew jakichś sztywnych terminów dotrzymywać

    bardzo interesująca jest ta obsługa DS18B20 przez RS232 - ciekawy jestem jak to wyjdzie praktycznie ale wierzę, że super ;)

    .... rzeczywiście szkoda, że te wyświetlacze są tylko czerwone ale z drugiej strony ich cena powala z nóg

    pozdrawiam i życzę powodzenia
  • Poziom 40  
    Witam
    Dzięki za zainteresowanie, już myślałem że nikt tu się nie odezwie.
    Napisz jak chcesz żeby wyglądała komunikacja z PC, mnie na razie wszystko jedno, bo jeszcze nie napisałem programu.
    Dodatkowe informacje, których nie napisałem w pierwszym poście.
    - Programować ATMega128 można będzie po ISP lub JTAG a być może też przez USB (wymiana firmware :D ). Złącza programujące są zmienione na mniejsze, te oryginalne są stanowczo za duże.
  • Computer ControlsComputer Controls
  • Poziom 28  
    A gdzie kropki odzielające godziny od minut? 8-O
  • Poziom 40  
    Witam
    Brawo za spostrzegawczość. Są, ale jeszcze ich nie zamontowałem. Potrzeba trochę podpiłować wyświetlacze aby się te LEDy zmieściły. W pierwszej wersji musiałem wypiłować na 5mm i przerwałem ścieżkę wewnątrz wyświetlacza, teraz są lekko rozsunięte i nie powinno być kłopotu z głębokością 3mm.
  • Poziom 28  
    Hej.
    Z tego co wyczytałem masz zamiar pisać w assemblerze. Czy środowieskiem będzie AVR Studio? Jeżeli nad projektem ma pracować kilka osób to trzeba określić jasne reguły gry, czyli np:
    1. Każda funkcja która może być wykorzytana w kilku miejscach programu musi być w oddzielnym pliku (module).
    2. Sposób przekazywania parametrów do funkcji i organizacja rejestrów zapożyczona z GCC. (Zwolennicy C też będą mogli łatwo skorzystać z funkcji napisanych w assemblerze)
    Myślałeś może nad postawieniem serwera CVS lub SVN do synchronizacji i wersjonowania projektu. Nawet jeżeli będziesz pisał sam to i tak jest to bardzo użyteczny program. Zwłaszcza jeżeli nad projektem pracuje sie dorywczo.
  • Poziom 40  
    Witam
    :arrow: Samuraj
    Myślałem i o takim rozwiązaniu, ale wizualnie nie jest zbyt ładne a do tego zegar będzie też termometrem, barometrem i wilgotnościomierzem i przecinek w tym miejscu będzie potrzebny. Dodatkowo, obrócenie wyświetlacza w środku płytki skomplikowało by bardziej projektowanie płytki PCB, która i tak jest dość złożona.

    :arrow: Dr_DEAD
    Świetny pomysł ale nie bardzo znam się na takim systemie, zawsze sam wszystko robię. W płytce jest ATMega128 i każdy będzie mógł spróbować swoich sił w języku C lub nawet Bascomie, jest 128kB do dyspozycji. Jeśli tematem będzie zainteresowanie to będę starał się pisać dość przejrzyście, aby każdy mógł wykorzystać procedury oddzielnie do swoich potrzeb.

    Programu nie uda się napisać w miesiąc, ponieważ nie tylko tym się zajmuję, też zależy od Was, potrzebuję jakiś motywacji i pomysłów. Szkielet programu będzie zrobiony na przerwaniu co 2ms, w którym będzie odczyt klawiszy i przemiatanie wyświetlaczy. W tym timerze będzie też włączone przerwanie PWM które będzie służyć do gaszenia wyświetlaczy w zależności od oświetlenia zewnętrznego. Pomiar światła zrealizowany jest na fototranzystorze i przetworniku ADC w ATMedze a zmiany jasności LED każdy będzie mógł zdefiniować wg własnych potrzeb.
    Żeby opisać wszystko co chcę zrealizować potrzebowałbym napisać całą książkę, ale powoli w postach pewnie uda się to zrealizować. Najważniejsze to wiedzieć co chce się zrobić, to już połowa sukcesu.
  • Poziom 33  
    czy podzieliłeś pamiec w ISD na kilka komunikatów głosowych czy tylko jeden ?

    sam projekt robi wielkie wrazenie ,sam z chęcią podejmę sie budowy takiego budzika :)

    Pozdrawiam
  • Poziom 40  
    :arrow: gothye
    Jak byś przeczytał wszystko związane z tym zegarkiem to byś wiedział że zrezygnowałem z tej funkcji. Wszystkie komórki już to robią, więc zrezygnowałem z tej możliwości w celu zaoszczędzenia zasobów do innych celów. Wiem że byłby to niezły bajer, ale naprawdę za dużo zabierał, przykro mi :cry: .
  • Poziom 15  
    W miarę wolnego czasu deklaruję swoją pomoc przy programowaniu megi do komunikacji po USB w oparciu o AVR-USB (C).
    Ewentualnie jeśli by program na PC miał być w LibUSB to też coś mogę pomóc, GTK również (przy okazji będzie przenośny na Windowsy, Linuksy, MacOSy).
  • Poziom 40  
    Witam
    W końcu znalazłem trochę czasu i zacząłem pisać program. Znalazłem pierwszy błąd w schemacie, nie wiem czemu rezystor R106 podłączyłem do nóżki 9 układu 4528?, powinien być podłączony do 10. Wyświetlanie działało mi wspak, zamiast rozjaśniać, ściemniało się i zarazem nie działało zabezpieczenie wyświetlaczy.
    Na timer2 zrobiłem główny zegar systemowy za pomocą którego będzie się dużo dziać. W tej chwili przełącza wyświetlacze i reguluje ich jasność oraz bierze udział w odczycie klawiszy. Zegar ten ustawiony jest na FAST PWM bez wyjścia i mam od niego dwa przerwania: OC2 i OVF2.
    CDN.