X

Zegar widmowy - Propeller Clock

mb1988 17 Feb 2008 16:00
  • Helpful post? (+8)
    Zegar widmowy - Propeller Clock

    Na początku chciałbym się przywitać, ponieważ jak widzicie jest to mój pierwszy post. Po elektrodzie buszuję już od dawna, ale nigdy się nie udzielałem na forum. Dzisiaj postanowiłem zrobić krok naprzód, pokazać się z czymś konkretnym.

    Idea projektu stara jak świat, wielokrotnie wałkowana na forum. Mimo to chciałbym pokazać swoją realizację tego pomysłu.

    Układ składa się z dwóch głównych części: programowanego śmigła i z części napędowej.

    = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

    :arrow: Śmigło:

    Zegar widmowy - Propeller Clock Zegar widmowy - Propeller Clock

    Sercem układu jest mikrokontroler ATMEGA32 zarządzający treścią wyświetlacza. Steruje on 32 niebieskimi diodami smd poprzez 4 szeregowe LED drivery MBI5170. Czas pobierany jest z układu RTC DS1307, z uC łączy go magistrala I2C. Synchronizacja obrazu jest oczywiście realizowana poprzez czujnik optoelektroniczny. 32 KB pamięci flash w atmedze umożliwiają obsługę wielu trybów wyświetlania.


    :arrow: Silnik:
    Zegar widmowy - Propeller Clock Zegar widmowy - Propeller Clock

    Próbowałem wielu rozwiązań i najlepszym okazał się silnik z HDD. Pracuje prawie bezgłośnie, ma duża prędkość obrotową, 6 gwintowanych otworów umożliwiających łatwe przymocowanie śmigła. Użycie takiego silnika wiązało się jednak zastosowaniem specjalnego sterowania. Optymalnym rozwiązanie wydało mi się użycie dedykowanego sterownika PHILIPS TDA5140A pracującego w standardowej konfiguracji (choć nie do końca, ponieważ uzwojenie w silniku połączone jest trójkąt, więc trzeba było stworzyć jeszcze punkt sztucznego środka). Transport energii realizowany jest za pomocą szczotek. Zdaję sobie sprawę w niedoskonałości takiego rozwiązania, jednak nie chciałem dodatkowo komplikować projektu. W tej kwestii zostawiam sobie otwartą furtkę w projektowaniu następnej wersji.


    :arrow: Obudowa:

    Zegar widmowy - Propeller Clock

    Jak widać, obudowa wykonana jest w 15 milimetrowej pleksi. Tak grube ścianki sprawiają, że przy 50 obrotach na sekundę poziom hałasu produkowanego przez zegar utrzymuje się na bardzo przyzwoitym poziomie. Dodatkowo, gdyby przypadkiem coś się w środku urwało nikt w otoczeniu głowy nie straci. Tylna pokrywa mocowana jest na 4 śrubach, reszta konstrukcji klejona klejem ACRIFIX 192.

    Ponieważ nie jestem profesjonalistą dokumentacja stworzona podczas produkcji zegara posiada wiele uchybień, dlatego też nie załączam jej jeszcze. Postaram się ją trochę dopracować i wtedy umieszczę ją na forum.

    Jestem otwarty na wszelkie sugestie dotyczące projektu.

    Poniżej znajduje sie llink do filmiku przedstawiającego pracę zegara:

    http://pl.youtube.com/watch?v=no2_M_b059g

    ========
    Dodałem dokumentację. Z góry przepraszam, za wszelkie niedociągnięcia.

    Pozdrawiam
    mb1988
  • #2 17 Feb 2008 16:30
    lucas_mcs
    Level 22  
    Helpful post? (0)
    Projekt świetny, sam przymierzam się do takiego, czy mógłbyś coś więcej powiedzieć odnośnie sterowania silnikiem z HDD?
  • #3 17 Feb 2008 16:38
    mb1988
    Level 12  
    Topic author Helpful post? (+1)
    lucas_mcs wrote:
    Projekt świetny, sam przymierzam się do takiego, czy mógłbyś coś więcej powiedzieć odnośnie sterowania silnikiem z HDD?

    Na początku myślałem, że sam zbuduję sterownik, który będzie w stanie dobrze wysterować taki silnik. Jednak jak się później okazało, obsługa tej całej elektronicznej komutacji nie jest wcale taka prosta. Wtedy postanowiłem wykorzystać ten układ ( http://www.ortodoxism.ro/datasheets/philips/TDA5140A_2.pdf ) i nie zagłębiać się dalej w samą istotę jego działania. W pokazanym projekcie układ pracuje nawet z elementami o wartościach podanych w przykładowej aplikacji w nocie katalogowej.
  • #4 17 Feb 2008 17:44
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Helpful post? (0)
    w jakim jezyku napisales program do procka?

    0x41 0x56 0x45!!
  • #5 17 Feb 2008 17:50
    mb1988
    Level 12  
    Topic author Helpful post? (0)
    Całość napisana w C.
  • #6 17 Feb 2008 18:40
    gromleon
    Level 31  
    Helpful post? (-1)
    Bardzo ładnie. Sam bym chyba tego nie zrobił. filmik powala. Pewnie program w C jest mocno skomplikowany.
    Czekam z niecierpliowscią na wiecej materiałow na temat tego zegarka.
  • #7 17 Feb 2008 18:43
    Uszol 1990
    Level 29  
    Helpful post? (0)
    :D
    witam
    konstrukcja elegancka :D
    filmik extra :) najbardziej mi sie kwadrat spodobał i YouTube na końcu. :) naprawdę fajne :) pozdrawiam

    ps.
    Na kod i pcb można liczyć ?
  • #8 17 Feb 2008 18:48
    mb1988
    Level 12  
    Topic author Helpful post? (0)
    Uszol 1990 wrote:
    Na kod i pcb można liczyć ?

    Oczywiście, tylko tak jak wspomniałem, muszę doprowadzić go do stanu, w którym można go komuś pokazać :P.
  • #9 17 Feb 2008 19:08
    Uszol 1990
    Level 29  
    Helpful post? (0)
    a jeszcze jedno pytanie
    jak ty to wyważyłeś że to tak idealnie chodzi ? dużo roboty z tym miałeś ?
  • #10 17 Feb 2008 19:24
    lucas_mcs
    Level 22  
    Helpful post? (0)
    Uszol 1990 wrote:
    a jeszcze jedno pytanie
    jak ty to wyważyłeś że to tak idealnie chodzi ? dużo roboty z tym miałeś ?


    To chyba nie kwestia wyważenia, tylko tego, że jest tak solidnie zamocowane, no i w końcu silnik od HDD jest dość mocny.

    Ja mam jeszcze pytanie, jak wygląda synchronizacja wyświetlania z tym układem optoelektronicznym? Wiem, że czujnikiem sie wykrywa że się płytka obróciła (wykonała koło) i chyba potem się wylicza prędkość obrotową? Ale jak się synchronizuje to wszytko żeby te litery i wskazówki się nie rozjeżdżały?? Wiem, że na elce był projekt w którym ktoś miał zrobioną taką synchronizację niezależnie od szybkości obrotów zawsze wyświetlało poprawnie, właśnie dzięki temu czujnikowi. Jeśli miałbym sam coś takiego oprogramować to nawet nie wiedziałbym jak sie za to zabrać :) Mógłbyś bardziej szczegółowo ten proces programowania omówić?
  • #11 17 Feb 2008 19:43
    Twizzter
    Level 12  
    Helpful post? (0)
    Jestem pod wrazeniem, konstrukcja dobrze zaprojektowana i jaka efektowna! ;) Trzeba przyznac, ze masz umiejetnosci, jesli chodzi o programowanie, a w widmowych zegarach kwestia softu - co widac na Twoim przykladzie - potrafi zrobic roznice. Pozdrawiam i zycze dalszych, samych udanych projektow.
  • #12 17 Feb 2008 19:44
    mithcrist
    Level 13  
    Helpful post? (0)
    No niesamowite... szacuneczek:D

    Mam jedno pytanie: czy można by było wykorzystac zamiast silnika z HDD jakiś silnik z większego wentylatora komputerowego np. 12cm?
    Sam bym sobie zrobił taki zegarek ale nie mam takich zdolności manualnych, miałbym problem z mechaniką układu.
  • #13 17 Feb 2008 20:05
    mb1988
    Level 12  
    Topic author Helpful post? (0)
    lucas_mcs wrote:
    To chyba nie kwestia wyważenia, tylko tego, że jest tak solidnie zamocowane, no i w końcu silnik od HDD jest dość mocny.

    Jest w tym sporo prawdy. Śmigło jest przykręcone w kilku miejscach a dodatkowo silnik ten ma tak zwartą konstrukcję, że mam wrażenie, że samochód mógłby po nim przejechać. Mimo to projektując płytkę starałem się rozmieścić elementy w miarę przystępnie, tak aby zminimalizować drgania. Nie korzystałem przy tym jednak z jakiś zaawansowanych narzędzi, raczej robiłem to na oko i chłopski rozum :).

    Przedstawię model oprogramowania. Na wstępie dodam, że atmega pracuje z zewnętrzym 16 MHz kwarcem, a wszystkie liczniki pracują na preskalerze f/8.

    Kluczowym elementem jest czujnik optoelektroniczny (nic innnego jak dioda IR i fototranzystor w jednej zwartej obudowie) który w momencie, gdy śmigło przechodzi przez godzinę 12 ustawia stan wysoki na nodzę INT0 wywołując odpowiednie przerwanie. W przerwaniu tym zerowany jest stan 16-bitowego licznika TIMER1. Następnie nic się nie dzieje aż do kolejnego przerwania pochodzącego z INT0. Wówczas program sprawdza wartość TCNT1. Jeśli jest ona zbyt duża lub też zanotowano przepełnienie tego licznika, oznacza to, że śmigło kręci się zbyt wolno, by cokolwiek na nim wyświetlać, ponieważ uzyskany obraz byłby niskiej jakości z uwagi na mruganie. Jeśli jednak wartość TCNT1 jest poniżej progowej wartości układ działa w następujący sposób:

    1) zapisuje do globalnej zmiennej wartość gClicksPerStep = TCNT1 / 240;
    2) inicjuje tą wartości 8 bitowy licznik TIMER0, TCNT0 = 255 - gClicksPerStep;
    3) uaktywnia przerwanie wynikające z przepełnienia TIMER0
    4) zeruje TCNT1;

    Tym sposobem z każdym obrotem śmigła w zmiennej gClicksPerStep zawsze trzymana jest aktualna ilość cylki zegarowych (z preskalerem) które układ potrzebuje na pokonanie 1,5 stopnia kątowego (wyższe rozdzielczości nie poprawiają już jakości obrazu).

    Pozostaje tylko w przerwaniu TIMER0 obsłużyć diody, sprawdzając najpierw w którym kroczku znajduje się śmigło a następnie przesłać do led driverów korespondujące dane.

    Dodano po 10 [minuty]:

    mithcrist wrote:
    Mam jedno pytanie: czy można by było wykożystac zamiast silnika z HDD jakiś silnik z większego wentylatora komputerowego np. 12cm?

    Pierwszą wersję (PCB było jeszcze wtedy w kształcie koła) napędzałem takim właśnie silnikiem. Jednak nie mogłem przy stosunkowo niskim napięciu uzyskać wysokich prędkości obrotowych przez co widać było, jak obraz mruga. Poza tym montowanie śmigła było kłopotliwe.
  • #14 17 Feb 2008 20:30
    pawelj
    Level 15  
    Helpful post? (0)
    Chylę czoła kolego. Rewelacja. Filmik robi wrażenie powalające.
    Wykonanie też takie że nie ma się do czego czepić.
    Piękna rzecz
  • #15 17 Feb 2008 20:59
    Dariusz Goliński
    Level 22  
    Helpful post? (0)
    Bardzo ładna konstrukcja.
    Napisz czy dużym problemem jest zastosowanie grafiki w projekcie.
    Tą którą przedstawiłeś jest jak dla mnie rewelacją, nie spotkałem się z zegarem wyświetlającym taką grafikę.
    Jak myślisz ? ile ten zegar może wytrzymać przy założeniu że będzie działał 24/24h.
    Czy zmiany pokazane na filmie w wyświetlaniu treści były wpisane do programu czy może przełączałeś je dodatkowym impulsem w zasilaniu ? Odbiornika IR się nie dopatrzyłem.
  • #16 17 Feb 2008 21:15
    mb1988
    Level 12  
    Topic author Helpful post? (0)
    Grafika nie była wielkim problemem. Napisanie prostego konwertera w C++ z monochromatycznej bitmapy na coś, co mogę wgrać do procka było kwestią jednego wieczoru stukania. Obracający się sześcian jest złożony z 15 klatek (wystarczyło tylko tyle, z uwagi na jego symetrię).

    Trwałość, ze wględu na zastosowane szczotki, pewnie nie będzie zachwycająca, ale trzeba się cieszyć póki świeci :P.

    Na filmiku tryby przełączają się same. W ostatecznej wersji przy każdym włączeniu urządzenia program czyta z wewnętrznego eeproma w jakim trybie pracował ostatnio, przechodzi do kolejnego po czym zapisuje go z powrotem do eeproma, i tak w kółko.
  • #17 17 Feb 2008 21:56
    HakuS492
    Level 12  
    Helpful post? (0)
    Nie no cudownie to wygląda :P ale zastanawia mnie jak długo wytrzyma ten pierścień który jest stykiem do szczotek :) może dało by sie go czymś pokryć póki sie nie starł wydaje mi sie że co jakiś czas trzeba będzie odnowić ten styk :( Ale za konstrukcje daje 11 /10 :) normalnie rewelacja i czekam na kosztorys.:) oraz PCB i wsad.
  • #18 17 Feb 2008 22:40
    Twizzter
    Level 12  
    Helpful post? (0)
    Kiedys, bodajze na Youtubie, pokazany byl filmik ukazujacy ciekawe felgi - pimpstar. Pomysl opieral sie na wyswietlaczu widmowym, tyle ze skladal sie ze trzech linijek swietlnych, wyposazonych dodatkowo w diody wielokolorowe. Wygladalo to niezle, mozna bylo importowac bitmapy. Tak sobie pomyslalem, ze moze bedzie to dla Ciebie inspiracja, jesli tego nie widziales ;)
  • #19 17 Feb 2008 22:53
    marcindc
    Level 2  
    Helpful post? (0)
    Musze pogratulować bo cała konstrukcja na bardzo wysokim poziomie !! Sam chciałem zrobić coś podobnego ale to jak na razie ponad moje siły. Interesował by mnie jeszcze koszt budowy tego cudeńka :D
  • #20 17 Feb 2008 22:55
    lisek1988
    Level 14  
    Helpful post? (0)
    Naprawde jestem pod wielkim wrazeniem...pomyslec ze jestes w moim wieku:) SZOK...

    Zastanawia mnie tylko ile ta miedz ktora styka sie z okregiem wytrzyma bo widac ze juz jest troche przetarta...
  • #21 17 Feb 2008 23:20
    mb1988
    Level 12  
    Topic author Helpful post? (0)
    Miedź jest stosunkowo miękka, jednak szczotki działają na komutator ze znikomą siłą dlatego myśle, że przez dłuższą chwilę będę mógł się cieszyć działającym jeszcze zegarem. Ale tak czy siak, szczotki to szczotki, kiedyś na pewno się zużyją.

    Określienie ceny budowy jest nieco kłopotliwe. O ile koszt śmigła i sterownika silnika mogę ocenić na podstawie ceny części (50-60 zł) o tyle reszta pochodzi z domowego złomu. Silnik został wymontowany ze zesputego dysku Seagate 120 GB (4 lata temu kosztował ponad 400 zł :P) a obudowa została wykonana z kawałka plexi, które leżał tak długo, że nawet folia ochronna się na nim zeschła i popękała. Użyty klej został brutalnie wyduszony z pustej już na pozór tubki :P. Czasami dobrze przelecieć się po domu i pozbierać stare graty, nigdy nie wiadomo, co ciekawe można z nich poskładać :).
  • #22 17 Feb 2008 23:48
    mb1988
    Level 12  
    Topic author Helpful post? (0)
    Układ podłączany jest do zasilacza atx i pobiera:

    5V / 250mA (silnik)
    12V / ~80mA (w zależności, od ilosci używanych diód)
  • #23 18 Feb 2008 01:32
    symndz
    Level 16  
    Helpful post? (0)
    haaaaaa .. 11/10!

    a moze by tak dolozyc zewnetrzne czujniki przyspieszenia G na x-y? (by uniezaleznic wyswietlanie od polozenia)

    Marcin
  • #24 18 Feb 2008 02:30
    mirekk36
    Level 42  
    Helpful post? (0)
    Witam, oczywiście świetna robota! gratulacje, ale dopytam jeszcze jednak o sterowanie tego silnika z HDD.... podałeś PDFka i fajnie tylko, której aplikacji użyłeś tej ze strony nr.9 czy tej ze strony nr.11

    różnią się strochę - mógłbyś to dokładniej naświetlić? czy też powiedzieć na co zwrócić uwagę - bo mam jakieś stare HDD i też bym z chęcią to wykorzystał do takich "niecnych" celów ;)

    pozdrawiam
  • #25 18 Feb 2008 06:45
    teorom
    Level 13  
    Helpful post? (0)
    Witam
    Bardzo fajny projekt, swego czasu tez wykonalem podobna zabawke tyle ze wyswietlajaca obraz 3D - uzylem kilku lini diod zamontowanych na roznych wysokosc.
    Teodor
  • #26 18 Feb 2008 08:19
    traax
    Level 20  
    Helpful post? (0)
    ja się już nie moge doczekać kiedy autor udostępni pelne schematy, pcb i kod, jestem początkującym elektronikiem i chcialbym sobie takie coś zbudować. Coś wspaniałego.
  • #27 18 Feb 2008 09:07
    netMaster
    Level 12  
    Helpful post? (0)
    Jak wygląda ustawianie i zapmiętanie godziny??
  • #28 18 Feb 2008 10:11
    Dariusz Goliński
    Level 22  
    Helpful post? (0)
    Można by do tego dorobić albo trafko takie jak w głowicach video tylko zrobione odpowiednio lub magnesiki neodymowe na podstawie i cewki na śmigle.
  • #29 18 Feb 2008 10:56
    mb1988
    Level 12  
    Topic author Helpful post? (0)
    Quote:
    podałeś PDFka i fajnie tylko, której aplikacji użyłeś tej ze strony nr.9 czy tej ze strony nr.11
    Faktycznie, zapomniałem, że są dwie. Ja użyłem tej najprostszej, ze strony 9. Nie za bardzo jest co opisywać, obudować układ kilkoma pasywnymi elementami i już można podłączyć do silnika.

    Quote:
    Jak wygląda ustawianie i zapmiętanie godziny??
    Godzina ustawiana jest programowo. Wygląda to tak:
    1) wgrywam program, w którym godzina jest ustawiana np na 12:00
    2) włączam zegarek o 12:00
    3) nie wyłączając wgrywam nowy program, który już nie ustawia godziny.

    Czas przetrzymywany jest w układzie DS1307, a dzięki zastosowaniu baterii podtrzymującej (widocznej na zdjęciu) pozostaje on tam bardzo długo. Dokładność zegarka jest satysfakcjonująca.
  • #30 18 Feb 2008 11:39
    mirekk36
    Level 42  
    Helpful post? (0)
    ok dzięki miałem nadzieję, że to będzie ten prostszy układ ze str nr.9 ;)

    a jeszcze jedno pytanko - dlaczego jako drivery LED użyłeś akurat tych scalaków MBI... a nie np 74595?? czy innych typu 74164 ??? jakaś specyficzna potrzeba czy akurat takie poprostu miałeś pod ręką??

    pozdrawiam
  Search 4 million + Products
Browse Products