Innehållsförteckning:

Förtrollande magnetisk väggklocka: 24 steg (med bilder)
Förtrollande magnetisk väggklocka: 24 steg (med bilder)

Video: Förtrollande magnetisk väggklocka: 24 steg (med bilder)

Video: Förtrollande magnetisk väggklocka: 24 steg (med bilder)
Video: När man låtsades ringa polisen på sitt yngsta syskon 😂 2024, November
Anonim
Förtrollande magnetisk väggklocka
Förtrollande magnetisk väggklocka
Förtrollande magnetisk väggklocka
Förtrollande magnetisk väggklocka

Mekaniska klockor har alltid fascinerat mig. Hur alla interna kugghjul, fjädrar och utrymningar fungerar tillsammans för att resultera i en ständig pålitlig klocka har alltid tyckt vara utom räckhåll för min begränsade färdighetsuppsättning. Tack och lov kan modern elektronik och 3D -tryckta delar överbrygga klyftan för att skapa något enkelt som inte är beroende av små precisa metaldelar.

Denna minimalistiska väggklocka döljer ett par 3D -tryckta ringväxlar som drivs av billiga stegmotorer som roterar magneter bakom en klassisk valnötfaner.

Ursprungligen inspirerad av STORY Clock, jag ville ha ett tidstycke som indikerade tiden på dygnet endast med kullager jämfört med den digitala avläsningen och långsamt rörliga kullager som deras produktanvändning.

Bild
Bild

Steg 1: Verktyg och material

Verktyg och material
Verktyg och material
Verktyg och material
Verktyg och material
Verktyg och material
Verktyg och material
Verktyg och material
Verktyg och material

Material:

  • 13 x 13 x 2 tum. Plywood/spånskiva (jag limmade ihop 3 bitar av träskrot)
  • 13 x 13 tum. Hardboard
  • Arduino Nano
  • Riktig tids klocka
  • Stegmotorer och drivrutiner
  • Hall Effect Sensors
  • Magneter
  • Kraftledning
  • Växelströmsadapter
  • Plugg
  • Diverse maskinskruvar
  • Diverse träskruvar
  • 3D -tryckta delar (sista steget)
  • Faner (12 x 12 tum - ansikte, 40 tum lång remsa)
  • Spraylack
  • Svart sprayfärg

Verktyg:

  • 3d skrivare
  • Kompass
  • X-acto kniv
  • Lim
  • Klämmor
  • Cirkelskärningsjigg
  • Hack Saw
  • Skivslipmaskin
  • Spärrklämma
  • Mejsel
  • Linjal
  • Sander
  • Övningar
  • Skruvmejslar
  • Lödkolv
  • Lim pistol

Steg 2: Limma ihop träram

Limma ihop träram
Limma ihop träram
Limma ihop träram
Limma ihop träram
Limma ihop träram
Limma ihop träram
Limma ihop träram
Limma ihop träram

Limma ihop tre träbitar som kommer att bilda klockans ram. Jag använde återvunnet spånskiva från en gammal sängram.

Steg 3: Klipp ram med cirkelklippjigg

Klipp ram med cirkelskärjigg
Klipp ram med cirkelskärjigg
Klipp ram med cirkelskärjigg
Klipp ram med cirkelskärjigg
Klipp ram med cirkelskärjigg
Klipp ram med cirkelskärjigg
Klipp ram med cirkelskärjigg
Klipp ram med cirkelskärjigg

Markera mitten av brädet och montera på en cirkelskärjigg. Klipp fem cirklar med följande diametrar:

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

Steg 4: Skriv ut och montera växlar

Skriv ut och sätt ihop växlar
Skriv ut och sätt ihop växlar
Skriv ut och sätt ihop växlar
Skriv ut och sätt ihop växlar

Ringhjulen är uppdelade i segment så att de kan skrivas ut på en liten skrivare och knäppas ihop. Alla delar trycktes i ABS för att underlätta smältningsprocessen som visas i nästa steg. Slipa alla kanter och ytor på delarna.

Skriv ut följande mängder delar som hittades i steg 22:

  • 1 - timmars ringväxelsegmentmagnet
  • 6 - timmars ringväxelsegment Basic
  • 1 - timmars hållarringssegment Stepper Mount
  • 6 - timmars kvarhållande ringsegment Basic
  • 1 - Hållare för timmeeffektsensor
  • 1 - Segmentmagnet för minutring
  • 7 - Minutringssegment Basic
  • 1 - Minut hållarringssegment Stepper Mount
  • 6 - Minut kvarhållande ringsegment Basic
  • 1 - Minute Hall Effect Sensor Hållare
  • 2 - Spur Gear
  • 1 - Elektronikfäste

Steg 5: "Limma" sektioner tillsammans

Bild
Bild
Bild
Bild
Bild
Bild

I en glasflaska med lite aceton, lösa misslyckade tryck gamla stödmaterial etc. Måla acetonblandningen på varje söm för att smälta bitarna ihop. Efter härdning, slipa varje söm platt.

Steg 6: Skär avlastningar i ram

Skär avlastningar i ram
Skär avlastningar i ram
Skär avlastningar i ram
Skär avlastningar i ram
Skär avlastningar i ram
Skär avlastningar i ram

Placera ringhjulen och fästringarna i ramen och klipp ut reliefer för stegmotorerna. Jag mätte och klippte den inre ringen för stor så jag shimmed den till storlek med hjälp av någon lönnkantbanding jag hade runt butiken.

Steg 7: Klipp avstånd för halleffektsensorer

Cut Clearance för Hall Effect Sensors
Cut Clearance för Hall Effect Sensors
Cut Clearance för Hall Effect Sensors
Cut Clearance för Hall Effect Sensors
Cut Clearance för Hall Effect Sensors
Cut Clearance för Hall Effect Sensors

Skär ett spelhål genom den inre ringen för minuthallseffektsensorn och plats för timhallens effektsensor. Jag använde en mejsel, fil och liten handsåg för att klippa dessa spel.

Steg 8: Limma yttre ringen

Lim yttre ring
Lim yttre ring

Limma och tejpa den yttre ringen med storleken på den lilla kvarhållningsringen.

Steg 9: Justeringsskruvar för skärning av effektsensor

Cut Hall Effect Sensor Justeringsskruvar
Cut Hall Effect Sensor Justeringsskruvar

Skär maskinskruvarna med en hacksåg så att de bara är längre än tjockleken på hållarringen och hall -effekthållaren. Skär ett spår i gängorna så att det kan justeras från den gängade änden med en platt skruvmejsel.

Steg 10: Limma ringar på hårdplatta

Limma ringar på Hardboard
Limma ringar på Hardboard
Limma ringar på Hardboard
Limma ringar på Hardboard
Limma ringar på Hardboard
Limma ringar på Hardboard

Klipp en cirkel av hårdplatta som är bara större än den yttre ringen. Lim yttre och inre ringen på hardboardytan. Använd den lilla fästringen och ringväxeln för att placera den inre ringen. Var bättre uppmärksam än jag på att inte limma inre ringen bakåt. Bild två visar en ny slot cut för minut hall effekt sensor.

Använd en skivslip för att trimma hårdplattan till storleken på den yttre ringen.

Steg 11: Lim inre skiva

Lim inre skiva
Lim inre skiva
Lim inre skiva
Lim inre skiva

Limma inre skivan på plats med timringen och ringväxeln för att placera den inre skivan.

Steg 12: Fäst faner

Fäst faner
Fäst faner
Fäst faner
Fäst faner
Fäst faner
Fäst faner
Fäst faner
Fäst faner

Klipp en remsa med faner bredare än att klockan är djup och tillräckligt lång för att vira runt dygnet (3,14 * diameter på klockan, returnerar den längd som behövs. Lägg till en tum för att vara säker på att du har tillräckligt.) Torrpassa faner till klippa på längden. Applicera gott om lim på faner och kläm fast på plats med en remklämma. Låt torka ett par timmar för att säkerställa vidhäftning.

Steg 13: Trimfaner

Trimma faner
Trimma faner

Använd en skarp mejsel för att klippa av överskottsfaner från framsidan och baksidan av klockan.

Steg 14: Skär faner

Skär faner
Skär faner
Skär faner
Skär faner

Min faner hade några sprickor i den. För att göra det lättare att arbeta, applicerade jag målartejp för att hålla ihop det. Med en x-acto-kniv i en kompass skär du faner bara större än klockans yta.

Steg 15: Limfaner

Limfaner
Limfaner
Limfaner
Limfaner

Använd de avskurna ringarna för att sprida ut trycket över klockans yta. Applicera gott om lim på fanerns tejpssida. Rikta kornet vertikalt på urtavlan och applicera många klämmor som drar åt var och en lite i taget. Detta kommer att säkerställa att faner inte skiftar och har jämnt tryck över ansiktet.

Jag använde ett par platta brädor på framsidan av klockan och några lockar på baksidan.

Steg 16: Slipa och avsluta

Sand och finish
Sand och finish
Sand och finish
Sand och finish

Använd sandpapper, ta försiktigt bort överflödigt faner från klockans yta och slipa från 220 korn upp till 600 korn.

Applicera mellan 10 och 20 lager lack. Detta kommer att bygga upp den yta som kullagret kommer att rida längs. Oundvikligen på grund av damm och andra partiklar i luften tror jag att linjer kommer att dyka upp längs banan för varje kullager. Att applicera fler ytskikt bör fördröja detta så länge som möjligt. Det kommer också att underlätta framtida lackering. Jag kommer att uppdatera detta steg om rader någonsin dyker upp på min klocka.

Steg 17: Installera ström

Installera ström
Installera ström
Installera ström
Installera ström

Borra ett hål i botten av klockan med en 27/64 tum borr och skruva fast kontakten.

Steg 18: Montera elektronik

Montera elektronik
Montera elektronik
Montera elektronik
Montera elektronik
Montera elektronik
Montera elektronik
Montera elektronik
Montera elektronik

Fäst stegdrivrutiner och realtidsklocka till det elektroniska kortet. Jag behövde hitta ett sätt att säkra Arduino så att hål borrades och en slits klippdes för en dragkedja. Dessa funktioner har lagts till i filen i steg 22.

Steg 19: Löd och anslut elektronik

Löd- och anslutningselektronik
Löd- och anslutningselektronik
Löd- och anslutningselektronik
Löd- och anslutningselektronik
Löd- och anslutningselektronik
Löd- och anslutningselektronik

Följ blockdiagrammet och löd ihop alla komponenter. Varma lim ringarna på plats och säkra eventuella lösa trådar med varmt lim också.

Bild
Bild

Steg 20: Bakplatta

Bakplatta
Bakplatta
Bakplatta
Bakplatta
Bakplatta
Bakplatta

Skapa bakplattan genom att klippa ytterligare en cirkel 1/2 tum större än klockans yta och en ring med innerdiametern samma som klockans baksida. Limma ringen och cirkla ihop med några fjäderklämmor.

När den är torr, skriv en linje 1/8 tum större än den inre ringen och trimma till storlek med bandsågen eller skivslipmaskinen.

Skär en slits 1 tum lång 1/4 tum bred överst på baksidan med en router eller borr. Försänka fyra hål för att fästa ryggen i ramen på klockan.

Applicera svart sprayfärg och fäst på klockan när den har torkat.

Steg 21: Arduino -kod

Arduino -koden kommenteras så bra som möjligt. Tänk på att jag inte är en programmerare, jag har minimal arduino -upplevelse (var snäll). Koden körs kontinuerligt för att se om den aktuella tiden matchar "Återställ tiden". Eftersom jag inte kunde tänka mig ett sätt att översätta den aktuella tiden till steg, korrigerar den bara sig själv en gång dagligen (midnatt som standard). Vid midnatt roterar växlarna till midnattläge och väntar sedan till 00:01 för att flytta till den tiden sedan fortsätter därifrån. Som den för närvarande sitter förlorar klockan bara cirka 5 sekunder under en 24 -timmarsperiod.

Du behöver Stepper- och RTClib -biblioteken installerade.

Jag vet att koden kan optimeras av någon med mer erfarenhet än jag själv. Om du klarar utmaningen, återskapa det här projektet själv och dela med dig av din kunskap.

#omfatta

#inkludera "RTClib.h" RTC_DS1307 rtc; #define oneRotation 2038 // antalet steg i ett varv av 28BYJ-48 stegmotor Stepper hourHand (oneRotation, 3, 5, 4, 6); Stepper minuteHand (oneRotation, 7, 9, 8, 10); #define hourStopSensor 12 #define minuteStopSensor 11 int endStep = 0; // Time dealy för klockans hastighet. int setDelay1 = 168; int setDelay2 = 166; int setDelay3 = 5; // Nuvarande tid att räkna med. float hr = 0; float mn = 0; float sc = 0; // Ställ in tiden på dygnet för att återställa klockan (24 -timmarsformat). int resetHour = 0; int resetMinute = 0; // Variabler för att ställa in rätt tid vid start och återställning. float setTimeStepHour = 0; float setTimeStepMinute = 0; float handDelay = 0; float hourTest = 0; float minuteTest = 0; void setup () {Serial.begin (115200); // Ställ in realtidsklocka och återställ halleffektsensorer. pinMode (hourStopSensor, INPUT_PULLUP); pinMode (minuteStopSensor, INPUT_PULLUP); rtc.begin (); // Avmarkera raden nedan för att ställa in tid. // rtc.adjust (DateTime (2020, 2, 19, 23, 40, 30)); // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Ställ in topphastigheten för stegmotorer. hourHand.setSpeed (15); minuteHand.setSpeed (15); // Slinga tills minut- och timvisaren är vid middagstid medan (digitalRead (hourStopSensor) == LOW || digitalRead (minuteStopSensor) == LOW) {if (digitalRead (hourStopSensor) == LOW) {hourHand.step (2); } annat {fördröjning (3); } if (digitalRead (minuteStopSensor) == LOW) {minutHand.steg (3); } annat {fördröjning (4); }} while (digitalRead (hourStopSensor)! = LOW || digitalRead (minuteStopSensor)! = LOW) {if (digitalRead (hourStopSensor)! = LOW) {hourHand.step (2); } annat {fördröjning (3); } if (digitalRead (minuteStopSensor)! = LOW) {minutHand.steg (3); } annat {fördröjning (4); }}} // Få aktuell tid DateTime nu = rtc.now (); hr = nu.timme (); mn = nu.minute (); sc = nu.sekund (); // Byt till 12 -timmarsformat om (hr> = 12) {hr = hr - 12; } // Se vilken hand som måste färdas vidare över ansiktet och använd avståndet // för att justera inställd tid därefter. timtest = tim / 12; minuttest = mn / 60; if (hourTest> minuteTest) {handDelay = hourTest; } annat {handDelay = minuteTest; } // Ställ in aktuell timme setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Ställ in aktuell minut setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Testa vilken hand som kommer att behöva fler steg och ställ in det till det längsta steget för for -slingan. if (setTimeStepHour> setTimeStepMinute) {endStep = setTimeStepHour; } annat {endStep = setTimeStepMinute; } för (int i = 0; i <= endStep; i ++) {if (i <setTimeStepHour) {hourHand.step (2); } annat {fördröjning (3); } if (i <setTimeStepMinute) {minuteHand.step (3); } annat {fördröjning (4); }} // Ställ in klockan som kör RPM hourHand.setSpeed (1); minuteHand.setSpeed (1); } void loop () {// Starta klockans löpande loop. för (int i = 0; i <22; i ++) {minutHand.steg (1); delay (setDelay1); // Testa för återställningstid, om den är redo att återställas, bryt. if (rtc.now (). hour () == resetHour && rtc.now (). minute () == resetMinute) {break; }} delay (setDelay3); för (int i = 0; i <38; i ++) {hourHand.step (1); delay (setDelay1); // Testa för återställningstid, om den är redo att återställas, bryt. if (rtc.now (). hour () == resetHour && rtc.now (). minute () == resetMinute) {break; } för (int i = 0; i <20; i ++) {minutHand.steg (1); delay (setDelay2); // Testa för återställningstid, om den är redo att återställas, bryt. if (rtc.now (). hour () == resetHour && rtc.now (). minute () == resetMinute) {break; }}} // Återställ klockan vid återställningstid om (rtc.now (). Hour () == resetHour && rtc.now (). Minute () == resetMinute) {// Ändra hastigheten på klockan hourHand.setSpeed (10); minuteHand.setSpeed (10); // Loop till minut och timvisare når middagstid. while (digitalRead (hourStopSensor) == LOW || digitalRead (minuteStopSensor) == LOW) {if (digitalRead (hourStopSensor) == LOW) {hourHand.step (2); } annat {fördröjning (3); } if (digitalRead (minuteStopSensor) == LOW) {minutHand.steg (3); } annat {fördröjning (4); }} while (digitalRead (hourStopSensor)! = LOW || digitalRead (minuteStopSensor)! = LOW) {if (digitalRead (hourStopSensor)! = LOW) {hourHand.step (2); } annat {fördröjning (3); } if (digitalRead (minuteStopSensor)! = LOW) {minuteHand.step (3); } annat {fördröjning (4); }} // Vänta här tills återställningstiden har passerat. medan (rtc.now (). minut () == resetMinute) {fördröjning (1000); } // Få aktuell tid DateTime nu = rtc.now (); hr = nu.timme (); mn = nu.minute (); sc = nu.sekund (); // Byt till 12 -timmarsformat om (hr> = 12) {hr = hr - 12; } // Se vilken hand som måste färdas vidare över ansiktet och använd avståndet // för att justera inställd tid därefter. timtest = tim / 12; minuttest = mn / 60; if (hourTest> minuteTest) {handDelay = hourTest; } else {handDelay = minuteTest; } // Ställ in aktuell timme setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Ställ in aktuell minut setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Testa vilken hand som kommer att behöva fler steg och ställ in det till det längsta steget för for -slingan. if (setTimeStepHour> setTimeStepMinute) {endStep = setTimeStepHour; } annat {endStep = setTimeStepMinute; } för (int i = 0; i <= endStep; i ++) {if (i <setTimeStepHour) {hourHand.step (2); } annat {fördröjning (3); } if (i <setTimeStepMinute) {minuteHand.step (3); } annat {fördröjning (4); }} hourHand.setSpeed (1); minuteHand.setSpeed (1); }}

Steg 22: STL -filer

Du måste skriva ut följande mängder av filerna:

  • 1 - timmars ringväxelsegmentmagnet
  • 6 - timmars ringväxelsegment Basic
  • 1 - timmars hållarringssegment Stepper Mount
  • 6 - timmars kvarhållande ringsegment Basic
  • 1 - Hållare för timmeeffektsensor
  • 1 - Segmentmagnet för minutring
  • 7 - Minutringssegment Basic
  • 1 - Minut hållarringssegment Stepper Mount
  • 6 - Minut kvarhållande ringsegment Basic
  • 1 - Minute Hall Effect Sensor Hållare
  • 2 - Spur Gear
  • 1 - Elektronikfäste

Steg 23: Solidworks -filer

Det här är de ursprungliga Solidworks -filerna som används för att skapa STL: erna som hittades i föregående steg. Redigera och ändra mina filer efter eget tycke.

Steg 24: Slutsats

Den här klockan blev bättre än jag hade tänkt mig. Med minimal Arduino -upplevelse är jag glad över hur det blev och hur exakt det är. Det ser bra ut och fungerar precis som jag hade hoppats.

Rekommenderad: