Inhoudsopgave:

Betoverende magnetische wandklok - Ajarnpa
Betoverende magnetische wandklok - Ajarnpa

Video: Betoverende magnetische wandklok - Ajarnpa

Video: Betoverende magnetische wandklok - Ajarnpa
Video: 31 Queen Elizabeth I on Screen: Which One have you Seen? (1912-2022) 2024, Juli-
Anonim
Betoverende magnetische wandklok
Betoverende magnetische wandklok
Betoverende magnetische wandklok
Betoverende magnetische wandklok

Mechanische klokken hebben me altijd gefascineerd. De manier waarop alle interne tandwielen, veren en echappementen samenwerken om te resulteren in een constant betrouwbaar uurwerk, leek altijd onbereikbaar voor mijn beperkte vaardigheden. Gelukkig kunnen moderne elektronica en 3D-geprinte onderdelen de kloof overbruggen om iets eenvoudigs te creëren dat niet afhankelijk is van kleine precieze metalen onderdelen.

Deze minimalistische wandklok verbergt een paar 3D-geprinte ringtandwielen aangedreven door goedkope stappenmotoren die magneten draaien achter een klassiek walnootfineer.

Aanvankelijk geïnspireerd door STORY Clock, wilde ik een uurwerk dat de tijd van de dag aangaf met alleen kogellagers versus de digitale uitlezing en langzaam bewegende kogellagers die hun product gebruikt.

Afbeelding
Afbeelding

Stap 1: Gereedschappen en materialen

Gereedschappen en materialen
Gereedschappen en materialen
Gereedschappen en materialen
Gereedschappen en materialen
Gereedschappen en materialen
Gereedschappen en materialen
Gereedschappen en materialen
Gereedschappen en materialen

Materialen:

  • 13 x 13 x 2 inch Multiplex / spaanplaat (ik heb 3 stukjes sloophout aan elkaar gelijmd)
  • 13 x 13 inch hardboard
  • Arduino Nano
  • Realtime klok
  • Stappenmotoren en stuurprogramma's
  • Hall-effectsensoren
  • Magneten
  • Stroomkabel
  • AC-adapter
  • Plug
  • Diverse machineschroeven
  • Diverse houtschroeven
  • 3D-geprinte onderdelen (laatste stap)
  • Fineer (12 x 12 inch - gezicht, 40 inch lange strook)
  • Spuitlak
  • Zwarte spuitverf

Gereedschap:

  • 3D-printer
  • Kompas
  • X-acto mes
  • Lijm
  • Klemmen
  • Cirkel snijden Jig
  • Hack zaag
  • Schijfschuurmachine
  • Ratelklem
  • Beitel
  • Heerser
  • Schuurmachine
  • Boren
  • Schroevendraaiers
  • Soldeerbout
  • Heet lijmpistool

Stap 2: Lijm aan elkaar houten frame

Lijm aan elkaar houten frame
Lijm aan elkaar houten frame
Lijm aan elkaar houten frame
Lijm aan elkaar houten frame
Lijm aan elkaar houten frame
Lijm aan elkaar houten frame
Lijm aan elkaar houten frame
Lijm aan elkaar houten frame

Lijm drie stukken hout aan elkaar die het frame van de klok zullen vormen. Ik gebruikte teruggewonnen spaanplaat van een oud bedframe.

Stap 3: Frame snijden met cirkelsnijmal

Frame snijden met cirkelsnijmal
Frame snijden met cirkelsnijmal
Frame snijden met cirkelsnijmal
Frame snijden met cirkelsnijmal
Frame snijden met cirkelsnijmal
Frame snijden met cirkelsnijmal
Frame snijden met cirkelsnijmal
Frame snijden met cirkelsnijmal

Markeer het midden van het bord en monteer het op een cirkelzaagmal. Snijd vijf cirkels met de volgende diameters:

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

Stap 4: Print en monteer tandwielen

Tandwielen afdrukken en monteren
Tandwielen afdrukken en monteren
Tandwielen afdrukken en monteren
Tandwielen afdrukken en monteren

De ringtandwielen zijn in segmenten verdeeld, zodat ze op een kleine printer kunnen worden afgedrukt en aan elkaar kunnen worden geklikt. Alle onderdelen zijn gedrukt in ABS om te helpen bij het smeltproces dat in de volgende stap wordt getoond. Schuur alle randen en oppervlakken van de onderdelen.

Druk de volgende hoeveelheden onderdelen af die u in stap 22 hebt gevonden:

  • 1 - uur Ring Gear Segment-magneet
  • 6 - Uur Ring Gear Segment Basic
  • 1 - Uur borgring Segment Stepper Mount
  • 6 - Uur borgringsegment Basis
  • 1 - uur Hall-effect sensorhouder
  • 1 - Minuut Ring Gear Segment-magneet
  • 7 - Minute Ring Gear Segment Basic
  • 1 - Minute borgring Segment Stepper Mount
  • 6 - Minuut borgringsegment Basis
  • 1 - Minuut Hall-effect sensorhouder
  • 2 - Tandwiel
  • 1 - Elektronica montage

Stap 5: "Lijm" secties aan elkaar

Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding

Los mislukte afdrukken op in een glazen fles met wat aceton, enz. Verf het acetonmengsel op elke naad om de stukjes aan elkaar te smelten. Eenmaal uitgehard, schuur elke naad plat.

Stap 6: snij reliëfs in frame

Snij reliëfs in lijst
Snij reliëfs in lijst
Snij reliëfs in lijst
Snij reliëfs in lijst
Snij reliëfs in lijst
Snij reliëfs in lijst

Plaats de tandwielen en borgringen in het frame en snij de reliëfs voor de stappenmotoren uit. Ik heb de binnenring te groot gemeten en gesneden, dus ik heb hem op maat gemaakt met wat esdoornranden die ik in de winkel had.

Stap 7: vrije ruimte voor Hall-effectsensoren snijden

Snijruimte voor Hall-effectsensoren
Snijruimte voor Hall-effectsensoren
Snijruimte voor Hall-effectsensoren
Snijruimte voor Hall-effectsensoren
Snijruimte voor Hall-effectsensoren
Snijruimte voor Hall-effectsensoren

Snijd een opening door de binnenring voor de minuut-hal-effectsensor en een gleuf voor de uur-hal-effectsensor. Ik gebruikte een beitel, vijl en kleine handzaag om deze spelingen te snijden.

Stap 8: Lijm buitenste ring

Lijm buitenste ring
Lijm buitenste ring

Lijm en tape de buitenste ring ter grootte van de minuut borgring.

Stap 9: Afstelschroeven voor Hall-effectsensor snijden

Afstelschroeven voor Cut Hall-effectsensor
Afstelschroeven voor Cut Hall-effectsensor

Snijd machineschroeven met een ijzerzaag zodat ze net langer zijn dan de dikte van de borgring en de hall-effectsensorhouder. Snijd een gleuf in de schroefdraad zodat deze met een platte schroevendraaier vanaf het schroefdraaduiteinde kan worden afgesteld.

Stap 10: Lijm ringen op hardboard

Lijmringen op hardboard
Lijmringen op hardboard
Lijmringen op hardboard
Lijmringen op hardboard
Lijmringen op hardboard
Lijmringen op hardboard

Snijd een cirkel van hardboard die net groter is dan de buitenste ring. Lijm de buiten- en binnenring op de hardboardplaat. Gebruik de minuutborgring en het ringtandwiel om de binnenring te plaatsen. Let er beter op dan ik om de binnenring niet achterstevoren vast te lijmen. Afbeelding twee toont een nieuwe sleuf voor een minuut-hal-effectsensor.

Gebruik een schijfschuurmachine om het hardboard tot de maat van de buitenste ring af te knippen.

Stap 11: Lijm de binnenste schijf

Lijm binnenste schijf
Lijm binnenste schijf
Lijm binnenste schijf
Lijm binnenste schijf

Lijm de binnenschijf op zijn plaats met behulp van de uurborgring en het tandwiel om de binnenschijf te plaatsen.

Stap 12: Bevestig fineer

Bevestig fineer
Bevestig fineer
Bevestig fineer
Bevestig fineer
Bevestig fineer
Bevestig fineer
Bevestig fineer
Bevestig fineer

Snijd een strook fineer die breder is dan de klok diep en lang genoeg is om rond de klok te wikkelen (3,14 * diameter van de klok, geeft de benodigde lengte terug. Voeg een inch toe om er zeker van te zijn dat je genoeg hebt.) Droog het fineer op op lengte gesneden. Breng voldoende lijm aan op het fineer en klem op zijn plaats met een riemklem. Laat een paar uur drogen om de hechting te verzekeren.

Stap 13: Fineer bijsnijden

Trim fineer
Trim fineer

Knip met een scherpe beitel het overtollige fineer van de voor- en achterkant van de klok af.

Stap 14: Fineer snijden

Snij fineer
Snij fineer
Snij fineer
Snij fineer

Er zaten scheuren in mijn fineer. Om het gemakkelijker te maken om mee te werken, heb ik schilderstape aangebracht om het bij elkaar te houden. Snijd met een x-acto-mes in een kompas het fineer net groter dan het gezicht van de klok.

Stap 15: Lijm fineer

Lijm fineer
Lijm fineer
Lijm fineer
Lijm fineer

Gebruik de uitgesneden ringen om de druk over de wijzerplaat van de klok te verdelen. Breng voldoende lijm aan op de niet-tape-kant van het fineer. Oriënteer de nerf verticaal op de wijzerplaat en breng veel klemmen aan die ze stuk voor stuk strakker aandraaien. Dit zorgt ervoor dat het fineer niet verschuift en gelijkmatig over het gezicht wordt gedrukt.

Ik gebruikte een paar platte planken aan de voorkant van de klok en wat cauls op de achterkant.

Stap 16: schuren en afwerken

Zand en afwerking
Zand en afwerking
Zand en afwerking
Zand en afwerking

Verwijder voorzichtig het overtollige fineer van de wijzerplaat met schuurpapier en schuur vanaf korrel 220 tot korrel 600.

Breng tussen de 10 en 20 lagen lak aan. Dit zal het oppervlak opbouwen waar het kogellager langs zal rijden. Onvermijdelijk als gevolg van stof en andere deeltjes in de lucht, denk ik dat er lijnen langs het pad van elk kogellager zullen verschijnen. Het aanbrengen van meer afwerklagen moet dit zo lang mogelijk uitstellen. Het zal ook toekomstige overspuiten gemakkelijker maken. Ik zal deze stap bijwerken als er ooit lijnen op mijn klok verschijnen.

Stap 17: Stroom installeren

Stroom installeren
Stroom installeren
Stroom installeren
Stroom installeren

Boor met een boor van 27/64 inch een gat in de onderkant van de klok en schroef de stekker op zijn plaats.

Stap 18: elektronica monteren

Elektronica monteren
Elektronica monteren
Elektronica monteren
Elektronica monteren
Elektronica monteren
Elektronica monteren
Elektronica monteren
Elektronica monteren

Bevestig stepper drivers en real-time klok aan het elektronische bord. Ik moest een manier vinden om de Arduino vast te zetten, zodat er gaten werden geboord en een gleuf werd gesneden voor een ritssluiting. Deze functies zijn toegevoegd aan het bestand in stap 22.

Stap 19: Soldeer en sluit elektronica aan

Soldeer en sluit elektronica aan
Soldeer en sluit elektronica aan
Soldeer en sluit elektronica aan
Soldeer en sluit elektronica aan
Soldeer en sluit elektronica aan
Soldeer en sluit elektronica aan

Volg het blokschema en soldeer alle componenten aan elkaar. Heet lijm de ringen op hun plaats en zet eventuele losse draden ook vast met hete lijm.

Afbeelding
Afbeelding

Stap 20: Achterplaat

Achterplaat
Achterplaat
Achterplaat
Achterplaat
Achterplaat
Achterplaat

Maak de achterplaat door nog een cirkel 1/2 inch groter dan het gezicht van de klok en een ring met dezelfde binnendiameter als de achterkant van de klok te snijden. Lijm de ring en cirkel samen met enkele veerklemmen.

Eenmaal droog, schrijf een lijn die 1/8 inch groter is dan de binnenring en trim op maat met behulp van de lintzaag of schijfschuurmachine.

Snijd een sleuf van 1 inch lang 1/4 inch breed aan de bovenkant van de achterkant met behulp van een router of boren. Verzink vier gaten om de achterkant in het frame van de klok te bevestigen.

Breng zwarte spuitverf aan en bevestig deze na droging aan de klok.

Stap 21: Arduino-code

De arduino-code is zo goed mogelijk becommentarieerd. Houd er rekening mee dat ik geen programmeur ben, ik heb minimale arduino-ervaring (wees aardig). De code wordt continu gecontroleerd om te zien of de huidige tijd overeenkomt met de "Reset Time". Omdat ik geen manier kon bedenken om de huidige tijd in stappen te vertalen, corrigeert het zichzelf slechts eenmaal per dag (standaard middernacht). Om middernacht draaien de tandwielen naar de middernachtpositie, wacht dan tot 00:01 en ga dan verder vanaf daar. Zoals het er nu uitziet, verliest de klok slechts ongeveer 5 seconden over een periode van 24 uur.

U moet de Stepper- en RTClib-bibliotheken geïnstalleerd hebben.

Ik weet dat de code kan worden geoptimaliseerd door iemand met meer ervaring dan ikzelf. Als je de uitdaging aankunt, maak dan dit project voor jezelf opnieuw en deel je kennis.

#erbij betrekken

#include "RTClib.h" RTC_DS1307 rtc; #define oneRotation 2038 // het aantal stappen in één omwenteling van 28BYJ-48 stappenmotor Stepper hourHand (oneRotation, 3, 5, 4, 6); Stepper minuteHand (één rotatie, 7, 9, 8, 10); #define hourStopSensor 12 #define minuteStopSensor 11 int endStep = 0; // Tijddeal voor de snelheid van de klok. int setDelay1 = 168; int setDelay2 = 166; int setDelay3 = 5; // Huidige tijd om wiskunde mee te doen. vlotter uur = 0; vlotter mn = 0; zweven sc = 0; // Stel de tijd van de dag in om de klok opnieuw in te stellen (24-uurs formaat). int resetHour = 0; int resetMinuut = 0; // Variabelen om de juiste tijd in te stellen bij het opstarten en resetten. float setTimeStepHour = 0; float setTimeStepMinute = 0; float handDelay = 0; float uurTest = 0; float minuutTest = 0; void setup() { Serial.begin(115200); // Stel real-time klok in en reset hall-effectsensoren. pinMode (hourStopSensor, INPUT_PULLUP); pinMode (minuteStopSensor, INPUT_PULLUP); rtc.begin(); // Uncomment regel hieronder om de tijd in te stellen. // rtc.adjust(DateTime(2020, 2, 19, 23, 40, 30)); // rtc.adjust(DateTime(F(_DATE_), F(_TIME_))); // Stel de topsnelheid van stappenmotoren in. uurHand.setSpeed (15); minutenwijzer.setSpeed(15); // Loop tot minuut- en uurwijzer om 12.00 uur zijn terwijl (digitalRead (hourStopSensor) == LAAG || digitalRead (minuteStopSensor) == LAAG) {if (digitalRead (hourStopSensor) == LAAG) { hourHand.step (2); } anders { vertraging (3); } if (digitalRead(minuteStopSensor) == LAAG) {minuteHand.step (3); } anders { vertraging(4); } } while (digitalRead (hourStopSensor) != LAAG || digitalRead (minuteStopSensor) != LAAG) { if (digitalRead (hourStopSensor) != LAAG) { hourHand.step(2); } anders { vertraging (3); } if (digitalRead (minuteStopSensor)! = LAAG) {minuteHand.step (3); } anders { vertraging(4); } } // Krijg de huidige tijd DateTime nu = rtc.now(); hr = nu.uur(); mn = nu.minuut(); sc = nu.seconde(); // Wijzig naar 12-uurs formaat als (hr >= 12) { hr = hr - 12; } // Kijk welke hand verder over het gezicht moet gaan en gebruik die afstand // om de ingestelde tijd dienovereenkomstig aan te passen. uurTest = uur / 12; minuutTest = mn / 60; if (hourTest > minuteTest) { handDelay = hourTest; } else { handDelay = minuteTest; } // Stel het huidige uur in setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Stel huidige minuut in setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Test welke hand meer stappen nodig heeft en stel dat in op het langste aantal stappen voor de for-lus. if (setTimeStepHour > setTimeStepMinute) { endStep = setTimeStepHour; } else { endStep = setTimeStepMinute; } for (int i = 0; i <= endStep; i++) { if (i < setTimeStepHour) { hourHand.step(2); } anders { vertraging (3); } if (i < setTimeStepMinute) {minuteHand.step (3); } anders { vertraging(4); } } // Stel de klok in met RPM hourHand.setSpeed(1); minuutHand.setSpeed(1); } void loop () { // Start de lopende lus van de klok. for (int i = 0; i < 22; i++) {minuteHand.step(1); vertraging (setDelay1); // Test voor resettijd, indien klaar om te worden gereset, pauze. if (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { break; } } vertraging (setDelay3); for (int i = 0; i < 38; i++) { hourHand.step(1); vertraging (setDelay1); // Test voor resettijd, indien klaar om te worden gereset, pauze. if (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { break; } for (int i = 0; i <20; i++) {minuteHand.step(1); vertraging (setDelay2); // Test voor resettijd, indien klaar om te worden gereset, pauze. if (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { break; } } } // Reset klok op resettijd if (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { // Verander snelheid van klok hourHand.setSpeed(10); minutenwijzer.setSpeed(10); // Loop tot de minuut- en uurwijzer het middaguur bereikt. while (digitalRead (hourStopSensor) == LAAG || digitalRead (minuteStopSensor) == LAAG) {if (digitalRead (hourStopSensor) == LAAG) {hourHand.step (2); } anders { vertraging (3); } if (digitalRead(minuteStopSensor) == LAAG) {minuteHand.step (3); } anders { vertraging(4); } } while (digitalRead (hourStopSensor) != LAAG || digitalRead (minuteStopSensor) != LAAG) { if (digitalRead (hourStopSensor) != LAAG) { hourHand.step(2); } anders { vertraging (3); } if (digitalRead (minuteStopSensor)! = LAAG) {minuteHand.step (3); } anders { vertraging(4); } } // Wacht hier tot de resettijd is verstreken. while (rtc.now().minute() == resetMinute) { delay(1000); } // Krijg de huidige tijd DateTime nu = rtc.now (); hr = nu.uur(); mn = nu.minuut(); sc = nu.seconde(); // Wijzig naar 12-uurs formaat als (hr>= 12) { hr = hr - 12; } // Kijk welke hand verder over het gezicht moet gaan en gebruik die afstand // om de ingestelde tijd dienovereenkomstig aan te passen. uurTest = uur / 12; minuutTest = mn / 60; if (hourTest > minuteTest) { handDelay = hourTest; } else { handDelay = minuteTest; } // Stel het huidige uur in setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Stel huidige minuut in setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Test welke hand meer stappen nodig heeft en stel dat in op het langste aantal stappen voor de for-lus. if (setTimeStepHour > setTimeStepMinute) { endStep = setTimeStepHour; } else { endStep = setTimeStepMinute; } for (int i = 0; i <= endStep; i++) { if (i < setTimeStepHour) { hourHand.step(2); } anders { vertraging (3); } if (i < setTimeStepMinute) {minuteHand.step (3); } anders { vertraging(4); } } uurHand.setSpeed(1); minuutHand.setSpeed(1); } }

Stap 22: STL-bestanden

U moet de volgende hoeveelheden van de bestanden afdrukken:

  • 1 - uur Ring Gear Segment-magneet
  • 6 - Uur Ring Gear Segment Basis
  • 1 - Uur borgring Segment Stepper Mount
  • 6 - Uur borgringsegment Basis
  • 1 - uur Hall-effect sensorhouder
  • 1 - Minuut Ring Gear Segment-magneet
  • 7 - Minute Ring Gear Segment Basic
  • 1 - Minute borgring Segment Stepper Mount
  • 6 - Minuut borgringsegment Basis
  • 1 - Minuut Hall-effect sensorhouder
  • 2 - Tandwiel
  • 1 - Elektronica montage

Stap 23: Solidworks-bestanden

Dit zijn de originele Solidworks-bestanden die zijn gebruikt om de STL's te maken die in de vorige stap zijn gevonden. Voel je vrij om mijn bestanden te bewerken en te wijzigen zoals je wilt.

Stap 24: Conclusie

Deze klok is beter geworden dan ik had verwacht. Met minimale Arduino-ervaring ben ik blij met hoe het is geworden en hoe nauwkeurig het is. Het ziet er geweldig uit en functioneert precies zoals ik had gehoopt.

Aanbevolen: