Indholdsfortegnelse:

Imponerende magnetisk vægur: 24 trin (med billeder)
Imponerende magnetisk vægur: 24 trin (med billeder)

Video: Imponerende magnetisk vægur: 24 trin (med billeder)

Video: Imponerende magnetisk vægur: 24 trin (med billeder)
Video: 110v & 230v gratis energigenerator med mikrobølgetransformatorer _ Ny metode 2023 2024, November
Anonim
Imponerende magnetisk vægur
Imponerende magnetisk vægur
Imponerende magnetisk vægur
Imponerende magnetisk vægur

Mekaniske ure har altid fascineret mig. Den måde, hvorpå alle de interne gear, fjedre og udgange arbejder sammen for at resultere i et konstant pålideligt ur, har altid virket uden for rækkevidde for mit begrænsede færdighedssæt. Heldigvis kan moderne elektronik og 3D -printede dele bygge bro mellem hullerne og skabe noget simpelt, der ikke er afhængig af små præcise metaldele.

Dette minimalistiske vægur skjuler et par 3D -trykte ringhjul drevet af billige steppermotorer, der roterer magneter bag en klassisk valnødfiner.

Oprindeligt inspireret af STORY Clock, ønskede jeg et tidsstykke, der angav tidspunktet på dagen kun ved hjælp af kuglelejer vs den digitale aflæsning og langsomt bevægende kugleleje, som deres produkt bruger.

Billede
Billede

Trin 1: Værktøjer og materialer

Værktøjer og materialer
Værktøjer og materialer
Værktøjer og materialer
Værktøjer og materialer
Værktøjer og materialer
Værktøjer og materialer
Værktøjer og materialer
Værktøjer og materialer

Materialer:

  • 13 x 13 x 2 in. Krydsfiner/spånplade (jeg limede sammen 3 stykker skrot)
  • 13 x 13 in. Hardboard
  • Arduino Nano
  • Ur i realtid
  • Steppermotorer og drivere
  • Hall Effect Sensors
  • Magneter
  • Strømkabel
  • AC -adapter
  • Prop
  • Diverse maskinskruer
  • Diverse træskruer
  • 3D -printede dele (sidste trin)
  • Finer (12 x 12 tommer - ansigt, 40 tommer lang strimmel)
  • Sprøjt lak
  • Sort spraymaling

Værktøjer:

  • 3D printer
  • Kompas
  • X-acto kniv
  • Lim
  • Klemmer
  • Cirkel skæreskive
  • Hack Saw
  • Skiveslibemaskine
  • Skraldeklemme
  • Mejsel
  • Lineal
  • Sander
  • Øvelser
  • Skruetrækkere
  • Loddekolbe
  • Varm limpistol

Trin 2: Lim sammen træramme

Lim sammen træramme
Lim sammen træramme
Lim sammen træramme
Lim sammen træramme
Lim sammen træramme
Lim sammen træramme
Lim sammen træramme
Lim sammen træramme

Lim tre stykker træ sammen, der danner urets ramme. Jeg brugte genvundet spånplade fra en gammel sengestel.

Trin 3: Skær ramme ved hjælp af cirkelskæremaskine

Skær ramme ved hjælp af cirkelskærejig
Skær ramme ved hjælp af cirkelskærejig
Skær ramme ved hjælp af cirkelskærejig
Skær ramme ved hjælp af cirkelskærejig
Skær ramme ved hjælp af cirkelskærejig
Skær ramme ved hjælp af cirkelskærejig
Skær ramme ved hjælp af cirkelskærejig
Skær ramme ved hjælp af cirkelskærejig

Marker midten af brættet og monter det på en cirkelskærejig. Skær fem cirkler med følgende diametre:

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

Trin 4: Udskriv og saml gear

Udskriv og saml gear
Udskriv og saml gear
Udskriv og saml gear
Udskriv og saml gear

Ringhjulene er opdelt i segmenter, så de kan udskrives på en lille printer og smækkes sammen. Alle dele blev trykt i ABS for at hjælpe med fusionsprocessen vist i det næste trin. Slib alle kanter og overflader af delene.

Udskriv følgende mængder dele, der blev fundet i trin 22:

  • 1 - Time Ring Gear Segment Magnet
  • 6 - timers ring gearsegment Basic
  • 1 - timers fastholdelsesring Segment Stepper Mount
  • 6 - timers fastholdelsesringssegment Basic
  • 1 - Time Hall Effect Sensor Holder
  • 1 - minut ring gear segment magnet
  • 7 - Minutring Gear Segment Basic
  • 1 - Minutrettholdende ringsegment Stepper Mount
  • 6 - Minut tilbageholdende ringsegment Basic
  • 1 - Minute Hall Effect Sensor Holder
  • 2 - Spindel
  • 1 - Elektronikbeslag

Trin 5: "Lim" sektioner sammen

Billede
Billede
Billede
Billede
Billede
Billede

I en glasflaske med lidt acetone opløses fejlslagne udskrifter gamle støttematerialer osv. Mal acetoneblandingen på hver søm for at smelte stykkerne sammen. Når den er hærdet, slibes hver søm flad.

Trin 6: Skær relief i ramme

Skær reliefs i ramme
Skær reliefs i ramme
Skær reliefs i ramme
Skær reliefs i ramme
Skær reliefs i ramme
Skær reliefs i ramme

Placer ringhjulene og fastholdelsesringene i rammen, og afskær relieffer til trinmotorerne. Jeg målte og skar den indvendige ring for stor, så jeg lagde den i størrelse ved hjælp af en ahornkantbinding, jeg havde rundt i butikken.

Trin 7: Klip clearance for hall -effektfølere

Skær klaring til hall -effekt sensorer
Skær klaring til hall -effekt sensorer
Skær klaring til hall -effekt sensorer
Skær klaring til hall -effekt sensorer
Skær klaring til hall -effekt sensorer
Skær klaring til hall -effekt sensorer

Skær et åbningshul gennem den indvendige ring til minut -hall -effektsensoren og slot til time -hall -effektsensoren. Jeg brugte en mejsel, fil og lille håndsav til at skære disse mellemrum.

Trin 8: Lim den ydre ring

Lim den ydre ring
Lim den ydre ring

Lim og tap den ydre ring på størrelse med den lille tilbageholdelsesring.

Trin 9: Justeringsskruer til cut hall -effektføler

Cut Hall effekt sensor justeringsskruer
Cut Hall effekt sensor justeringsskruer

Skær maskinens skruer med en hacksav, så de bare er længere end tykkelsen på holderingen og holdeffektfølerholderen. Skær et hul i gevindene, så det kan justeres fra gevindenden med en flad skruetrækker.

Trin 10: Lim ringe til hardboard

Lim ringe til hardboard
Lim ringe til hardboard
Lim ringe til hardboard
Lim ringe til hardboard
Lim ringe til hardboard
Lim ringe til hardboard

Skær en cirkel af hardboard lige større end den ydre ring. Lim den ydre og indre ring på hardboard -overfladen. Brug den lille låsering og ringetøjet til at placere den indre ring. Vær bedre opmærksom end jeg gjorde for ikke at lime den indre ring baglæns. Billede to viser en ny slot til minut hall effekt sensor.

Brug en skiveslibemaskine til at trimme hardboardet ned til størrelsen af den ydre ring.

Trin 11: Lim indvendig skive

Lim indvendig skive
Lim indvendig skive
Lim indvendig skive
Lim indvendig skive

Lim den indvendige skive på plads ved hjælp af timefastholdelsesringen og ringudstyret til at placere den indre skive.

Trin 12: Fastgør finér

Fastgør finér
Fastgør finér
Fastgør finer
Fastgør finer
Fastgør finer
Fastgør finer
Fastgør finér
Fastgør finér

Skær en stribe finér bredere end uret er dybt og langt nok til at vikle døgnet rundt (3.14 * diameter på uret, returnerer den nødvendige længde. Tilføj en tomme for at være sikker på, at du har nok.) Tør pasformen til skåret i længden. Påfør rigelig lim på finer og klem på plads med en remklemme. Lad tørre et par timer for at sikre vedhæftning.

Trin 13: Trim finér

Trim finér
Trim finér

Ved hjælp af en skarp mejsel skal du klippe det overskydende finer foran og bag på uret.

Trin 14: Skær finér

Skåret finer
Skåret finer
Skåret finer
Skåret finer

Min finer havde nogle revner i den. For at gøre det lettere at arbejde med lagde jeg malertape på for at holde det sammen. Skær fineren lige større end urets overflade med en x-acto kniv i et kompas.

Trin 15: Lim finér

Limfiner
Limfiner
Limfiner
Limfiner

Brug de afskårne ringe til at sprede trykket ud over urets overflade. Påfør rigelig lim på den ikke -tape side af fineren. Orienter kornet lodret på urskiven og påfør mange klemmer, der strammer hver enkelt lidt ad gangen. Dette vil sikre, at fineren ikke forskyder sig og har et jævnt tryk på tværs af ansigtet.

Jeg brugte et par flade brædder på forsiden af uret og nogle cauls på bagsiden.

Trin 16: Slib og afslut

Sand og finish
Sand og finish
Sand og finish
Sand og finish

Fjern sandpapir forsigtigt med sandpapir fra urets overflade og sand fra 220 korn op til 600 korn.

Påfør mellem 10 og 20 lag lak. Dette vil bygge den overflade op, som kuglelejet vil ride langs. Uundgåeligt på grund af støv og andre partikler i luften, tror jeg, at der vil komme linjer langs hvert kuglelejes vej. Anvendelse af flere lag finish bør forsinke dette så længe som muligt. Det vil også gøre fremtidig lakering lettere. Jeg opdaterer dette trin, hvis der nogensinde vises linjer på mit ur.

Trin 17: Installer strøm

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

Brug et bor på 27/64 tommer til at bore et hul i bunden af uret og skru stikket på plads.

Trin 18: Saml elektronik

Saml elektronik
Saml elektronik
Saml elektronik
Saml elektronik
Saml elektronik
Saml elektronik
Saml elektronik
Saml elektronik

Sæt stepperdrivere og realtidsur på det elektroniske kort. Jeg var nødt til at finde en måde at sikre Arduino på, så der blev boret huller, og der blev skåret en åbning til en lynlås. Disse funktioner er blevet tilføjet til filen, der blev fundet i trin 22.

Trin 19: Lodde og tilslut elektronik

Lodde- og tilslutteelektronik
Lodde- og tilslutteelektronik
Lodde- og tilslutteelektronik
Lodde- og tilslutteelektronik
Lodde- og tilslutteelektronik
Lodde- og tilslutteelektronik

Følg blokdiagrammet og lod alle komponenter sammen. Varm limringene på plads, og fastgør eventuelle vildfarende ledninger med varm lim.

Billede
Billede

Trin 20: Bagplade

Bagplade
Bagplade
Bagplade
Bagplade
Bagplade
Bagplade

Opret bagpladen ved at skære en anden cirkel 1/2 tommer større end urets overflade og en ring med den indvendige diameter på samme måde som urets bagside. Lim ringen og cirkel sammen med nogle fjederklemmer.

Når det er tørt, skal du skrive en linje 1/8 tommer større end den indre ring og trimme i størrelse ved hjælp af båndsaven eller skivesliberen.

Skær en åbning 1 tommer lang 1/4 tommer bred øverst på bagsiden ved hjælp af en router eller bor. Forsænk fire huller for at fastgøre bagsiden i urets ramme.

Påfør sort spraymaling og fastgør til uret, når det er tørret.

Trin 21: Arduino -kode

Arduino -koden kommenteres så godt som muligt. Husk, at jeg ikke er en programmør, jeg har minimal arduino -oplevelse (vær venlig). Koden kører løbende for at se, om den aktuelle tid matcher "Nulstil tid". Fordi jeg ikke kunne tænke på en måde at omsætte den aktuelle tid til trin, retter den kun sig selv en gang dagligt (midnat som standard). Ved midnat roterer gearene til midnatspositionen, og vent derefter til 00:01 til det tidspunkt, hvorefter de fortsætter derfra. Da det i øjeblikket sidder, mister uret kun cirka 5 sekunder over en 24 -timers periode.

Du skal have Stepper- og RTClib -bibliotekerne installeret.

Jeg ved, at koden kan optimeres af en person med mere erfaring end mig selv. Hvis du er klar til udfordringen, kan du genskabe dette projekt for dig selv og dele din viden.

#omfatte

#include "RTClib.h" RTC_DS1307 rtc; #define oneRotation 2038 // antallet af trin i en omdrejning af 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; // Time dealy for urets hastighed. int setDelay1 = 168; int setDelay2 = 166; int setDelay3 = 5; // Aktuel tid til at lave matematik med. float hr = 0; float mn = 0; float sc = 0; // Indstil tidspunktet på dagen for at nulstille uret (24 -timers format). int resetHour = 0; int resetMinute = 0; // Variabler for at indstille det korrekte tidspunkt ved opstart og nulstilling. float setTimeStepHour = 0; float setTimeStepMinute = 0; float handDelay = 0; float hourTest = 0; float minutTest = 0; ugyldig opsætning () {Serial.begin (115200); // Opsætning af realtidsur og nulstil hall -effekt sensorer. pinMode (hourStopSensor, INPUT_PULLUP); pinMode (minutStopSensor, INPUT_PULLUP); rtc.begin (); // Ukommenter linje nedenfor for at indstille tid. // rtc.adjust (DateTime (2020, 2, 19, 23, 40, 30)); // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Indstil topmotorens hastighed. hourHand.setSpeed (15); minutHand.setSpeed (15); // Sløjfe, indtil minut- og timehånden er ved middagstid, mens (digitalRead (hourStopSensor) == LOW || digitalRead (minuteStopSensor) == LOW) {if (digitalRead (hourStopSensor) == LOW) {hourHand.step (2); } ellers {forsinkelse (3); } if (digitalRead (minuteStopSensor) == LOW) {minutHand.step (3); } andet {forsinkelse (4); }} while (digitalRead (hourStopSensor)! = LOW || digitalRead (minuteStopSensor)! = LOW) {if (digitalRead (hourStopSensor)! = LOW) {hourHand.step (2); } ellers {forsinkelse (3); } if (digitalRead (minuteStopSensor)! = LOW) {minutHand.step (3); } ellers {forsinkelse (4); }}} // Få den aktuelle tid DateTime nu = rtc.now (); time = nu. time (); mn = nu. minut (); sc = nu.sekund (); // Skift til 12 timers format, hvis (hr> = 12) {hr = hr - 12; } // Se, hvilken hånd der skal rejse videre over ansigtet, og brug denne afstand // til at justere den indstillede tid derefter. timetest = time / 12; minutTest = mn / 60; if (hourTest> minuteTest) {handDelay = hourTest; } ellers {handDelay = minutTest; } // Indstil aktuel time setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Indstil det aktuelle minut setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Test, hvilken hånd der skal bruge flere trin, og indstil det til det længste trinantal for for -løkken. hvis (setTimeStepHour> setTimeStepMinute) {endStep = setTimeStepHour; } ellers {endStep = setTimeStepMinute; } for (int i = 0; i <= endStep; i ++) {if (i <setTimeStepHour) {hourHand.step (2); } ellers {forsinkelse (3); } hvis (i <setTimeStepMinute) {minuteHand.step (3); } andet {forsinkelse (4); }} // Indstil uret til at køre RPM hourHand.setSpeed (1); minutHand.setSpeed (1); } void loop () {// Start urets løbende loop. for (int i = 0; i <22; i ++) {minutHånd.trin (1); forsinkelse (setDelay1); // Test for nulstillingstid, hvis den er klar til at blive nulstillet, skal du bryde. hvis (rtc.now (). time () == resetHour && rtc.now (). minut () == resetMinute) {pause; }} forsinkelse (setDelay3); for (int i = 0; i <38; i ++) {timeHand.step (1); forsinkelse (setDelay1); // Test for nulstillingstid, hvis den er klar til at blive nulstillet, skal du bryde. hvis (rtc.now (). time () == resetHour && rtc.now (). minut () == resetMinute) {pause; } for (int i = 0; i <20; i ++) {minuteHand.step (1); forsinkelse (setDelay2); // Test for nulstillingstid, hvis den er klar til at blive nulstillet, skal du bryde. hvis (rtc.now (). time () == resetHour && rtc.now (). minut () == resetMinute) {pause; }}}}}} Nulstil uret ved nulstillingstidspunktet, hvis (rtc.now (). Time () == resetHour && rtc.now (). Minut () == resetMinute) {// Ændre hastigheden på uret hourHand.setSpeed (10); minutHand.setSpeed (10); // Sløjfe indtil minut og time -hånd når middag. while (digitalRead (hourStopSensor) == LOW || digitalRead (minuteStopSensor) == LOW) {if (digitalRead (hourStopSensor) == LOW) {hourHand.step (2); } ellers {forsinkelse (3); } if (digitalRead (minuteStopSensor) == LOW) {minutHand.step (3); } andet {forsinkelse (4); }} while (digitalRead (hourStopSensor)! = LOW || digitalRead (minuteStopSensor)! = LOW) {if (digitalRead (hourStopSensor)! = LOW) {hourHand.step (2); } ellers {forsinkelse (3); } if (digitalRead (minuteStopSensor)! = LOW) {minutHand.step (3); } andet {forsinkelse (4); }} // Vent her, indtil nulstillingstiden er gået. mens (rtc.now (). minut () == resetMinute) {forsinkelse (1000); } // Få den aktuelle tid DateTime nu = rtc.now (); time = nu. time (); mn = nu. minut (); sc = nu.sekund (); // Skift til 12 timers format, hvis (hr> = 12) {hr = hr - 12; } // Se, hvilken hånd der skal rejse videre over ansigtet, og brug denne afstand // til at justere den indstillede tid derefter. timetest = time / 12; minutTest = mn / 60; if (hourTest> minuteTest) {handDelay = hourTest; } ellers {handDelay = minutTest; } // Indstil aktuel time setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Indstil det aktuelle minut setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Test, hvilken hånd der skal bruge flere trin, og indstil det til det længste trinantal for for -løkken. hvis (setTimeStepHour> setTimeStepMinute) {endStep = setTimeStepHour; } ellers {endStep = setTimeStepMinute; } for (int i = 0; i <= endStep; i ++) {if (i <setTimeStepHour) {hourHand.step (2); } ellers {forsinkelse (3); } hvis (i <setTimeStepMinute) {minuteHand.step (3); } andet {forsinkelse (4); }} hourHand.setSpeed (1); minutHand.setSpeed (1); }}

Trin 22: STL -filer

Du skal udskrive følgende mængder af filerne:

  • 1 - Time Ring Gear Segment Magnet
  • 6 - timers ring gearsegment Basic
  • 1 - timers fastholdelsesring Segment Stepper Mount
  • 6 - timers fastholdelsesringssegment Basic
  • 1 - Time Hall Effect Sensor Holder
  • 1 - Minutring Gear Segment Magnet
  • 7 - Minutring gearsegment Basic
  • 1 - Minutrettholdende ringsegment Stepper Mount
  • 6 - Minut tilbageholdende ringsegment Basic
  • 1 - Minute Hall Effect Sensor Holder
  • 2 - Spindel
  • 1 - Elektronikbeslag

Trin 23: Solidworks -filer

Disse er de originale Solidworks -filer, der blev brugt til at oprette STL'erne, der blev fundet i det foregående trin. Du er velkommen til at redigere og ændre mine filer, som du finder passende.

Trin 24: Konklusion

Dette ur viste sig bedre end jeg havde regnet med. Efter at have minimal Arduino -oplevelse er jeg glad for, hvordan det viste sig, og hvor præcist det er. Det ser godt ud og fungerer, som jeg havde håbet.

Anbefalede: