Innholdsfortegnelse:

Imponerende magnetisk veggklokke: 24 trinn (med bilder)
Imponerende magnetisk veggklokke: 24 trinn (med bilder)

Video: Imponerende magnetisk veggklokke: 24 trinn (med bilder)

Video: Imponerende magnetisk veggklokke: 24 trinn (med bilder)
Video: Акцентная стена, которая навсегда изменила DIY 2024, Juli
Anonim
Imponerende magnetisk veggklokke
Imponerende magnetisk veggklokke
Imponerende magnetisk veggklokke
Imponerende magnetisk veggklokke

Mekaniske klokker har alltid fascinert meg. Måten alle de interne girene, fjærene og fluktene fungerer sammen for å resultere i en konstant pålitelig klokke har alltid virket utenfor rekkevidde for mitt begrensede ferdighetssett. Heldigvis kan moderne elektronikk og 3D -trykte deler bygge bro over gapet og skape noe enkelt som ikke er avhengig av små presise metaldeler.

Denne minimalistiske veggklokken skjuler et par 3D -trykte ringhjul drevet av rimelige steppermotorer som roterer magneter bak en klassisk valnøttfiner.

Opprinnelig inspirert av STORY Clock, ønsket jeg et tidsstykke som indikerte tidspunktet på dagen bare ved bruk av kulelager vs digital avlesning og sakte bevegelig kulelager som produktet bruker.

Bilde
Bilde

Trinn 1: Verktøy og materialer

Verktøy og materialer
Verktøy og materialer
Verktøy og materialer
Verktøy og materialer
Verktøy og materialer
Verktøy og materialer
Verktøy og materialer
Verktøy og materialer

Materialer:

  • 13 x 13 x 2 in. Kryssfiner/sponplate (jeg limte sammen 3 stykker skrapvirke)
  • 13 x 13 tommer. Hardboard
  • Arduino Nano
  • Sanntidsklokke
  • Steppermotorer og drivere
  • Hall Effect Sensors
  • Magneter
  • Strømkabel
  • Vekselstrømadapter
  • Støpsel
  • Diverse maskinskruer
  • Diverse treskruer
  • 3D -trykte deler (siste trinn)
  • Finér (12 x 12 tommer - ansikt, 40 tommer lang stripe)
  • Spraylakk
  • Svart spraymaling

Verktøy:

  • 3D -skriver
  • Kompass
  • X-acto kniv
  • Lim
  • Klemmer
  • Circle Cutting Jig
  • Hack Saw
  • Skivesliper
  • Skralleklemme
  • Meisel
  • Hersker
  • Sander
  • Øvelser
  • Skrutrekkere
  • Loddejern
  • Varm limpistol

Trinn 2: Lim sammen treramme

Lim sammen treramme
Lim sammen treramme
Lim sammen treramme
Lim sammen treramme
Lim sammen treramme
Lim sammen treramme
Lim sammen treramme
Lim sammen treramme

Lim sammen trebiter som skal danne rammen på klokken. Jeg brukte gjenvunnet sponplater fra en gammel sengeramme.

Trinn 3: Klipp rammen ved hjelp av sirkelskjær

Klipp rammen ved hjelp av sirkelskjæremaskin
Klipp rammen ved hjelp av sirkelskjæremaskin
Klipp rammen ved hjelp av sirkelskjær
Klipp rammen ved hjelp av sirkelskjær
Klipp rammen ved hjelp av sirkelskjær
Klipp rammen ved hjelp av sirkelskjær
Klipp rammen ved hjelp av sirkelskjæremaskin
Klipp rammen ved hjelp av sirkelskjæremaskin

Merk midten av brettet og fest det til en sirkelskjær. Klipp fem sirkler med følgende diametre:

  • 12 tommer
  • 11 1/4 tommer
  • 9 1/4 tommer
  • 7 1/4 tommer.
  • 5 3/8 tommer

Trinn 4: Skriv ut og sett sammen gir

Skriv ut og sett sammen gir
Skriv ut og sett sammen gir
Skriv ut og sett sammen gir
Skriv ut og sett sammen gir

Ringhjulene er delt inn i segmenter, slik at de kan skrives ut på en liten skriver og festes sammen. Alle delene ble trykt i ABS for å hjelpe til med sammensmeltingsprosessen som ble vist i neste trinn. Slip alle kanter og overflater på delene.

Skriv ut følgende mengder deler som ble funnet i trinn 22:

  • 1 - Time Ring Gear Segment Magnet
  • 6 - timers ringutstyrssegment Basic
  • 1 - timers låseringssegment Stepper Mount
  • 6 - timers beholderingssegment Basic
  • 1 - Holder for timesaleffektsensor
  • 1 - Minutt ringutstyrssegmentmagnet
  • 7 - Minutters ringutstyrssegment Basic
  • 1 - Minutt tilbakeholdingsring segmentstegmontering
  • 6 - Minutt beholderingssegment Basic
  • 1 - Minute Hall Effect Sensor Holder
  • 2 - Spur Gear
  • 1 - Elektronikkfeste

Trinn 5: "Lim" seksjoner sammen

Bilde
Bilde
Bilde
Bilde
Bilde
Bilde

I en glassflaske med litt aceton, løses mislykkede utskrifter gamle støttematerialer osv. Mal acetonblandingen på hver søm for å smelte bitene sammen. Etter herding, sand hver søm flatt.

Trinn 6: Skjær avlastninger i ramme

Klipp avlastninger i ramme
Klipp avlastninger i ramme
Klipp avlastninger i ramme
Klipp avlastninger i ramme
Klipp avlastninger i ramme
Klipp avlastninger i ramme

Plasser ringhjulene og låseringene i rammen og kutt ut relieffer for trinnmotorene. Jeg målte og kuttet den indre ringen for stor, så jeg shimmed den til størrelsen ved hjelp av noen lønnkantbanding jeg hadde rundt i butikken.

Trinn 7: Klipp klaring for hall -effekt sensorer

Kutt klaring for hall -effekt sensorer
Kutt klaring for hall -effekt sensorer
Kutt klaring for hall -effekt sensorer
Kutt klaring for hall -effekt sensorer
Kutt klaring for hall -effekt sensorer
Kutt klaring for hall -effekt sensorer

Skjær et åpningshull gjennom den indre ringen for den lille hall -effektsensoren og sporet for time -hall -effektsensoren. Jeg brukte en meisel, fil og liten håndsag for å kutte disse klaringene.

Trinn 8: Lim ytre ring

Lim ytre ring
Lim ytre ring

Lim og teip den ytre ringen på størrelse med minuttringen.

Trinn 9: Justeringsskruer for kutte hall -effektføler

Justeringsskruer for Cut Hall -effektføler
Justeringsskruer for Cut Hall -effektføler

Kutt maskinskruene med en hacksag, slik at de bare er lengre enn tykkelsen på låseringen og hall -effektføleren. Klipp et spor i trådene slik at det kan justeres fra gjenget med en flat skrutrekker.

Trinn 10: Lim ringer til hardboard

Lim ringer til hardboard
Lim ringer til hardboard
Lim ringer til hardboard
Lim ringer til hardboard
Lim ringer til hardboard
Lim ringer til hardboard

Skjær en sirkel av hardboard som er bare større enn den ytre ringen. Lim ytre og indre ring på hardboardplaten. Bruk den lille låseringen og ringutstyret for å plassere den indre ringen. Vær mer oppmerksom enn jeg gjorde for ikke å lime den indre ringen bakover. Bilde to viser et nytt spor for en liten hall -effektsensor.

Bruk en skivesliper til å trimme hardboardet til størrelsen på den ytre ringen.

Trinn 11: Lim innvendig plate

Lim innvendig plate
Lim innvendig plate
Lim innvendig plate
Lim innvendig plate

Lim den indre platen på plass ved å bruke timebeskyttelsesringen og ringgiret for å plassere den indre platen.

Trinn 12: Fest finer

Fest finér
Fest finér
Fest finér
Fest finér
Fest finér
Fest finér
Fest finér
Fest finér

Klipp en stripe med finer bredere enn at klokken er dyp og lang nok til å vikle rundt døgnet (3,14 * diameter på klokken, vil returnere den nødvendige lengden. Legg til en tomme for å være sikker på at du har nok.) Tørrmonter fineren til kuttet i lengden. Påfør rikelig med lim på fineren og fest den med en stroppklemme. La det tørke et par timer for å sikre vedheft.

Trinn 13: Trim finér

Trim finér
Trim finér

Bruk en skarp meisel til å klippe overflødig finér foran og bak på klokken.

Trinn 14: Skjær finér

Klipp finér
Klipp finér
Klipp finér
Klipp finér

Fineren min hadde noen sprekker i den. For å gjøre det lettere å jobbe med, brukte jeg malertape for å holde det sammen. Ved å bruke en x-acto-kniv i et kompass, kutter du fineren bare større enn klokkens overflate.

Trinn 15: Lim finér

Lim finér
Lim finér
Lim finér
Lim finér

Bruk de avskårne ringene for å spre trykket utover klokken. Påfør rikelig lim på siden som ikke er teip. Orienter kornet vertikalt på urskiven og påfør mange klemmer som strammer hver og en litt om gangen. Dette vil sikre at fineren ikke forskyves og har jevnt trykk over ansiktet.

Jeg brukte et par flate brett på forsiden av klokken og noen cauls på baksiden.

Trinn 16: Slip og avslutt

Sand og ferdig
Sand og ferdig
Sand og ferdig
Sand og ferdig

Bruk sandpapir, fjern forsiktig overflødig finér fra klokken og sand fra 220 korn opp til 600 korn.

Påfør mellom 10 og 20 strøk lakk. Dette vil bygge opp overflaten som kulelageret skal sykle langs. Uunngåelig på grunn av støv og andre partikler i luften, tror jeg at linjer vil dukke opp langs banen til hvert kulelager. Påføring av flere strøk bør forsinke dette så lenge som mulig. Det vil også gjøre fremtidig lakkering enklere. Jeg vil oppdatere dette trinnet hvis det noen ganger vises linjer på klokken min.

Trinn 17: Installer strøm

Installer strøm
Installer strøm
Installer strøm
Installer strøm

Bor et hull i bunnen av klokken med en 27/64 tommer. Bor og skru på strømpluggen.

Trinn 18: Monter elektronikk

Sett sammen elektronikk
Sett sammen elektronikk
Sett sammen elektronikk
Sett sammen elektronikk
Sett sammen elektronikk
Sett sammen elektronikk
Sett sammen elektronikk
Sett sammen elektronikk

Fest stepperdrivere og sanntidsklokke til det elektroniske kortet. Jeg trengte å finne en måte å sikre Arduino på, slik at hull ble boret og et spor ble kuttet for glidelås. Disse funksjonene er lagt til i filen som ble funnet i trinn 22.

Trinn 19: Lodde og koble til elektronikk

Lodde og koble elektronikk
Lodde og koble elektronikk
Lodde og koble elektronikk
Lodde og koble elektronikk
Lodde og koble elektronikk
Lodde og koble elektronikk

Følg blokkdiagrammet og lodd alle komponentene sammen. Varm lim ringene på plass og fest eventuelle løse ledninger med varmt lim også.

Bilde
Bilde

Trinn 20: Bakplate

Bakplate
Bakplate
Bakplate
Bakplate
Bakplate
Bakplate

Lag bakplaten ved å kutte en annen sirkel 1/2 tommer større enn klokkens overflate og en ring med innvendig diameter som er på baksiden av klokken. Lim ringen og sirkel sammen med noen fjærklemmer.

Når den er tørket, skriver du en linje 1/8 tommer større enn den indre ringen og klipper til i størrelse med båndsagen eller skivesliperen.

Klipp et spor 1 tommer langt 1/4 tommer bredt øverst på baksiden ved hjelp av en ruter eller borekroner. Forsink fire hull for å feste ryggen i rammen på klokken.

Påfør svart spraymaling og fest til klokken når den er tørket.

Trinn 21: Arduino -kode

Arduino -koden kommenteres så godt som mulig. Husk at jeg ikke er en programmerer, jeg har minimal arduino -opplevelse (vær snill). Koden kjører kontinuerlig for å se om gjeldende tid samsvarer med "Tilbakestill tid". Fordi jeg ikke kunne tenke på en måte å oversette den nåværende tiden til trinn, korrigerer den seg bare en gang daglig (midnatt som standard). Ved midnatt roterer tannhjulene til midnattposisjon, deretter venter du til 00:01 til den tiden og fortsetter derfra. Som den sitter nå, mister klokken bare omtrent 5 sekunder over en 24 -timers periode.

Du trenger Stepper- og RTClib -bibliotekene installert.

Jeg vet at koden kan optimaliseres av noen med mer erfaring enn meg selv. Hvis du klarer utfordringen, kan du gjenskape dette prosjektet for deg selv og dele din kunnskap.

#inkludere

#include "RTClib.h" RTC_DS1307 rtc; #define oneRotation 2038 // antall trinn i en omdreining av 28BYJ-48 stepper motor Stepper hourHand (oneRotation, 3, 5, 4, 6); Stepper minuteHand (oneRotation, 7, 9, 8, 10); #define hourStopSensor 12 #define minuteStopSensor 11 int endStep = 0; // Tid dødelig for hastigheten på klokken. int setDelay1 = 168; int setDelay2 = 166; int setDelay3 = 5; // Nåværende tid å gjøre matte med. flyte hr = 0; float mn = 0; flyte sc = 0; // Still klokkeslettet for å tilbakestille klokken (24 -timers format). int resetHour = 0; int resetMinute = 0; // Variabler for å stille riktig tidspunkt ved oppstart og tilbakestilling. float setTimeStepHour = 0; float setTimeStepMinute = 0; float handDelay = 0; float hourTest = 0; float minuteTest = 0; ugyldig oppsett () {Serial.begin (115200); // Sett opp sanntidsklokke og tilbakestill hall effekt sensorer. pinMode (hourStopSensor, INPUT_PULLUP); pinMode (minuteStopSensor, INPUT_PULLUP); rtc.begin (); // Ukommenter linjen nedenfor for å angi tid. // rtc.adjust (DateTime (2020, 2, 19, 23, 40, 30)); // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Still inn topphastigheten til trinnmotorer. hourHand.setSpeed (15); minuteHand.setSpeed (15); // Sløyfe til minutt- og timeviseren er ved middagstid mens (digitalRead (hourStopSensor) == LOW || digitalRead (minuteStopSensor) == LOW) {if (digitalRead (hourStopSensor) == LOW) {hourHand.step (2); } annet {forsinkelse (3); } if (digitalRead (minuteStopSensor) == LOW) {minuteHand.step (3); } annet {forsinkelse (4); }} while (digitalRead (hourStopSensor)! = LOW || digitalRead (minuteStopSensor)! = LOW) {if (digitalRead (hourStopSensor)! = LOW) {hourHand.step (2); } annet {forsinkelse (3); } if (digitalRead (minuteStopSensor)! = LOW) {minuteHand.step (3); } annet {forsinkelse (4); }}} // Få nåværende dato DateTime nå = rtc.now (); time = nå. time (); mn = nå. minutt (); sc = nå. sekund (); // Bytt til 12 -timers format hvis (hr> = 12) {hr = hr - 12; } // Se hvilken hånd som må reise over ansiktet ytterligere, og bruk avstanden // for å justere innstilt tid deretter. hourTest = time / 12; minuteTest = mn / 60; if (hourTest> minuteTest) {handDelay = hourTest; } annet {handDelay = minuteTest; } // Angi gjeldende time setTimeStepHour = (t * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Angi gjeldende minutt setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Test hvilken hånd som trenger flere trinn, og sett det til det lengste trinntallet for for -løkken. if (setTimeStepHour> setTimeStepMinute) {endStep = setTimeStepHour; } annet {endStep = setTimeStepMinute; } for (int i = 0; i <= endStep; i ++) {if (i <setTimeStepHour) {hourHand.step (2); } annet {forsinkelse (3); } if (i <setTimeStepMinute) {minuteHand.step (3); } annet {forsinkelse (4); }}} // Still klokken til å kjøre RPM hourHand.setSpeed (1); minuteHand.setSpeed (1); } void loop () {// Start loop loop loop. for (int i = 0; i <22; i ++) {minuttHånd.steg (1); forsinkelse (setDelay1); // Test for tilbakestillingstid, hvis den er klar til å tilbakestilles, går den i stykker. hvis (rtc.now (). time () == resetHour && rtc.now (). minutt () == resetMinute) {pause; }} forsinkelse (setDelay3); for (int i = 0; i <38; i ++) {timeHand.step (1); forsinkelse (setDelay1); // Test for tilbakestillingstid, hvis den er klar til å tilbakestilles, går den i stykker. hvis (rtc.now (). time () == resetHour && rtc.now (). minutt () == resetMinute) {pause; } for (int i = 0; i <20; i ++) {minuteHand.step (1); forsinkelse (setDelay2); // Test for tilbakestillingstid, hvis den er klar til å tilbakestilles, går den i stykker. hvis (rtc.now (). time () == resetHour && rtc.now (). minutt () == resetMinute) {pause; }}}} // Tilbakestill klokken på tilbakestillingstidspunktet hvis (rtc.now (). Time () == resetHour && rtc.now (). Minutt () == resetMinute) {// Endre hastigheten på klokken hourHand.setSpeed (10); minuteHand.setSpeed (10); // Sløyfe til minutt og time hånd når middag. while (digitalRead (hourStopSensor) == LOW || digitalRead (minuteStopSensor) == LOW) {if (digitalRead (hourStopSensor) == LOW) {hourHand.step (2); } annet {forsinkelse (3); } if (digitalRead (minuteStopSensor) == LOW) {minuteHand.step (3); } annet {forsinkelse (4); }} while (digitalRead (hourStopSensor)! = LOW || digitalRead (minuteStopSensor)! = LOW) {if (digitalRead (hourStopSensor)! = LOW) {hourHand.step (2); } annet {forsinkelse (3); } if (digitalRead (minuteStopSensor)! = LOW) {minuteHand.step (3); } annet {forsinkelse (4); }} // Vent her til tilbakestillingstiden har gått. mens (rtc.now (). minutt () == resetMinute) {forsinkelse (1000); } // Få nåværende dato DateTime nå = rtc.now (); time = nå. time (); mn = nå. minutt (); sc = nå. sekund (); // Bytt til 12 -timers format hvis (hr> = 12) {hr = hr - 12; } // Se hvilken hånd som må reise over ansiktet ytterligere, og bruk avstanden // for å justere innstilt tid deretter. hourTest = time / 12; minuteTest = mn / 60; if (hourTest> minuteTest) {handDelay = hourTest; } annet {handDelay = minuteTest; } // Angi gjeldende time setTimeStepHour = (t * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Angi gjeldende minutt setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Test hvilken hånd som trenger flere trinn, og sett det til det lengste trinnet for for -løkken. if (setTimeStepHour> setTimeStepMinute) {endStep = setTimeStepHour; } annet {endStep = setTimeStepMinute; } for (int i = 0; i <= endStep; i ++) {if (i <setTimeStepHour) {hourHand.step (2); } annet {forsinkelse (3); } if (i <setTimeStepMinute) {minuteHand.step (3); } annet {forsinkelse (4); }} hourHand.setSpeed (1); minuteHand.setSpeed (1); }}

Trinn 22: STL -filer

Du må skrive ut følgende mengder av filene:

  • 1 - Time Ring Gear Segment Magnet
  • 6 - timers ringutstyrssegment Basic
  • 1 - timers låseringssegment Stepper Mount
  • 6 - timers beholderingssegment Basic
  • 1 - Holder for timesaleffektsensor
  • 1 - Minutt ringutstyrssegmentmagnet
  • 7 - Minutters ringutstyrssegment Basic
  • 1 - Minutt tilbakeholdingsring segmentstegmontering
  • 6 - Minutt beholderingssegment Basic
  • 1 - Minute Hall Effect Sensor Holder
  • 2 - Spur Gear
  • 1 - Elektronikkfeste

Trinn 23: Solidworks -filer

Dette er de originale Solidworks -filene som ble brukt til å lage STL -er som ble funnet i forrige trinn. Du er velkommen til å redigere og endre filene mine slik du synes.

Trinn 24: Konklusjon

Denne klokken ble bedre enn jeg hadde forventet. Etter å ha minimal Arduino -opplevelse, er jeg glad for hvordan det ble og hvor nøyaktig det er. Det ser bra ut og fungerer akkurat som jeg hadde håpet.

Anbefalt: