Zegar z HDD

Zegar z HDD

Witam wszystkich :) to mój pierwszy post na tej stronie, ale na bank nie ostatni. Do jego napisania i wykonania tego projektu zmobilizował mnie konkurs w którym od teraz często będę brał udział. Z góry przepraszam za trochę chaotyczny opis, lecz jest sporo rzeczy do wyjaśnienia i może nie wszystkie będą po kolei.

Więc do rzeczy – każdy elektronik zapewne wie, że stary komputer to po prostu skarb. Na tej stronie można znaleźć już wiele sposobów na jego wykorzystanie np. szlifierka z dysku czy grająca stacja dyskietek, czy przerobiony zasilacz atx, który też sobie zrobiłem i to z niego zasilam ten projekt. Teraz jednak pora na widmowy zegar z hdd.

Zasada działania

W tarczy dysku wycinamy szczelinę ok 2mm, wystarczy do tego celu dowolna szlifierka z cienką tarczą, pod nią umieszczone są diody rgb. Jeśli w momencie gdy szczelina będzie znajdować się po lewej stronie zapalimy np. zieloną diodę, a po drugiej stronie niebieską z racji obrotów dysku wynoszących ok 90 obrotów na sekundę ujrzymy niebiesko-zielony okrąg. Wystarczy ładnie przeliczyć w jakich pozycjach mają być różne kolory możemy uzyskać 2 wskazówki i tło więc mamy już zegar :)

Elementy użyte w projekcie

  • stary dysk twardy
  • przerobiony zasilacz atx (mam wyprowadzony z niego kabel molex)
  • stara myszka kulkowa
  • taśma led rgb (ja kupiłem pół metra ale zużyłem tu nieco ponad połowę)
  • atmega8 – na nią będzie wgrany cały program
  • płytka stykowa, kabelki itp. – niestety brakło mi czasu na przygotowanie ładnej płytki pcb więc wszystko jest na niej zmontowane
  • układ zegara PCF8583 lub bardziej recyklingowo – niektóre starsze płyty główne zawierają zegar DALLAS DS1287 i można go wykorzystać podmieniając pliki bibliotek i wprowadzając pewne zmiany w kodzie
  • 3 tranzystory BD139 (oraz jeden IRF5930 w przypadku, gdy dysk ma zabezpieczenie i wyłącza się po minucie)
  • kilka rezystorów, przycisków trochę wolnego czasu i chęci

Budowa

Zacznę od dokładnego opisania najpierw części mechanicznej, a potem przejdziemy do kodu.

Najpierw musimy rozebrać dysk i wyjąć wszystko ze środka, w tym projekcie korzystam z oryginalnego sterownika do silnika BLCD z dysku, akurat mój model kręci się cały czas jednak gdy sprawdzałem inne to posiadają one zabezpieczenia. Silnik wyłącza się wtedy co około minutę, jednak nie jest to wada która nie pozwala na budowę zegara z niego. Wystarczy przerwać kabel z molexa od zasilania sterownika, podłączyć przez tranzystor  i co około 30 sekund go restartować poprzez mikrokontroler.

DSCN2057

Wycinamy w tarczy szczelinę, nie dojeżdżamy do samego końca (u mnie to ok 8mm). Podczas testowania okazało się, że tarcz jest wtedy niewyważona i dysk wibruje i to strasznie, jeździł po całym biurku. Możemy temu zaradzić przyklejając coś do tarczy i wyrównując jej wagę, wystarcza takie 2 paski taśmy jak na zdjęciu.

DSCN2052DSCN2103

Następnie przymierzamy pasek led  do dysku, aby sprawdzić czy zmieści się w obudowie. W moim przypadku niestety tarcz tarła o diody i uszkodził się jeden fragment paska L Musiałem wyciąć większość „obramowania”. Nacinałem je co kawałek ręczną piłką do metalu gdyż już nie miałem szlifierki, a tak powstałe „ząbki” wybijałem młotkiem. Na koniec wyrównałem wszystko pilnikiem. Do złączy taśmy led musimy przylutować kabelki.

DSCN2059

Pod tarczą przyklejamy kawałek białej kartki odpowiednio wyciętej, aby ładniej było widać kolory.

DSCN2104

Zajmijmy się teraz góra naszego dysku – musimy tam zrobić „okienko”, aby widzieć godzinę. Wycinamy więc otwór o średnicy mniejszej niż średnica tarczy (około 8,5 cm), ponieważ byłaby widoczna świecąca obwódka wokół niej. Po wymierzeniu i narysowaniu linii do wycięcia nawiercałem obudowę małym wiertłem wzdłuż linii, a potem wyrównałem wszystko pilnikiem.

DSCN2079

DSCN2080DSCN2097

Teraz kwestia w jaki sposób będziemy wiedzieć gdzie w danej chwili znajduje się szczelina w tarczy i jakie diody zaświecić. Potrzebujemy w jednym miejscu czujnik który będzie informował, że znajduje się ona w ustalonej pozycji. Można kupić gotowe optyczne  czujniki szczelinowe, ale przecież tematem konkursu jest recykling, więc wykorzystajmy coś starego. Potrzebujemy teraz starą myszkę kulkową – w jej wnętrzu do określania w którą stronę poruszamy kursorem wykorzystywany był układ diody i optotranzystora. Znajduje się on w tym miejscu:

DSCN2061

Wystarczy go wyciąć, przylutować kabelki i mamy własny czujnik szczelinowy. Działa on w skrócie tak, że tranzystor przewodzi gdy pada na niego światło diody.

DSCN2098

Przyklejamy czujnik i pasek diod mniej więcej jak na zdjęciu, ja użyłem do tego kleju „kropelka”.

DSCN2109

Zamykamy wszystko przygotowana obudową oraz wyprowadzamy kable na zewnątrz. Następnie składamy wszystko według schematu:

lepsza

Kod

W kodzie starałem się dodawać dużo komentarzy więc tutaj wyjaśnię tylko zasadę jego działania. Chociaż zabawę z mikrokontrolerami zacząłem od Arduino to jednak nie przepadam za tym językiem i całość napisana jest w czystym C. Mikrokontroler jest taktowany 8MHz. Przyjmując obroty dysku na 5400 rpm otrzymujemy 90 obrotów na sekundę. Do mierzenia czasu obrotów używamy Timera1 i opcji Input Capture, pozwala ona na przechwycenie wartości licznika timera w chwili gdy nastąpi zmiana stanu pinu ICP1 w naszym przypadku – gdy szczelina w tarczy przejdzie przez czujnik. Uzyskany czas jest dzielony przez 120 pozycji, które są odmierzane przy pomocy timera0. Możemy więc cały obraz na tarczy podzielić na 120 małych trójkątów i w każdym z nich możemy zapalać taki kolor diody jaki chcemy. W przerwaniu timera0 sprawdzana jest aktualna pozycja i jaka wskazówka powinna w niej świecić. W międzyczasie co sekundę (idealnie co sekundę, ponieważ wykorzystujemy przerwanie generowane za pomocą układu zegara), wczytywana jest aktualna godzina, układy komunikują się przy pomocy i2c.

kod_zrodlowy

Zastosowałem trochę inny tryb wyświetlania godziny niż tradycyjnie – mianowicie np gdy jest godzina 3 to “wskazówką godzinową” jest cały obszar od 3 do 4, ciężko to wytłumaczyć, ale po filmiku na bank każdy to zrozumie. Inne wskazówki działają normalnie.

Projekt nie jest skończony w 100%, będzie dalej rozwijany. Muszę dodać ręczne ustawianie godziny, można dowolnie zmieniać kolory wskazówek i tła, może jakieś sterowanie pilotem lub komputerem no i oczywiście trzeba będzie wytrawić jakąś ładną płytkę pcb.

Mam nadzieję, że nie jest tak źle jak na pierwszy post. Mile widziane wszelkie komentarze, pomysły itp.

No i wreszcie filmik z działania (nagrywane aparatem więc wyłączcie dźwięk). Na filmiku wgrany jest zmodyfikowany kod, gdzie zegar jest znacznie przyspieszony, aby ładnie zobaczyć jego działanie.

Zegar w akcji

Pamiętaj, że talerze dysku twardego obracają się z olbrzymią prędkością i w razie pęknięcia mogą się rozprysnąć lecąc we wszystkie strony.

Pozdrawiam !

Aktualizacja 1

Poprawiłem kod oraz schemat(m.in. jest tam teraz bateryjny układ podtrzymywania zegara), dodałem możliwość sterowania dyskami, które mają blokadę. Można teraz za pomocą przycisków sterować godziną i kolorami podświetlania, a ustawienia zapisują się w pamięci układu zegara :)

kolejny filmik prezentujący dodane opcje:

http://projektydmb.blogspot.com/

Ocena: 4.64/5 (głosów: 89)

Podobne posty

27 komentarzy do “Zegar z HDD

Odpowiedz

anuluj

Masz uwagi?