Sadržaj:
- Korak 1: Alati i materijali
- Korak 2: Zalijepite drveni okvir
- Korak 3: Izrežite okvir pomoću kružnog rezača
- Korak 4: Odštampajte i sastavite zupčanike
- Korak 5: Zalijepite dijelove zajedno
- Korak 6: Izrežite reljefe u okviru
- Korak 7: Zazor za Hall -ove senzore
- Korak 8: Zalijepite vanjski prsten
- Korak 9: Izrežite vijke za podešavanje osjetnika Hall efekta
- Korak 10: Zalijepite prstenove na lesonit
- Korak 11: Zalijepite unutrašnji disk
- Korak 12: Pričvrstite furnir
- Korak 13: Obrežite furnir
- Korak 14: Izrežite furnir
- Korak 15: Zalijepite furnir
- Korak 16: Brusite i završite
- Korak 17: Instalirajte Power
- Korak 18: Sastavite elektroniku
- Korak 19: Lemljenje i povezivanje elektronike
- Korak 20: Zadnja ploča
- Korak 21: Arduino kod
- Korak 22: STL datoteke
- Korak 23: Solidworks datoteke
- Korak 24: Zaključak
Video: Očaravajući magnetski zidni sat: 24 koraka (sa slikama)
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Mehanički satovi su me oduvijek fascinirali. Način na koji svi unutarnji zupčanici, opruge i izlazi djeluju zajedno i rezultira konstantnim pouzdanim satom uvijek se činio nedostižnim za moj ograničeni skup vještina. Srećom, moderna elektronika i 3D ispisani dijelovi mogu premostiti jaz kako bi stvorili nešto jednostavno što se ne oslanja na male precizne metalne dijelove.
Ovaj minimalistički zidni sat skriva par 3D štampanih zupčanika sa prstenom pogonjenih jeftinim koračnim motorima koji rotiraju magnete iza klasičnog furnira od oraha.
U početku inspiriran STORY Clock -om, želio sam prikaz vremena koji prikazuje vrijeme u danu koristeći samo kuglične ležajeve u odnosu na digitalno očitavanje i sporo pokretne kuglične ležajeve koje koristi njihov proizvod.
Korak 1: Alati i materijali
Materijali:
- 13 x 13 x 2 inča. Šperploča/Iverica (zalijepio sam 3 komada starog drveta)
- 13 x 13 inča. Tvrda ploča
- Arduino Nano
- Sat u realnom vremenu
- Koračni motori i upravljački programi
- Senzori Hall efekta
- Magneti
- Kabel za napajanje
- AC adapter
- Plug
- Različiti strojni vijci
- Razni vijci za drvo
- 3D štampani dijelovi (posljednji korak)
- Furnir (12 x 12 in. - lice, 40 in. Duga traka)
- Lak u spreju
- Crna boja u spreju
Alati:
- 3D štampač
- Kompas
- X-acto nož
- Ljepilo
- Stezaljke
- Kružni nož za rezanje
- Hack Saw
- Brusilica za diskove
- Ratchet Clamp
- Dlijeto
- Vladar
- Sander
- Bušilice
- Odvijači
- Lemilica
- Pištolj za vruće ljepilo
Korak 2: Zalijepite drveni okvir
Zalijepite tri komada drveta koji će činiti okvir sata. Koristio sam obnovljenu ivericu sa starog okvira kreveta.
Korak 3: Izrežite okvir pomoću kružnog rezača
Označite sredinu ploče i montirajte je na kružni ubodni šablon. Izrežite pet krugova sljedećih promjera:
- 12 in.
- 11 1/4 in.
- 9 1/4 in.
- 7 1/4 in.
- 5 3/8 in.
Korak 4: Odštampajte i sastavite zupčanike
Prstenasti zupčanici su razbijeni na segmente tako da se mogu odštampati na malom štampaču i spojiti zajedno. Svi dijelovi su odštampani na ABS -u radi lakšeg procesa stapanja prikazanog u sljedećem koraku. Brusite sve rubove i površine dijelova.
Odštampajte sljedeće količine dijelova koje ste pronašli u koraku 22:
- 1 - Magnet sa segmentnim zupčanikom za sat
- 6 - Osnovni segment prstenastog zupčanika
- 1 - Stepeni nosač segmenta za zadržavanje prstena
- 6 - Osnovni segment prstena za zadržavanje sata
- 1 - Nosač senzora efekta satne sate
- 1 - Magnet sa minutnim prstenastim zupčanikom
- 7 - Osnovni segment zupčanika sa minutnim prstenom
- 1 - Stepeni nosač segmenta za pričvršćivanje segmenta
- 6 - Osnovni segment prstena za zadržavanje minuta
- 1 - Držač senzora za minutu Hall efekta
- 2 - Zupčasti zupčanik
- 1 - Nosač za elektroniku
Korak 5: Zalijepite dijelove zajedno
U staklenoj bočici s malo acetona otopite stare materijale za podlogu koje nisu uspjele, itd. Obojite smjesu acetona na svakom šavu kako biste spojili dijelove. Nakon što se stvrdne, očistite svaki šav.
Korak 6: Izrežite reljefe u okviru
Postavite prstenaste zupčanike i potporne prstenove u okvir i izrežite rasterećenja za koračne motore. Izmjerio sam i izrezao unutarnji prsten prevelik pa sam ga prilagodio veličini koristeći neke javorove ivice koje sam imao oko trgovine.
Korak 7: Zazor za Hall -ove senzore
Izrežite zračni otvor kroz unutrašnji prsten za senzor efekta minutne hale i otvor za senzor efekta satne sate. Upotrijebio sam dlijeto, turpiju i malu ručnu pilu za rezanje ovih zazora.
Korak 8: Zalijepite vanjski prsten
Zalijepite i zalijepite vanjski prsten veličine minutnog sigurnosnog prstena.
Korak 9: Izrežite vijke za podešavanje osjetnika Hall efekta
Strojne vijke izrežite nožnom pilom tako da budu samo duži od debljine potpornog prstena i držača senzora Hall -ovog efekta. Izrežite prorez u navojima tako da se može podesiti s kraja s navojem ravnim odvijačem.
Korak 10: Zalijepite prstenove na lesonit
Izrežite krug od lesonita samo veći od vanjskog prstena. Zalijepite vanjski i unutarnji prsten na površinu od lesonita. Upotrijebite minutu za pričvršćivanje prstena i zupčanik za postavljanje unutrašnjeg prstena. Obratite veću pažnju nego ja da ne zalijepim unutrašnji prsten unatrag. Slika dva prikazuje novi rez za senzor minutnog efekta Hall -a.
Brusilicom za disk podrežite ivericu do veličine vanjskog prstena.
Korak 11: Zalijepite unutrašnji disk
Zalijepite unutrašnji disk koristeći satni prsten i zupčanik za postavljanje unutrašnjeg diska.
Korak 12: Pričvrstite furnir
Izrežite traku furnira širinu nego što je sat dubok i dovoljno dugačak da ga omotate oko sata (3,14 * promjer sata, vratit će potrebnu dužinu. Dodajte centimetar kako biste bili sigurni da imate dovoljno.) Furnir postavite na suho rezati po dužini. Nanošenje dovoljno ljepila na furnir i pričvrstite ga stezaljkom za remen. Ostavite da se osuši nekoliko sati kako biste osigurali prianjanje.
Korak 13: Obrežite furnir
Oštrim dlijetom odrežite višak furnira sa prednje i stražnje strane sata.
Korak 14: Izrežite furnir
Moj furnir je imao neke pukotine u sebi. Da bih olakšao rad, nanio sam slikarsku traku da je držim zajedno. Pomoću x-acto noža u kompasu izrežite furnir samo veći od prednje strane sata.
Korak 15: Zalijepite furnir
Isključenim prstenovima rasporedite pritisak po prednjoj strani sata. Nanesite dovoljno ljepila na stranu furnira koja nije traka. Orijentirajte zrno okomito na satnu plohu i primijenite mnoge stezaljke zatežući svaku po jednu. To će osigurati da se furnir ne pomiče i ima ravnomjeran pritisak po licu.
Koristio sam nekoliko ravnih dasaka na prednjoj strani sata i nekoliko kalupa na stražnjoj strani.
Korak 16: Brusite i završite
Pomoću brusnog papira pažljivo uklonite višak furnira sa prednje strane sata i izbrusite od 220 zrna do 600 zrna.
Nanesite između 10 i 20 slojeva laka. To će izgraditi površinu po kojoj će kuglični ležaj voziti. Neizbježno zbog prašine i drugih čestica u zraku, mislim da će se linije pojaviti na putu svakog kugličnog ležaja. Nanošenje više slojeva završne obrade treba ovo odgoditi što je duže moguće. To će također olakšati buduće dorađivanje. Ažuriraću ovaj korak ako se na satu ikada pojave linije.
Korak 17: Instalirajte Power
Svrdlom od 27/64 inča izbušite rupu na dnu sata i uvrnite utikač na mjesto.
Korak 18: Sastavite elektroniku
Priključite upravljačke programe koraka i sat u stvarnom vremenu na elektroničku ploču. Morao sam pronaći način da osiguram Arduino, pa su izbušene rupe i izrezan utor za zatvarač. Ove značajke su dodane u datoteku koja se nalazi u koraku 22.
Korak 19: Lemljenje i povezivanje elektronike
Slijedeći blok dijagram, lemite sve komponente zajedno. Vruće zalijepite prstenove na mjesto i pričvrstite sve zalutale žice vrućim ljepilom.
Korak 20: Zadnja ploča
Napravite stražnju ploču tako što ćete izrezati drugi krug za 1/2 inča veći od prednje strane sata i prsten čiji je unutrašnji promjer isti kao stražnji dio sata. Zalijepite prsten i krug zajedno s nekim opružnim stezaljkama.
Nakon što se osuši, ispišite liniju 1/8 inča veću od unutrašnjeg prstena i obrežite je pomoću tračne pile ili brusilice.
Izrežite utor 1 inča dugačak 1/4 inča širok na vrhu stražnje strane pomoću glodalice ili svrdla. Upuštanje četiri rupe za pričvršćivanje stražnje strane u okvir sata.
Nanesite crnu boju u spreju i pričvrstite je na sat kada se osuši.
Korak 21: Arduino kod
Arduino kôd je komentiran što je bolje moguće. Imajte na umu da ja nisam programer, imam minimalno arduino iskustvo (budite ljubazni). Kôd se neprestano provjerava da li se trenutno vrijeme podudara s "Reset Time". Budući da nisam mogao smisliti način da prevedem trenutno vrijeme u korake, ono se ispravlja samo jednom dnevno (prema zadanim postavkama ponoć). U ponoć zupčanici se okreću u ponoćni položaj, zatim čekaju do 00:01 prelaskom na to vrijeme, a zatim nastavljaju odatle. Kako trenutno sjedi, sat gubi samo oko 5 sekundi u periodu od 24 sata.
Trebat će vam instalirane biblioteke Stepper i RTClib.
Znam da kôd može optimizirati neko s više iskustva od mene. Ako ste dorasli izazovu, molimo vas da za sebe ponovo stvorite ovaj projekt i podijelite svoje znanje.
#include
#include "RTClib.h" RTC_DS1307 rtc; #define oneRotation 2038 // broj koraka u jednom okretu od 28BYJ-48 koračnog motora Stepper hourHand (oneRotation, 3, 5, 4, 6); Stepper minuteHand (oneRotation, 7, 9, 8, 10); #define hourStopSensor 12 #define minuteStopSensor 11 int endStep = 0; // Vrijeme određeno za brzinu sata. int setDelay1 = 168; int setDelay2 = 166; int setDelay3 = 5; // Trenutno vrijeme za matematiku. plovak hr = 0; plovak mn = 0; plovak sc = 0; // Podesite doba dana za resetovanje sata (24 -časovni format). int resetHour = 0; int resetMinute = 0; // Varijable za postavljanje ispravnog vremena pri pokretanju i resetiranju. float setTimeStepHour = 0; float setTimeStepMinute = 0; float handDelay = 0; float hourTest = 0; float minuteTest = 0; void setup () {Serial.begin (115200); // Postavljanje sata u stvarnom vremenu i resetiranje senzora Hall efekta. pinMode (hourStopSensor, INPUT_PULLUP); pinMode (minuteStopSensor, INPUT_PULLUP); rtc.begin (); // Uncomment line ispod za postavljanje vremena. // rtc.adjust (DateTime (2020, 2, 19, 23, 40, 30)); // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Podesite najveću brzinu koračnih motora. hourHand.setSpeed (15); minuteHand.setSpeed (15); // Petlja do minute i sata u podne while (digitalRead (hourStopSensor) == LOW || digitalRead (minuteStopSensor) == LOW) {if (digitalRead (hourStopSensor) == LOW) {hourHand.step (2); } else {kašnjenje (3); } if (digitalRead (minuteStopSensor) == LOW) {minuteHand.step (3); } else {kašnjenje (4); }} while (digitalRead (hourStopSensor)! = LOW || digitalRead (minuteStopSensor)! = LOW) {if (digitalRead (hourStopSensor)! = LOW) {hourHand.step (2); } else {kašnjenje (3); } if (digitalRead (minuteStopSensor)! = LOW) {minuteHand.step (3); } else {kašnjenje (4); }} // Sada dobijemo trenutno vrijeme DateTime = rtc.now (); hr = now.hour (); mn = now.minute (); sc = now.second (); // Promijenite u 12 -časovni format if (hr> = 12) {hr = hr - 12; } // Pogledajte koja ruka mora dalje prijeći preko lica i upotrijebite tu udaljenost // da biste u skladu s tim prilagodili postavljeno vrijeme. hourTest = hr / 12; minuteTest = mn / 60; if (hourTest> minuteTest) {handDelay = hourTest; } else {handDelay = minuteTest; } // Postavi trenutni sat setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Postavljanje trenutne minute setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Testirajte kojoj će ruci biti potrebno više koraka i postavite je na najduži broj koraka for petlje. if (setTimeStepHour> setTimeStepMinute) {endStep = setTimeStepHour; } else {endStep = setTimeStepMinute; } za (int i = 0; i <= endStep; i ++) {if (i <setTimeStepHour) {hourHand.step (2); } else {kašnjenje (3); } if (i <setTimeStepMinute) {minuteHand.step (3); } else {kašnjenje (4); }} // Postavi sat radi RPM hourHand.setSpeed (1); minuteHand.setSpeed (1); } void loop () {// Pokretanje petlje sata. za (int i = 0; i <22; i ++) {minuteHand.step (1); delay (setDelay1); // Testiraj vrijeme resetiranja, ako je spreman za resetiranje, prekini. if (rtc.now (). hour () == resetHour && rtc.now (). minute () == resetMinute) {break; }} kašnjenje (setDelay3); for (int i = 0; i <38; i ++) {hourHand.step (1); delay (setDelay1); // Testiraj vrijeme resetiranja, ako je spreman za resetiranje, prekini. if (rtc.now (). hour () == resetHour && rtc.now (). minute () == resetMinute) {break; } za (int i = 0; i <20; i ++) {minuteHand.step (1); delay (setDelay2); // Testiraj vrijeme resetiranja, ako je spreman za resetiranje, prekini. if (rtc.now (). hour () == resetHour && rtc.now (). minute () == resetMinute) {break; }}} // Vraćanje sata na vrijeme resetiranja if (rtc.now (). Hour () == resetHour && rtc.now (). Minute () == resetMinute) {// Promjena brzine sata hourHand.setSpeed (10); minuteHand.setSpeed (10); // Petlja do minute i kazaljke sata do podneva. while (digitalRead (hourStopSensor) == LOW || digitalRead (minuteStopSensor) == LOW) {if (digitalRead (hourStopSensor) == LOW) {hourHand.step (2); } else {kašnjenje (3); } if (digitalRead (minuteStopSensor) == LOW) {minuteHand.step (3); } else {kašnjenje (4); }} while (digitalRead (hourStopSensor)! = LOW || digitalRead (minuteStopSensor)! = LOW) {if (digitalRead (hourStopSensor)! = LOW) {hourHand.step (2); } else {kašnjenje (3); } if (digitalRead (minuteStopSensor)! = LOW) {minuteHand.step (3); } else {kašnjenje (4); }} // Sačekajte ovde dok ne prođe vreme za resetovanje. while (rtc.now (). minute () == resetMinute) {odgoda (1000); } // Sada dobijemo trenutno vrijeme DateTime = rtc.now (); hr = now.hour (); mn = now.minute (); sc = now.second (); // Promijenite u 12 -časovni format if (hr> = 12) {hr = hr - 12; } // Pogledajte koja ruka mora dalje prijeći preko lica i upotrijebite tu udaljenost // da biste u skladu s tim prilagodili postavljeno vrijeme. hourTest = hr / 12; minuteTest = mn / 60; if (hourTest> minuteTest) {handDelay = hourTest; } else {handDelay = minuteTest; } // Postavi trenutni sat setTimeStepHour = (hr * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // Postavljanje trenutne minute setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // Testirajte kojoj će ruci biti potrebno više koraka i postavite je na najduži broj koraka for petlje. if (setTimeStepHour> setTimeStepMinute) {endStep = setTimeStepHour; } else {endStep = setTimeStepMinute; } za (int i = 0; i <= endStep; i ++) {if (i <setTimeStepHour) {hourHand.step (2); } else {kašnjenje (3); } if (i <setTimeStepMinute) {minuteHand.step (3); } else {kašnjenje (4); }} hourHand.setSpeed (1); minuteHand.setSpeed (1); }}
Korak 22: STL datoteke
Morat ćete odštampati sljedeće količine datoteka:
- 1 - Magnet sa segmentnim zupčanikom za sat
- 6 - Osnovni segment prstenastog zupčanika
- 1 - Stepeni nosač segmenta za zadržavanje prstena
- 6 - Osnovni segment prstena za zadržavanje sata
- 1 - Nosač senzora efekta satne sate
- 1 - Magnet sa minutnim prstenastim zupčanikom
- 7 - Osnovni segment zupčanika sa minutnim prstenom
- 1 - Stepeni nosač segmenta za pričvršćivanje segmenta
- 6 - Osnovni segment prstena za zadržavanje minuta
- 1 - Držač senzora za minutu Hall efekta
- 2 - Zupčasti zupčanik
- 1 - Nosač za elektroniku
Korak 23: Solidworks datoteke
Ovo su izvorne datoteke Solidworks korištene za kreiranje STL -ova pronađenih u prethodnom koraku. Slobodno uređujte i mijenjajte moje datoteke po vašem nahođenju.
Korak 24: Zaključak
Ovaj sat je ispao bolje nego što sam očekivao. S minimalnim Arduino iskustvom, drago mi je kako je to ispalo i koliko je precizno. Izgleda odlično i funkcionira kako sam se nadao.