Spisu treści:
- Krok 1: Narzędzia i materiały
- Krok 2: Sklej drewnianą ramę
- Krok 3: Wytnij ramkę za pomocą przyrządu do wycinania okręgów
- Krok 4: Wydrukuj i złóż koła zębate
- Krok 5: „Sklej” sekcje razem
- Krok 6: Wytnij reliefy w ramce
- Krok 7: Wytnij odstęp dla czujników Halla
- Krok 8: Przyklej pierścień zewnętrzny
- Krok 9: Wytnij śruby regulacyjne czujnika Halla
- Krok 10: Przyklej pierścienie do płyty pilśniowej
- Krok 11: Przyklej wewnętrzny dysk
- Krok 12: Dołącz fornir
- Krok 13: Przytnij okleinę
- Krok 14: Wytnij fornir
- Krok 15: Przyklej fornir
- Krok 16: Piasek i wykończenie
- Krok 17: Zainstaluj zasilanie
- Krok 18: Złóż elektronikę
- Krok 19: Przylutuj i połącz elektronikę
- Krok 20: Płyta tylna
- Krok 21: Kod Arduino
- Krok 22: Pliki STL
- Krok 23: Pliki Solidworks
- Krok 24: Wniosek
Wideo: Hipnotyzujący magnetyczny zegar ścienny: 24 kroki (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
Zegary mechaniczne zawsze mnie fascynowały. Sposób, w jaki wszystkie wewnętrzne koła zębate, sprężyny i wychwyty współpracują ze sobą, aby zapewnić stały niezawodny zegarek, zawsze wydawał się poza zasięgiem mojego ograniczonego zestawu umiejętności. Na szczęście nowoczesna elektronika i drukowane części 3D mogą wypełnić tę lukę, aby stworzyć coś prostego, które nie opiera się na małych, precyzyjnych częściach metalowych.
Ten minimalistyczny zegar ścienny skrywa parę wydrukowanych w 3D kół zębatych napędzanych przez niedrogie silniki krokowe, które obracają magnesy za klasyczną okleiną z orzecha włoskiego.
Początkowo zainspirowany zegarem STORY, chciałem zegarka, który wskazywałby porę dnia przy użyciu tylko łożysk kulkowych w porównaniu z cyfrowym odczytem i wolno poruszającymi się łożyskami kulkowymi, których używa ich produkt.
Krok 1: Narzędzia i materiały
Materiały:
- 13 x 13 x 2 cale sklejka/płyta wiórowa (skleiłem ze sobą 3 kawałki drewna)
- 13x13 cali. Płyta pilśniowa
- Arduino Nano
- Zegar czasu rzeczywistego
- Silniki krokowe i sterowniki
- Czujniki Halla
- Magnesy
- Przewód zasilający
- Zasilacz
- Wtyczka
- Różne śruby maszynowe
- Różne wkręty do drewna
- Części drukowane 3D (ostatni krok)
- Fornir (powierzchnia 12 x 12 cali, długi pasek 40 cali)
- Lakier w sprayu
- Czarna farba w sprayu
Narzędzia:
- drukarka 3d
- Kompas
- Nóż X-acto
- Klej
- Zaciski
- Przyrząd do wycinania okręgów
- Brzeszczot
- Szlifierka tarczowa
- Zacisk z grzechotką
- Dłuto
- Linijka
- Sander
- Wiertła
- Wkrętaki
- Lutownica
- Pistolet na gorący klej
Krok 2: Sklej drewnianą ramę
Sklej ze sobą trzy kawałki drewna, które stworzą ramę zegara. Użyłem odzyskanej płyty wiórowej ze starej ramy łóżka.
Krok 3: Wytnij ramkę za pomocą przyrządu do wycinania okręgów
Zaznacz środek deski i przymocuj do przyrządu do wycinania okręgów. Wytnij pięć kółek o następujących średnicach:
- 12 cali
- 11 1/4 cala
- 9 1/4 cala
- 7 1/4 cala
- 5 3/8 cala
Krok 4: Wydrukuj i złóż koła zębate
Koła zębate są podzielone na segmenty, dzięki czemu można je wydrukować na małej drukarce i połączyć. Wszystkie części zostały wydrukowane z ABS, aby wspomóc proces utrwalania pokazany w następnym kroku. Przeszlifuj wszystkie krawędzie i powierzchnie części.
Wydrukuj następujące ilości części znalezionych w kroku 22:
- 1-godzinny magnes segmentu pierścienia zębatego
- 6-godzinny segment pierścienia zębatego Basic
- 1-godzinny montaż krokowy segmentu pierścienia ustalającego
- 6-godzinny segment pierścienia ustalającego Basic
- 1-godzinny uchwyt czujnika Halla
- 1-minutowy magnes segmentu koła zębatego
- 7 - Podstawowy segment pierścienia minutowego
- 1-minutowy montaż krokowy segmentu pierścienia ustalającego
- 6-minutowy segment pierścienia ustalającego Basic
- 1-minutowy uchwyt czujnika Halla
- 2 - Przekładnia czołowa
- 1 - Uchwyt do elektroniki
Krok 5: „Sklej” sekcje razem
W szklanej butelce z odrobiną acetonu rozpuść uszkodzone wydruki, stary materiał podporowy itp. Pomaluj mieszaninę acetonu na każdym szwie, aby połączyć ze sobą kawałki. Po utwardzeniu przeszlifuj każdy szew na płasko.
Krok 6: Wytnij reliefy w ramce
Umieścić koła koronowe i pierścienie ustalające w ramie i wyciąć reliefy dla silników krokowych. Zmierzyłem i wyciąłem wewnętrzny pierścień zbyt duży, więc dodałem go do rozmiaru za pomocą oklejania krawędzi klonu, które miałem w sklepie.
Krok 7: Wytnij odstęp dla czujników Halla
Wytnij otwór przelotowy w pierścieniu wewnętrznym na czujnik minutowy z efektem Halla i szczelinę na czujnik z efektem Halla na godzinę. Do wycięcia tych prześwitów użyłem dłuta, pilnika i małej piły ręcznej.
Krok 8: Przyklej pierścień zewnętrzny
Przyklej i taśmą zewnętrzny pierścień wielkości minutowego pierścienia ustalającego.
Krok 9: Wytnij śruby regulacyjne czujnika Halla
Śruby maszynowe docinaj piłą do metalu, aby były nieco dłuższe niż grubość pierścienia ustalającego i uchwytu czujnika Halla. Wytnij szczelinę w gwincie, aby można było ją wyregulować od gwintowanego końca za pomocą płaskiego śrubokręta.
Krok 10: Przyklej pierścienie do płyty pilśniowej
Wytnij okrąg z płyty pilśniowej nieco większy niż zewnętrzny pierścień. Przyklej zewnętrzny i wewnętrzny pierścień do płyty pilśniowej. Użyj minutowego pierścienia ustalającego i koła koronowego, aby umieścić pierścień wewnętrzny. Zwróć większą uwagę niż ja, aby nie przyklejać wewnętrznego pierścienia do tyłu. Obraz drugi pokazuje nowe wycięcie dla czujnika z efektem Halla.
Użyj szlifierki tarczowej, aby przyciąć płytę pilśniową do rozmiaru pierścienia zewnętrznego.
Krok 11: Przyklej wewnętrzny dysk
Przyklej dysk wewnętrzny na miejscu za pomocą pierścienia ustalającego godziny i koła zębatego, aby umieścić dysk wewnętrzny.
Krok 12: Dołącz fornir
Wytnij pasek forniru szerszy niż zegar jest głęboki i wystarczająco długi, aby owinąć go wokół zegara (3,14 * średnica zegara, zwróci potrzebną długość. Dodaj cal, aby mieć pewność, że masz wystarczająco dużo.) Dopasuj okleinę na sucho do cięte na długość. Nakładanie dużej ilości kleju na fornir i zaciskanie za pomocą zacisku taśmowego. Pozostaw do wyschnięcia na kilka godzin, aby zapewnić przyczepność.
Krok 13: Przytnij okleinę
Za pomocą ostrego dłuta odetnij nadmiar forniru z przodu i z tyłu zegara.
Krok 14: Wytnij fornir
Mój fornir miał kilka pęknięć. Aby ułatwić pracę, przykleiłem taśmę malarską, aby ją skleić. Używając noża x-acto w kompasie, wytnij fornir nieco większy niż tarcza zegara.
Krok 15: Przyklej fornir
Użyj odciętych pierścieni, aby rozłożyć nacisk na tarczę zegara. Nałóż dużą ilość kleju na stronę bez taśmy forniru. Ułóż ziarno pionowo na tarczy zegara i zastosuj wiele zacisków, dokręcając każdy z nich po trochu na raz. Zapewni to, że okleina nie przesuwa się i ma równomierny nacisk na twarz.
Użyłem kilku płaskich tablic na przedniej stronie zegara i kilku przegród z tyłu.
Krok 16: Piasek i wykończenie
Używając papieru ściernego, ostrożnie usuń nadmiar forniru z tarczy zegara i przeszlifuj od ziarnistości 220 do ziarnistości 600.
Nałożyć od 10 do 20 warstw lakieru. To zbuduje powierzchnię, po której będzie się poruszało łożysko kulkowe. Nieuchronnie z powodu kurzu i innych cząstek w powietrzu, myślę, że wzdłuż ścieżki każdego łożyska kulkowego pojawią się linie. Nałożenie większej liczby warstw wykończenia powinno opóźnić to tak długo, jak to możliwe. Ułatwi to również przyszłe renowacje. Zaktualizuję ten krok, jeśli linie pojawią się na moim zegarze.
Krok 17: Zainstaluj zasilanie
Używając wiertła 27/64 cala, wywierć otwór w dolnej części zegara i wkręć wtyczkę na miejsce.
Krok 18: Złóż elektronikę
Dołącz sterowniki krokowe i zegar czasu rzeczywistego do płytki elektronicznej. Musiałem znaleźć sposób na zabezpieczenie Arduino, aby wywiercić otwory i wyciąć szczelinę na opaskę na suwak. Te funkcje zostały dodane do pliku znalezionego w kroku 22.
Krok 19: Przylutuj i połącz elektronikę
Zgodnie ze schematem blokowym, zlutuj wszystkie komponenty razem. Przyklej pierścienie na gorąco i zabezpiecz również zabłąkane druty gorącym klejem.
Krok 20: Płyta tylna
Utwórz tylną płytkę, wycinając kolejny okrąg o 1/2 cala większy niż tarcza zegara i pierścień o wewnętrznej średnicy takiej samej jak tył zegara. Przyklej pierścień i kółko razem z kilkoma zaciskami sprężynowymi.
Po wyschnięciu narysuj linię o 1/8 cala większą niż pierścień wewnętrzny i przytnij na wymiar za pomocą piły taśmowej lub szlifierki tarczowej.
Wytnij szczelinę o długości 1 cala o szerokości 1/4 cala w górnej części tylnej części za pomocą frezarki lub wierteł. Pogłębić cztery otwory, aby przymocować tył do ramy zegara.
Nałóż czarną farbę w sprayu i przymocuj do zegara po wyschnięciu.
Krok 21: Kod Arduino
Kod arduino jest komentowany tak dobrze, jak to możliwe. Pamiętaj, że nie jestem programistą, mam minimalne doświadczenie w arduino (bądź miły). Kod działa w sposób ciągły sprawdzając, czy aktualny czas jest zgodny z „Czasem resetowania”. Ponieważ nie mogłem wymyślić sposobu na przełożenie aktualnego czasu na kroki, poprawia się on tylko raz dziennie (domyślnie o północy). O północy koła zębate obracają się do pozycji północy, a następnie poczekaj, aż 00:01 przeniesie się do tej godziny, a następnie kontynuuje stamtąd. W obecnej formie zegar traci tylko około 5 sekund w ciągu 24 godzin.
Będziesz potrzebował zainstalowanych bibliotek Stepper i RTClib.
Wiem, że kod może zostać zoptymalizowany przez kogoś, kto ma większe doświadczenie niż ja. Jeśli sprostasz wyzwaniu, odtwórz ten projekt dla siebie i podziel się swoją wiedzą.
#włączać
#dołącz "RTClib.h" RTC_DS1307 rtc; #define oneRotation 2038 // ilość kroków w jednym obrocie silnika krokowego 28BYJ-48 Stepper hourHand(oneRotation, 3, 5, 4, 6); Krokowa minutaRęka (jeden obrót, 7, 9, 8, 10); #define hourStopSensor 12 #define minuteStopSensor 11 int endStep = 0; // Opóźnienie czasowe dla szybkości zegara. int setOpóźnienie1 = 168; int setOpóźnienie2 = 166; int setOpóźnienie3 = 5; // Aktualny czas na matematykę. liczba godzin = 0; pływak mn = 0; zmiennoprzecinkowy sc = 0; // Ustaw godzinę, aby zresetować zegar (format 24-godzinny). int godzina resetowania = 0; int minuta resetowania = 0; // Zmienne do ustawiania poprawnego czasu podczas uruchamiania i resetowania. float setTimeStepHour = 0; float setTimeStepMinute = 0; float handDelay = 0; Test godziny pływania = 0; test minut pływających = 0; void setup() { Serial.begin(115200); // Ustaw zegar czasu rzeczywistego i zresetuj czujniki efektu Halla. pinMode(hourStopSensor, INPUT_PULLUP); pinMode(minuteStopSensor, INPUT_PULLUP); rtc.początek(); // Odkomentuj wiersz poniżej, aby ustawić czas. // rtc.adjust(DateTime(2020, 2, 19, 23, 40, 30)); // rtc.adjust(DataCzas(F(_DATA_), F(_CZAS_))); // Ustaw maksymalną prędkość silników krokowych. godzinaHand.setSpeed(15); minut. Prędkość.zestawu minut (15); // Pętla, aż wskazówka minutowa i godzinowa znajdą się w południe while (digitalRead(hourStopSensor) == LOW || digitalRead(minuteStopSensor) == LOW) { if (digitalRead(hourStopSensor) == LOW) { hourHand.step(2); } inny { opóźnienie(3); } if (digitalRead(minuteStopSensor) == LOW) { minuteHand.step(3); } inny { opóźnienie(4); } } while (digitalRead(hourStopSensor) != LOW || digitalRead(minuteStopSensor) != LOW) { if (digitalRead(hourStopSensor) != LOW) { hourHand.step(2); } inny { opóźnienie(3); } if (digitalRead(minuteStopSensor) != LOW) { minuteHand.step(3); } inny { opóźnienie(4); } } // Pobierz aktualny czas DateTime now = rtc.now(); hr = teraz.godzina(); mn = teraz.minuta(); sc = teraz.druga(); // Zmień na 12-godzinny format if (hr >= 12) { hr = hr - 12; } // Zobacz, jaka ręka musi przejść dalej przez twarz i użyj tej odległości //, aby odpowiednio dostosować ustawiony czas. godzinaTest = godz / 12; minutaTest = mn / 60; if (hourTest > minuteTest) { handDelay = hourTest; } else { handDelay = minutaTest; } // Ustaw aktualną godzinę setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Ustaw bieżącą minutę setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Sprawdź, która ręka będzie wymagała większej liczby kroków i ustaw ją na najdłuższą liczbę kroków dla pętli for. if (setTimeStepHour > setTimeStepMinute) { endStep = setTimeStepHour; } else { endStep = setTimeStepMinute; } for (int i = 0; i <= endStep; i++) { if (i < setTimeStepHour) { hourHand.step(2); } inny { opóźnienie(3); } if (i < setTimeStepMinute) { minuteHand.step(3); } inny { opóźnienie(4); } } // Ustaw zegar w trybie RPM hourHand.setSpeed(1); minutaHand.setSpeed(1); } void loop() { // Uruchom pętlę zegara. for (int i = 0; i < 22; i++) { minutaRęka.krok(1); opóźnienie(ustawOpóźnienie1); // Test czasu resetu, jeśli gotowy do resetu, przerwij. if (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { przerwa; } } opóźnienie(setDelay3); for (int i = 0; i < 38; i++) { hourHand.step(1); opóźnienie(ustawOpóźnienie1); // Test czasu resetu, jeśli gotowy do resetu, przerwij. if (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { przerwa; } for (int i = 0; i <20; i++) { minutaRęka.krok(1); opóźnienie(ustawOpóźnienie2); // Test czasu resetu, jeśli jest gotowy do resetu, przerwij. if (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { przerwa; } } } // Resetowanie zegara w czasie resetowania if (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { // Zmiana szybkości zegara hourHand.setSpeed(10); minut. Prędkość.ustaw.ręcznej(10); // Pętla, aż wskazówka minutowa i godzinowa dotrze do południa. while (digitalRead(hourStopSensor) == LOW || digitalRead(minuteStopSensor) == LOW) { if (digitalRead(hourStopSensor) == LOW) { hourHand.step(2); } inny { opóźnienie(3); } if (digitalRead(minuteStopSensor) == LOW) { minuteHand.step(3); } inny { opóźnienie(4); } } while (digitalRead(hourStopSensor) != LOW || digitalRead(minuteStopSensor) != LOW) { if (digitalRead(hourStopSensor) != LOW) { hourHand.step(2); } inny { opóźnienie(3); } if (digitalRead(minuteStopSensor) != LOW) { minuteHand.step(3); } inny { opóźnienie(4); } } // Poczekaj tutaj, aż minie czas resetowania. while (rtc.now().minute() == resetMinute) { delay(1000); } // Pobierz aktualny czas DateTime now = rtc.now(); hr = teraz.godzina(); mn = teraz.minuta(); sc = teraz.druga(); // Zmień na 12-godzinny format if (hr>= 12) { hr = hr - 12; } // Zobacz, jaka ręka musi przejść dalej przez twarz i użyj tej odległości //, aby odpowiednio dostosować ustawiony czas. godzinaTest = godz / 12; minutaTest = mn / 60; if (hourTest > minuteTest) { handDelay = hourTest; } else { handDelay = minutaTest; } // Ustaw aktualną godzinę setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Ustaw bieżącą minutę setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Sprawdź, która ręka będzie wymagała większej liczby kroków i ustaw ją na najdłuższą liczbę kroków dla pętli for. if (setTimeStepHour > setTimeStepMinute) { endStep = setTimeStepHour; } else { endStep = setTimeStepMinute; } for (int i = 0; i <= endStep; i++) { if (i < setTimeStepHour) { hourHand.step(2); } inny { opóźnienie(3); } if (i < setTimeStepMinute) { minuteHand.step(3); } inny { opóźnienie(4); } } godzinaHand.setSpeed(1); minutaHand.setSpeed(1); } }
Krok 22: Pliki STL
Będziesz musiał wydrukować następujące ilości plików:
- 1-godzinny magnes segmentu pierścienia zębatego
- 6-godzinny segment pierścienia zębatego Basic
- 1-godzinny montaż krokowy segmentu pierścienia ustalającego
- 6-godzinny segment pierścienia ustalającego Basic
- 1-godzinny uchwyt czujnika Halla
- 1-minutowy magnes segmentu koła zębatego
- 7 - Podstawowy segment pierścienia zębatego minutowego
- 1-minutowy montaż krokowy segmentu pierścienia ustalającego
- 6-minutowy segment pierścienia ustalającego Basic
- 1-minutowy uchwyt czujnika Halla
- 2 - Przekładnia czołowa
- 1 - Uchwyt do elektroniki
Krok 23: Pliki Solidworks
Są to oryginalne pliki Solidworks używane do tworzenia STL znalezione w poprzednim kroku. Zapraszam do edycji i zmiany moich plików według własnego uznania.
Krok 24: Wniosek
Ten zegar okazał się lepszy, niż się spodziewałem. Mając minimalne doświadczenie z Arduino, jestem zadowolony z tego, jak się okazało i jak dokładne jest. Wygląda świetnie i działa tak, jak się spodziewałem.
Zalecana:
DIY Eksplodujący zegar ścienny z oświetleniem ruchomym: 20 kroków (ze zdjęciami)
DIY Eksplodujący zegar ścienny z oświetleniem ruchomym: W tym instruktażowym / wideo pokażę Ci krok po kroku, jak zrobić kreatywny i niepowtarzalnie wyglądający zegar ścienny ze zintegrowanym systemem oświetlenia ruchu. Ten dość wyjątkowy pomysł na projekt zegara jest zorientowany, aby zegar był bardziej interaktywny . Kiedy chodzę
Ambientowy zegar ścienny LED: 11 kroków (ze zdjęciami)
Zegar ścienny LED Ambient: Ostatnio widziałem wielu ludzi budujących ogromne matryce LED, które wyglądają absolutnie pięknie, ale składają się albo ze skomplikowanego kodu, albo z drogich części, albo z obu tych elementów. Pomyślałem więc o zbudowaniu własnej matrycy LED składającej się z bardzo tanich części i bardzo
ESP8266 Zegar sieciowy bez zegara RTC - Nodemcu NTP Zegar bez RTC - PROJEKT ZEGAR INTERNETOWY: 4 kroki
ESP8266 Zegar sieciowy bez zegara RTC | Nodemcu NTP Zegar bez RTC | PROJEKT ZEGARA INTERNETOWEGO: W projekcie będzie wykonywany projekt zegara bez RTC, będzie pobierał czas z internetu za pomocą wifi i wyświetli go na wyświetlaczu st7735
Analogowy zegar ścienny LED za pomocą Arduino: 4 kroki
Analogowy zegar ścienny LED wykorzystujący Arduino: Jest to analogowy zegar ścienny LED wykorzystujący Arduino
Zegar ścienny z lustrem Infinity w ramce na zdjęcia IKEA: 4 kroki
Zegar ścienny z lustrem Infinity w ramce na zdjęcia IKEA: Witam, zawsze chciałem zbudować zegar ścienny. W sklepach takich jak IKEA jest wiele wspaniałych zegarów ściennych. Miałem pewne problemy z tymi zegarami komercyjnymi. Są dla mnie za głośne (ciągłe tic-tac jest denerwujące), nie widzę wskazówek godzinowych