Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Chronokomparator - wibroskop do ustawiania chodu zegarków mechanicznych

tsmki 16 Maj 2017 11:16 5886 17
  • Chronokomparator - wibroskop do ustawiania chodu zegarków mechanicznych
    Chronokomparator - wibroskop.
    Jest to urządzenie pomagające ustawić poprawny chód zegarów i zegarków mechanicznych.
    Pozwala sprawdzić, czy zegarek chodzi poprawnie zarówno w położeniu cyferblatem do dołu, do góry czy na boku.
    Czy w dłuższym czasie zachowana jest stabilność chodu, np. po kilku godzinach od nakręcenia.
    W przypadku dużych zegarów analiza wykresu nierównomierności chodu - okresowego przyspieszania i opóźniania, pozwala zlokalizować sprawiające kłopoty zębatki.
    Projekt nie aspiruje do konkurowania z urządzeniami profesjonalnymi (i jednocześnie bardzo drogimi).
    Jest przeznaczony dla hobbystów - kolekcjonerów zegarków. Stanowi kieszonkową, przenośną wersję urządzenia - programu Biburo, który do pracy wymaga użycia komputera.

    Zasadą działania chronokomparatora jest wyczuwanie tykania zegarka (jego mechanicznych drgań) za pomocą piezoelektrycznego przetwornika.
    Impulsy z tego przetwornika, po odpowiednim wzmocnieniu i ukształtowaniu, porównywane są z wzorcowymi impulsami odniesienia.
    Zmiana przesunięcia fazowego między tymi impulsami obrazowana jest w postaci graficznej na wyświetlaczu LCD.
    W projekcie użyty został wyświetlacz monochromatyczny o rozdzielczości 84x48 pikseli od Nokii 5210.
    Chronokomparator dostosowany jest do zegarów o ilości tyknięć na sekundę:
    1 b/s, 1i1/2 b/s, 3i1/3 b/s, 4i1/2 b/s, 5 b/s, 5i1/2 b/s, 6 b/s, 8 b/s, 10 b/s.
    Czas zapełniania ekranu wynosi 10 minut, 60 minut i 360 minut. Jest jeszcze zakres bezpośredni, w którym każde tyknięcie jest bezpośrednio przedstawiane na ekranie.
    Po zapełnieniu ekranu wykres ponownie rysowany jest od lewej strony ekranu.
    Zmiany parametrów wykonywane są za pomocą dwu przycisków.

    "Sercem" urządzenia jest popularny procesor PIC16F84A, pracujący z zewnętrznym rezonatorem kwarcowym 7,3728 MHz.
    Ponieważ stanowi on wzorzec czasu dla badanych zegarków, należy dokładnie ustawić jego częstotliwość, dobierając współpracujące z nim kondensatory o pojemności około 30 pF.
    Procesor został zamontowany bez użycia podstawki, zatem zainstalowane zostało również złącze ICSP do programowania procesora.
    Oprogramowanie zostało napisane w środowisku GCB (Great Cow Basic).
    Szczególny nacisk został położony na właściwą obsługę przerwań od wewnętrznego timera T0, a zwłaszcza na ustalenie właściwego momentu ładowania rejestru T0.
    Okres przerwań wynosi 1/40 okresu tyknięcia zegara dla ustawionego zakresu.
    W tym czasie procesor sprawdza czy nastąpiło tyknięcie i ewentualnie zapala bieżący piksel w bieżącej kolumnie.
    Wykres graficzny zajmuje 80 kolumn, po 40 pikseli w kolumnie.
    Procesor oraz wyświetlacz LCD zasilane są napięciem 3,3V.
    Do wzmocnienia sygnałów z przetwornika piezoelektrycznego użyłem układu LM324 czyli poczwórnego wzmacniacza operacyjnego.
    Trzy z nich stanowią wzmacniacz o dużym wzmocnieniu z kształtowaniem pasma, natomiast czwarty pracuje jako monostabilny generator impulsu.
    Wzmacniacz zasilany jest pojedynczym dodatnim napięciem 5V.
    Jako obudowa chronokomparatora wykorzystany został stary pilot wraz z jego koszykiem na baterie.
    Zasilanie stanowią dwa ogniwa AA lub dwa akumulatorki NiMH, dostarczające napięcie ok. 2,4 V do 3V.
    Napięcie to podnoszone jest do poziomu 5V przy użyciu przetwornicy MAX1674.
    Z kolei napięcie 3,3V dla procesora i wyświetlacza pochodzi ze stabilizatora LM1117.
    Przetwornik piezoelektryczny został umieszczony na wierzchu obudowy chronokomparatora - przyklejony ponad okrągłym otworem.
    Chronokomparator wyposażony został również w gniazdo wejściowe, umożliwiające dołączenie zewnętrznego przetwornika.
    Do gniazda doprowadzone jest też napięcie 5V, umożliwiające zasilenie dodatkowego zewnętrznego wzmacniacza.
    Czujnik zewnętrzny wygodniej stosować przy badaniu dużych zegarów, małe zegarki można kłaść na wierzchu czujnika na obudowie.
    Najlepiej, gdy do czujnika dotyka koronka zegarka.

    Schemat urządzenia powstał jak na razie tylko "w ołówku" na własne potrzeby, porządny schemat wymaga sporo roboty, a nie wiem czy przedstawiony temat wywoła zainteresowanie.
    Chronokomparator - wibroskop do ustawiania chodu zegarków mechanicznych Chronokomparator - wibroskop do ustawiania chodu zegarków mechanicznych Chronokomparator - wibroskop do ustawiania chodu zegarków mechanicznych
    Jak widać na załączonych zdjęciach, urządzenie wykonałem na płytce uniwersalnej, przy użyciu głównie elementów SMD, połączenia z użyciem kynaru.
    Koszt podzespołów szacuję na kilkanaście do kilkudziesięciu złotych, w zależności co wykonawca użyje z własnych zapasów lub odzyska ze starych układów.

    Fajne!
  • #2 16 Maj 2017 14:03
    TechEkspert
    Redaktor

    Dla mnie temat zupełnie nowy, myślę że nawet poglądowy schemat "ołówkowy" się przyda,
    warto umieścić film prezentujący działanie urządzenia a być może timelapse gdyż z tego co widzę pomiary chwilę trwają.

  • #3 16 Maj 2017 15:43
    pawel1029384756
    Poziom 18  

    Projekt ciekawy i do tego praktyczny. Chętnie bym zobaczył schemat układu wzmacniaczy. Przymierzam się do projektu gdzie wykorzystam przetwornik piezoelektryczny, więc ciekawią mnie różne rozwiązania.

  • #4 16 Maj 2017 17:28
    tsmki
    Poziom 9  

    Przepraszam, że dość niechlujne, ale załączam skan z "ołówka".
    Dodatkowo załączam plik hex do procesora - należy zmienić rozszerzenie na hex.
    Uwagi co do wyświetlacza:
    wyświetlacz Nokii5210 jest prawie kompatybilny z bardzo popularnym wyświetlaczem Nokii3310, różni się kierunkiem wyświetlania.
    Wystarczą niewielkie zmiany w kodzie.
    Niestety nie mam wyświetlacza N3310, aby przetestować i poprawić kod.

  • #6 16 Maj 2017 20:52
    Krzysztof Kamienski
    Poziom 41  

    Bardzo fajny przyrząd, ale....Na miejscu Kolegi dodał bym jednak wyjście na komputer (przez USB, albo Audio) do archiwizowania danych. Dodatkowo zrobił bym analizator całego pasma akustycznego generowanego przez mechanizm zegarka. ( krzywa kotwica, wytarte zęby na kole wychwytowym, przycieranie sie osi sekundnika w tulei wskazowki minutowej, etc. )

  • #7 17 Maj 2017 09:03
    tsmki
    Poziom 9  

    Kolego Krzysztofie.
    Z założenia miał to być przyrząd niewielki, kieszonkowy, działający samodzielnie.
    Kolega proponuje wykonanie całego kombajnu, najlepiej połączonego z komputerem do zrzucania danych.
    To już zupełnie inne urządzenie.
    Chyba bardziej odpowiedni do tego byłby, wspomniany przeze mnie, program Biburo z odpowiednią przystawką.

  • #8 17 Maj 2017 10:37
    hobbyelektronik
    Poziom 27  

    Dla przypomnienia: Chronokomparator do sprawdzania chodu zegarków - "Radioelektronik" 3/91.

  • #9 17 Maj 2017 11:48
    tsmki
    Poziom 9  









    załączam filmik przedstawiający pracę chronokomparatora oraz zmianę zakresów pracy.

  • #10 17 Maj 2017 22:01
    lukaszd82
    Poziom 15  

    Fajny projekt. Jakby go dopracować, zamieścić wsad w wersji edytowalnej (z możliwością zmiany na jakąś ATMEGĘ), to na pewno znalazłoby się kilka osób, które by chciały wykonać dla siebie takie urządzenie.
    Sam coraz mocniej choruję na dobry zegarek mechaniczny i jak zobaczyłem ten temat to pomyślałem że warto byłoby coś takiego wykonać.
    Pozdrawiam.

  • #11 18 Maj 2017 15:36
    AC
    Poziom 10  

    Projekt całkiem całkiem, ale mam pytanie czy do taktowania procka nie można by użyć jakiegoś wzorca mam tutaj na myśli układ DS32 kHz, bo chrono na kwarcu wydaje mi się mało dokładne.
    Może czegoś nie wiem, ale ważny jest w tym wypadku wzorzec z kwarcami różnie bywa.

  • #12 18 Maj 2017 16:16
    hobbyelektronik
    Poziom 27  

    W przypadku zegarków z wychwytem mechanicznym jest to całkiem wystarczające,
    nic nie stoi na przeszkodzie żeby użyć wzorzec rubidowy.

  • #13 19 Maj 2017 07:57
    tsmki
    Poziom 9  

    Według mnie w przyrządzie kieszonkowym do sprawdzania chodu zegarków mechanicznych, dla których dokładność dobowa na poziomie +-10 sekund jest osiągnięciem, wzorzec z rezonatorem kwarcowym jest całkowicie wystarczający. Jak opisałem w początkowym poście, należy dobrać pojemności kondensatorów przy rezonatorze. Na wyjściu portu B0 generowany jest sygnał o okresie równym 1/20 ustawionego zakresu pomiarowego. Dla przykładu, na zakresie 1 b/s okres tego sygnału wynosi dokładnie 50 ms. Pozwoli to ustawić dokładnie częstotliwość generatora kwarcowego - na tyle dokładnie, by błąd dobowy ustawianego zegarka wynosił poniżej 0,1 sekundy.
    Wydaje mi się to zupełnie wystarczające dla takiej klasy przyrządu. Oczywiście można przyrząd wyposażać w generatory rubidowe, ze stabilizacją termiczną, lub z użyciem zegara pobieranego z DCF77 lub z GPS, ale po co?
    Układ DS32kHz bardzo fajny, ale on generuje jedynie sygnał o częstotliwości 32,768 kHz, natomiast w moim przypadku częstotliwość rezonatora jest tak dobrana, by zegar procesora w połączeniu z prescalerem timera T0 pozwalał generować przerwania o okresie 1/40 danego zakresu pomiarowego.

  • #14 19 Maj 2017 20:45
    satanistik
    Poziom 27  

    Może "lamerskie" pytanie ale po tytule spodziewałem się jakiegoś częstotliwościomierza a tu jakieś kreski na LCD ;-).
    Może Kolega podpowie jak interpretuje się takie wskazania? Może jakieś przykłady zaobserwowanych anomalii?

  • #15 20 Maj 2017 08:48
    evan venn
    Poziom 2  

    Świetny projekt.

    Jestem jednym z twórców Great Cow BASIC.

    Czy możesz opublikować kod źródłowy dla innych, aby się uczyć?

    I w odniesieniu do pytania dotyczącego przenoszenia do ATMEGA (przypuszczam, że Arduino) jest to stosunkowo proste w przypadku kodu źródłowego - wystarczy zmienić mikrokontroler i dostosować kod źródłowy).

    Anobium.

    To zostało przetłumaczone przy użyciu Google Translate.

  • #16 20 Maj 2017 12:41
    lukaszd82
    Poziom 15  

    Zgadza się, przeniesienie na Atmega jest proste jeśli mamy kod źródłowy. Na razie jednak dostępny jest jedynie kod w postaci skompilowanwej pod konkretny układ.

  • #17 20 Maj 2017 14:27
    evan venn
    Poziom 2  

    Przepraszam. Myślałem, że stworzyłeś program w Great Cow BASIC, dlatego pomyślałem, że masz kod źródłowy.

    Mój błąd. Przepraszam.

    ******************* english
    So, sorry. I thought you created the program in Great Cow BASIC, therefore, I thought you had the source code.

    My error. Sorry.

  • #18 23 Maj 2017 10:01
    tsmki
    Poziom 9  

    Zamieszczam kod źródłowy programu chronokomparatora.
    Jest on napisany w języku GreatCowBasic.
    Chętni do przeniesienia programu z procesora PIC16F84A na inny procesor, np. na Atmegę, oczywiście mogą to zrobić, ale nie tak prosto.
    Nie wystarczy zmienić deklarację procesora. Podczas pisania uwzględnić musiałem specyfikę procesora związaną z zegarem procesora, prescalerem timera T0 oraz momentem ładowania timera T0 po przyjęciu przerwania, co jest związane z zerowaniem prescalera.
    Aby uzyskać precyzyjne okresy przerwań musiałem wprowadzić dwie rzeczy:
    Po pierwsze należy zapewnić sytuację, by w czasie przyjęcia przerwania procesor wykonywał rozkazy jednotaktowe.
    W tym celu w pętli głównej sprawdzam, czy stan licznika T0 doszedł do 255. Wówczas w pętli odczekuję trochę czasu, a następnie wykonuję szereg instrukcji NOP, w trakcie których następuje przerwanie.
    Po drugie załadowanie w przerwaniu licznika T0 winno nastąpić w takim momencie, aby stan prescalera zmieniał się w sposób ciągły.
    W tym celu po przyjęciu przerwania odczekuję 256 taktów zegara, wykonując inne rozkazy. Dopiero po 256 taktach ładuję T0 wartością o 1 mniejszą, w ten sposób uwzględniając jeden pełny cykl prescalera.
    Wykorzystując inny procesor można pominąć opisane powyżej fragmenty programu.

    Ponieważ program po skompilowaniu ledwo się mieścił w pamięci procesora, musiałem wykonać kilka "oszczędnościowych" działań.
    Na przykład procedury wykonywane jednokrotnie włączałem do głównego programu, zamiast je wywoływać.
    Definicję przerwania T0 nie zrobiłem rozkazem "On Interrupt Timer0Overflow Call pixel", ale rozkazem "sub interrupt 'pixel".
    Pozwoliło to zaoszczędzić kilkadziesiąt bajtów.
    Oczywiście w nowszych procesorach z większą pamięcią nie będzie takich problemów.

    Kolego Satanistik - chronokomparator to rodzaj częstościomierza porównawczego. Nie jest mierzona częstotliwość, ale w sposóg graficzny pokazywana różnica częstotliwości, a nawet chwilowa odchyłka fazy każdego tyknięcia zegara. Zapraszam do zapoznania się z 10 i 11 stroną zamieszczonego pliku Training_EN.

Szybka odpowiedź lub zadaj pytanie
Dziękuję Ci. Ta wiadomość oczekuje na moderatora.
 Szukaj w ofercie
Wyszukaj w ofercie 200 tys. produktów TME