logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Zegar widmowy - Propeller Clock

mb1988 17 Lut 2008 16:00 390908 239
  • 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
    Załączniki:
    • source.rar (220.61 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • BLCD Driver.rar (49.67 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • PropClock_v2.rar (240.1 KB) Musisz być zalogowany, aby pobrać ten załącznik.

    Fajne? Ranking DIY
    O autorze
    mb1988
    Poziom 12  
    Offline 
    mb1988 napisał 93 postów o ocenie 258. Jest z nami od 2006 roku.
  • #2 4815004
    lucas_mcs
    Poziom 22  
    Posty: 422
    Pomógł: 57
    Ocena: 18
    Projekt świetny, sam przymierzam się do takiego, czy mógłbyś coś więcej powiedzieć odnośnie sterowania silnikiem z HDD?
  • #3 4815034
    mb1988
    Poziom 12  
    Posty: 93
    Ocena: 258
    lucas_mcs napisał:
    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.
  • #5 4815366
    mb1988
    Poziom 12  
    Posty: 93
    Ocena: 258
    Całość napisana w C.
  • #6 4815557
    Konto nie istnieje
    Poziom 1  
  • #7 4815572
    Uszol 1990
    Poziom 29  
    Posty: 1570
    Pomógł: 41
    Ocena: 72
    :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 4815592
    mb1988
    Poziom 12  
    Posty: 93
    Ocena: 258
    Uszol 1990 napisał:
    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 4815675
    Uszol 1990
    Poziom 29  
    Posty: 1570
    Pomógł: 41
    Ocena: 72
    a jeszcze jedno pytanie
    jak ty to wyważyłeś że to tak idealnie chodzi ? dużo roboty z tym miałeś ?
  • #10 4815752
    lucas_mcs
    Poziom 22  
    Posty: 422
    Pomógł: 57
    Ocena: 18
    Uszol 1990 napisał:
    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 4815839
    Twizzter
    Poziom 12  
    Posty: 100
    Ocena: 13
    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 4815845
    mithcrist
    Poziom 13  
    Posty: 107
    Ocena: 3
    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 4815891
    mb1988
    Poziom 12  
    Posty: 93
    Ocena: 258
    lucas_mcs napisał:
    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 napisał:
    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 4816053
    pawelj
    Poziom 15  
    Posty: 228
    Ocena: 34
    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 4816197
    Dariusz Goliński
    Poziom 22  
    Posty: 783
    Pomógł: 27
    Ocena: 149
    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 4816281
    mb1988
    Poziom 12  
    Posty: 93
    Ocena: 258
    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 4816485
    HakuS492
    Poziom 13  
    Posty: 87
    Ocena: 2
    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 4816691
    Twizzter
    Poziom 12  
    Posty: 100
    Ocena: 13
    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 4816747
    marcindc
    Poziom 2  
    Posty: 2
    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 4816754
    lisek1988
    Poziom 14  
    Posty: 161
    Ocena: 1
    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 4816863
    mb1988
    Poziom 12  
    Posty: 93
    Ocena: 258
    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 4816959
    mb1988
    Poziom 12  
    Posty: 93
    Ocena: 258
    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 4817059
    symndz
    Poziom 16  
    Posty: 211
    Pomógł: 1
    Ocena: 2
    haaaaaa .. 11/10!

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

    Marcin
  • #24 4817126
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    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 4817167
    teorom
    Poziom 13  
    Posty: 112
    Pomógł: 2
    Ocena: 5
    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 4817265
    hetm4n
    Poziom 20  
    Posty: 813
    Pomógł: 5
    Ocena: 525
    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 4817347
    netMaster
    Poziom 13  
    Posty: 81
    Jak wygląda ustawianie i zapmiętanie godziny??
  • #28 4817495
    Dariusz Goliński
    Poziom 22  
    Posty: 783
    Pomógł: 27
    Ocena: 149
    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 4817605
    mb1988
    Poziom 12  
    Posty: 93
    Ocena: 258
    Cytat:
    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.

    Cytat:
    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 4817752
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    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

Podsumowanie tematu

✨ Projekt zegara widmowego typu Propeller Clock oparty jest na mikrokontrolerze ATMEGA32, który steruje 32 niebieskimi diodami SMD za pomocą czterech szeregowych driverów LED MBI5170. Czas jest odczytywany z układu RTC DS1307 poprzez magistralę I2C. Synchronizacja obrazu odbywa się dzięki czujnikowi optoelektronicznemu (dioda IR i fototranzystor) wykrywającemu położenie śmigła, co wyzwala przerwania i zeruje licznik TIMER1, umożliwiając precyzyjne sterowanie wyświetlaniem. Napęd stanowi silnik z dysku twardego Seagate Barracuda, sterowany układem TDA5140A, który realizuje elektroniczną komutację silnika bez konieczności budowy własnego sterownika. Płytka PCB została zaprojektowana w programie Protel, a oprogramowanie napisano w języku C z wykorzystaniem pakietu WinAVR. Projekt wykorzystuje 240 kroków na obrót śmigła, co pozwala na wyświetlanie grafiki o rozdzielczości 63x63 piksele (koło wpisane w kwadrat). W dyskusji poruszono kwestie trwałości szczotek i komutatora, możliwości zastosowania zasilania bezstykowego (transformator powietrzny), a także problemów z synchronizacją i sterowaniem jasnością diod. Autor udostępnił schematy i PCB, a także omówił metody montażu i wyważania śmigła. Wskazano alternatywy dla układów MBI5170 oraz RTC DS1307 (np. PCF8583). Projekt jest zaawansowany, wymaga znajomości języka C i lutowania elementów SMD, ale stanowi inspirację dla konstruktorów zegarów widmowych. W dyskusji pojawiły się także pytania o dostępność komponentów i sugestie dotyczące ulepszeń, takich jak dodanie komunikacji IR czy zwiększenie liczby diod LED.
Wygenerowane przez model językowy.
REKLAMA