Innholdsfortegnelse:

Planetary Gear Clock: 6 trinn (med bilder)
Planetary Gear Clock: 6 trinn (med bilder)

Video: Planetary Gear Clock: 6 trinn (med bilder)

Video: Planetary Gear Clock: 6 trinn (med bilder)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Juli
Anonim
Planetary Gear Clock
Planetary Gear Clock
Planetary Gear Clock
Planetary Gear Clock
Planetary Gear Clock
Planetary Gear Clock

(Gamle) mekaniske urverk er utrolig interessante og behagelige å se, men er dessverre nesten umulig å bygge selv. Mekaniske klokker mangler også uforsiktigheten til den presise digitale teknologien som er tilgjengelig i dag. Denne instruksjonsfilen viser deg en måte å kombinere det beste fra begge verdener; ved å kjøre mekaniske klokkehender gjennom en planetgir med en trinnmotor og en Arduino!

Rekvisita

Generelle komponenter:

  • 5 mm tre og akrylark
  • M5 bolter (forsenket), skiver og muttere
  • PCB -avstand
  • M3 skruer for trinnmotoren

Elektriske komponenter:

  • Stepper driver (jeg brukte L293d)
  • Enhver type Arduino
  • Sanntidsklokke (jeg brukte DS3231)
  • Hall effect sensor (jeg brukte A3144)
  • 5 mm neodium magnet
  • Knapper for brukerinngang
  • 10K motstand
  • 100uf 25V kondensator
  • DC -kontakt
  • 5V 2A likestrømforsyning
  • Batteri til RTC (cr2032 i mitt tilfelle)

Mekaniske komponenter:

  • Enhver type trinnmotor på 1,8 grader/trinn med 5 mm aksel
  • GT2 400 mm registerreim
  • GT2 60 tann 5mm aksel remskive
  • GT2 20 tann 5mm aksel remskive
  • 5x16x5 mm lager (3x)
  • 5x16x5 mm flenslager (2x)
  • M5x50 gjengestang

Trinn 1: Designe og lage tannhjul

Image
Image
Design og lage tannhjul
Design og lage tannhjul
Design og lage tannhjul
Design og lage tannhjul

Et av målene med dette prosjektet var å ha en motor som driver hele klokken, i likhet med en ekte mekanisk klokke der en rømningsmekanisme driver hele klokken. Minuttviseren må imidlertid gjøre 12 rotasjoner i den tiden timeviseren gjør 1 rotasjon. Dette betyr at en 1:12 reduksjonsgirkasse er nødvendig for å kjøre begge hender med en motor. Jeg bestemte meg for å gjøre dette med en planetgirkasse, den medfølgende videoen forklarer vakkert hvordan denne typen girkasser fungerer.

Det neste trinnet for meg var å bestemme tanntellingen for de forskjellige girene for å lage et forhold på 1:12. Dette nettstedet var veldig nyttig og inneholder alle nødvendige formler. Jeg festet solutstyret til minuttviseren og planetbæreren til timeviseren, og la ringgiret stå stille. La oss regne litt!

  • S = antall tenner på solutstyret
  • R = antall tenner på ringgiret
  • P = antall tenner på planetgiret

Utvekslingsforholdet (i) bestemmes av:

i = S/R+S

Vær oppmerksom på at antall tenner på planetgiret ikke spiller noen rolle for girforholdet i dette tilfellet, men vi må respektere den generelle begrensningen:

P = (R - S)/2

Etter litt forvirring endte jeg opp med å bruke følgende tall: S = 10; R = 110; P = 50; Det ser ut til å være på kanten av det som er mulig siden det er veldig liten klaring mellom planetgirene, men det fungerer!

Du kan tegne tannhjulene i ditt favoritt CAD -program, de fleste av dem har spesielle plugins. Du kan også bare bruke filene som er vedlagt denne instruksjonsboken. selvfølgelig. Vær oppmerksom på at alle gir, selv om de er forskjellige i størrelser, har samme tannhelling.

Jeg trodde det ville være fantastisk å lage disse tannhjulene av 5 mm aluminium og kontaktet en lokal butikk med en vannstråle hvis de kunne kutte disse tannhjulene for meg. Normalt ville du aldri lage tannhjul med vannkuttere, men dette er gir med lav ytelse. Overraskende ble de enige om å prøve, men denne planen mislyktes fryktelig. Delene var ganske enkelt for små for vannstrålen og begynte å bevege seg mens den skjærte.

Dette tilbakeslaget betydde at det var på tide med plan B, så jeg kjøpte litt 5 mm røyk svart akryl og fant et sted med en laserskjærer, som ikke hadde problemer med å kutte tannhjulene mine. Hvis du ikke har en laserskjærer tilgjengelig, kan du sannsynligvis også bruke en 3D-skriver for disse tannhjulene, jeg inkluderte STL-filene (ringgiret må kanskje deles i 3 deler).

Etter kutting presser jeg monterte lagre inn i planetgirene. For å få passformen laget jeg et prøvebit av akryl med flere hull som hver hadde en litt større diameter (0,05 mm trinn). Etter å ha funnet innstillingen med riktig passform endret jeg hullstørrelsen i planetgirene til denne innstillingen. Dette er noe som er forskjellig med materiale og maskintype, så du bør alltid gjøre dette selv.

Trinn 2: Montering av girsystemet

Montering av girsystemet
Montering av girsystemet
Montering av girsystemet
Montering av girsystemet
Montering av girsystemet
Montering av girsystemet
Montering av girsystemet
Montering av girsystemet

For å montere tannhjulene er klokkens ramme nødvendig. Nå er dette delen hvor du kan la kreativiteten gå vilt siden formen på rammen er relativt uviktig så lenge alle bolthullene er på rett sted. I Valgte å lage mange hull i skiven og bakplaten for å understreke girmekanismen. Dette er også grunnen til at planetbærerne og minuttviseren er gjennomsiktige, men det ser også kult ut!

Jeg brukte nok en gang laserskjæreren til å lage disse delene, og siden akryldelene var 5 mm tykke, gjorde jeg også tredelene 5 mm tykke. Alle hullene i skiven og planetbæreren var forsenket for å passe til matchende bolter.

Klokkens sentrale aksel går i to lagre inne i planetbærerne. Siden jeg laget denne akselen fra 5 mm stang, har den en veldig tett passform inne i lagrene, og jeg klarte ikke å demontere disse komponentene lenger. Det ville være mye lettere å bare bruke et stykke M5 -tråd siden du heller ikke trenger å kutte din egen tråd lenger (hvis jeg bare skjønte det på forhånd …). For å stoppe solhjulet fra å rotere rundt akselen, har det et D-formet hull, så akselen må også arkiveres i denne D-formen. Når solutstyret passer rundt akselen kan du montere akselen, ikke glem planetbærerne hvis du bruker flenslagre! Sjekk den eksploderte visningen for monteringsinstruksjoner.

Når den sentrale aksen er montert, er tiden inne for planeten. Disse trenger også de små skivene, akkurat som midtakselen, for å sikre at girene går jevnt. Når alt er montert på planetbærerne, sjekk om planetgirene og solutstyret går jevnt.

Den sentrale delen kan nå monteres i klokkerammen. Dette er en kjedelig jobb, men å stikke boltene gjennom frontplaten og teipe dem på plass hjelper mye. Det kan også være nyttig å heve frontplaten for å skape plass til minuttviseren. Bildene viser at jeg plasserte seks små stykker papir mellom girringen og bakplaten for å gi litt klaring for tannhjulene. Når du setter inn planetbæreren, må du kontrollere at skivene peker på et fornuftig sted (hvis minuttviseren peker på 12, bør timeviseren ikke være mellom to timer med eksempel)

Trinn 3: Koble til trinn og sensor

Koble til trinn og sensor
Koble til trinn og sensor
Koble til trinn og sensor
Koble til trinn og sensor
Koble til trinn og sensor
Koble til trinn og sensor
Koble til trinn og sensor
Koble til trinn og sensor

Nå som vi har en girmekanisme som driver hendene riktig, må vi fremdeles kjøre girmekanismen riktig. Ulike typer elektriske motorer kan brukes, jeg valgte en trinnmotor siden den kan gjøre presise bevegelser uten konstant vinkel tilbakemeldingssensorer. En trinnmotor kan også lage en ekte "klikk" -lyd, noe som er flott for den halvmekaniske klokken!

En vanlig trinnmotor kan gjøre 200 trinn per omdreining, noe som betyr 200 trinn i timen hvis vi kobler den til minuttviseren. Dette vil bety et intervall på 18 sekunder per trinn, som ennå ikke høres ut som en tikkende klokke. Derfor brukte jeg en 1: 3 -overføring mellom trinnmotoren og minuttviserne, slik at trinnmotoren må gjøre 600 trinn per time. Ved å bruke halvtrinnsmodusen kan dette økes til 1200 trinn per time, noe som tilsvarer ett trinn per 3 sekunder. Høres bedre ut!

Et problem med trinnmotorer er at du aldri vet hvor de er når du slår på Arduino. Dette er grunnen til at alle 3D-skrivere har endestopp, slik at du kan flytte skriveren til en kjent posisjon og deretter fortsette fra det punktet. Dette er også nødvendig for klokken, bare en stopp stopper ikke, siden en klokke skal gjøre kontinuerlige rotasjoner. For å realisere denne posisjonsfølelsen brukte jeg en A3144 Hall-effekt sensor som registrerer en magnet (sjekk polariteten! …) festet til planetbæreren. Dette brukes til å flytte hendene til en bestemt posisjon ved oppstart, hvoretter de kan flytte til den nødvendige tiden.

Montering er veldig enkel; Fest trinnmotoren til bakplaten, og la skruene være litt løse. Deretter kan du montere den lille remskiven på trinnmotorakselen og kontrollere om tannremmen går rett. Nå kan du skyve trinnmotoren for å justere spenningen på tannremmen. Tannbeltet trenger litt spill for å sikre at du ikke legger noe stress på girene. Spill med denne innstillingen til du er fornøyd, og stram deretter skruene på trinnmotoren helt.

Hall-effekt-sensoren er limt på plass. Det er best å lodde tre ledninger til sensoren først, og sørg for å sette varmekrymping rundt hvert ben på sensoren, slik at de ikke kan kortere hverandre. Etter lodding kan sensoren limes på plass. Det spiller egentlig ingen rolle hvilken side som er opp, så lenge du ikke har festet magneten ennå. Etter at du har limt sensoren på plass, kobler du den til en Arduino eller en liten LED -krets for å teste om den fungerer. (MERK: hall -effektsensoren fungerer bare hvis magnetfeltlinjene går i riktig retning). Ved hjelp av denne testkretsen må du kontrollere hvordan magneten skal limes. Når du er helt sikker på hvilken side av magneten som skal vende mot sensoren, limer du magneten på plass.

Trinn 4: Elektronikken som får klokken til å krysse av

Elektronikken som får klokken til å krysse
Elektronikken som får klokken til å krysse
Elektronikken som får klokken til å krysse
Elektronikken som får klokken til å krysse
Elektronikken som får klokken til å tikke
Elektronikken som får klokken til å tikke
Elektronikken som får klokken til å krysse
Elektronikken som får klokken til å krysse

Du kan bruke en veldig enkel Arduino -kode som tar et halvt trinn med motoren og deretter tar en forsinkelse på 3000 millisekunder til neste trinn. Dette ville fungere, men det er ikke veldig presist siden den interne Arduino -klokken ikke er ekstremt nøyaktig. For det andre ville Arduino glemme tiden hver gang den mister strømmen.

For å holde styr på tiden er det derfor best å bruke en sanntidsklokke. Disse tingene er spesialdesignede chips med et reservebatteri som nøyaktig holder oversikt over tiden. For dette prosjektet valgte jeg DS3231 RTC som kan kommunisere med en Arduino via i2c, noe som gjør ledningen enkel. Når du har angitt tiden riktig på brikken, vil den aldri glemme hva klokken er (så lenge cr2032 -batteriet har litt juice igjen). Sjekk ut dette nettstedet for alle detaljer om denne modulen.

Å kjøre trinnmotoren gjøres med en L293d -motorfører. Noen mer avanserte trinnmotordrivere bruker et PWM-signal for mikro-trinning og strømbegrensning. Dette PWM -signalet kan lage den irriterende pipelyden som hver produsent er kjent med (spesielt hvis du eier en 3D -skriver). Siden denne klokken skal bli en del av interiøret ditt, er ikke stygge lyder ønskelig. Derfor bestemte jeg meg for å bruke den lavteknologiske l293d-motorføreren for å sikre at klokken min er stille (foruten trinnet hvert 3. sekund, men det er faktisk hyggelig!). Sjekk ut dette nettstedet for en detaljert beskrivelse av l293d -brikken. Vær oppmerksom på at jeg kjører steppermotoren min på 5V, noe som senker strømforbruket og temperaturen på trinnmotoren.

Som nevnt tidligere bruker jeg en Hall-effekt sensor til å oppdage en magnet limt til planetbæreren. Sensorens driftsprinsipp er veldig enkelt, det endrer tilstand når en magnet er nær nok. På denne måten kan Arduino oppdage en digital høy eller lav og derfor oppdage om en magnet er i nærheten. Sjekk ut dette nettstedet som viser hvordan du kobler sensoren og viser den enkle koden som brukes til magnetdeteksjon.

Sist, men ikke minst, la jeg til 4 knapper for brukerinngang til PCB. De bruker Arduino interne pull-up motstander for å forenkle ledningene. Min PCB har også overskrifter i en Uno -konfigurasjon, så jeg kan legge til Arduino -skjold for mulige utvidelser (jeg har ikke gjort dette så langt).

Jeg testet først alt på brødbrettet mitt, og så designet og bestilte jeg en tilpasset PCB for dette prosjektet, siden det ser fantastisk ut! Du kan også montere kretskortet på baksiden av klokken hvis du ikke vil se på det.

Gerber -filene for PCB kan lastes ned fra stasjonen min, Instructables lar meg ikke laste dem opp av en eller annen grunn. Bruk denne lenken til min Google -stasjon.

Trinn 5: Programmering av Arduino

Programmering av Arduino
Programmering av Arduino

Den grunnleggende koden for Arduino er faktisk veldig enkel. Jeg har vedlagt et opplegg som visualiserer hva som skjer inne i Arduino og hvordan Arduino grensesnittet med de andre enhetene. Jeg brukte flere bibliotek for å forenkle kodingen.

  • Accelstepper -> håndterer trinnsekvensen til trinnmotoren, lar deg gi intuitive kommandoer som: Stepper.runSpeed () eller Stepper.move () som lar deg bevege seg med en bestemt hastighet eller til en bestemt posisjon.
  • Wire -> dette er nødvendig for i2c -kommunikasjon, selv når du bruker RTClib
  • RTClib -> håndterer kommunikasjonen mellom Arduino og RTC, lar deg gi intuitive kommandoer som rtc.now () som returnerer gjeldende tid.
  • OneButton -> Håndterer knappinngangen, oppdager trykk og kjører deretter et forhåndsspesifisert tomrom for å gjøre noe. Kan oppdage enkelt, dobbelt eller langt trykk.

Når du skriver kode for en klokke, er det veldig viktig å unngå å ha variabler som fortsetter å øke. Siden Arduino -koden vil kjøre 24/7, vil disse variablene raskt bli større og større og til slutt føre til et overløp. Stepper motoren er for eksempel aldri befalt å gå til en bestemt posisjon, siden denne posisjonen bare ville øke over tid. I stedet beordres trinnmotoren til å bevege et visst antall trinn i en bestemt retning. På denne måten er det ingen posisjonsvariabel som øker over tid.

Første gang du kobler til RTC du trenger for å angi tiden for brikken, er det et stykke kode du kan fjerne en kommentar som setter RTC -tiden lik datamaskinens tid (tidspunktet for øyeblikket du kompilerer koden). Vær oppmerksom på at når du lar dette være ukommentert, blir RTC -tiden tilbakestilt til tidspunktet da du kompilerte koden din hver gang. Så ikke kommenter dette, kjør det en gang og kommenter det igjen.

Jeg festet koden min til denne instruksjonsboken, jeg kommenterte den grundig. Du kan laste den opp uten noen endringer eller sjekke den ut og se hva du synes!

Trinn 6: Nyt lyden av klokken som tikker for første gang

Image
Image

Etter å ha koblet til all elektronikk og lastet opp koden, er dette resultatet!

Den grunnleggende utformingen av denne klokken er veldig enkel, og den kan lages i mange forskjellige former og størrelser. Siden det er en Arduino ombord kan du også enkelt legge til ekstra funksjoner. Når du setter en alarm, får du klokken til å slå på kaffemaskinen din på et bestemt tidspunkt, internettilkobling, kule demomoduser som fremhever den mekaniske bevegelsen for å vise designet ditt til andre og mye mer!

Som du kanskje har lagt merke til i hele denne instruksjonsboken, måtte jeg ta klokken fra hverandre for å skrive denne instruksen. Selv om det er uheldig for denne instruksjonsfulle, kan jeg i det minste garantere at designen fungerer veldig bra på lang sikt, siden denne klokken har tikket bort i mer enn 3 år i stua min uten problemer!

Gi meg beskjed i kommentarene hvis du likte denne Instructable, det er første gang jeg skriver en. Også hvis du har tips eller spørsmål, bare send meg en melding. Og håper jeg inspirerte noen til også å bygge en halvmekanisk klokke en dag!

Klokker konkurranse
Klokker konkurranse

Førstepremie i urkonkurransen

Anbefalt: