INHOUDSOPGAWE:

NeoClock: 7 stappe (met foto's)
NeoClock: 7 stappe (met foto's)

Video: NeoClock: 7 stappe (met foto's)

Video: NeoClock: 7 stappe (met foto's)
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, September
Anonim
Image
Image

Dit gaan oor die bou van 'n horlosie met behulp van die fantastiese neopixelringe van Adafruit. Die lekker ding van hierdie horlosie is dat dit eintlik twee ringe neopixels het, een om die ure te vertel en een vir die minute, sekondes en millisekondes. Die klok hou die perfekte tyd met behulp van die DS3234 DeadOn Real Time Clock -chip van Sparkfun. Maklik om te bou en lekker om aan te pas. My hoop is dat dit ander sal inspireer om horlosies of ander kuns te bou met behulp van die neopixelringe.

Vir diegene onder u wat al my lêers in 'n eenvoudig bestuurbare formaat wil aflaai, laai dit gerus af van my github -bewaarplek vir hierdie projek op

Stap 1: Ontwerp die horlosie

Ontwerp van die klok
Ontwerp van die klok
Ontwerp van die klok
Ontwerp van die klok
Ontwerp van die klok
Ontwerp van die klok
Ontwerp van die klok
Ontwerp van die klok

Ek het van die begin af geweet dat ek ten minste twee ringe neopixels wou gebruik. Na 'n bietjie werk het ek besluit die beste ontwerp sou wees om een ring binne -in die ander te hê, wat die oorspronklike vorm van 'n horlosie behou. Die kleiner ring sou die ure wees en die oorblywende tyd op die groter ring gehou word. Sommige ontwerpoorwegings sluit in die koste van die neopixels, die kragvereiste, die grootte van die lasersnitstukke en watter soort kuns ek daarop wil plaas.

Met hierdie stap voltooi het ek besluit dat ek die elektronika moet verstaan voordat ek die planne opstel om die horlosie met laser te sny.

Stap 2: Ontwerp die elektronika

Die ontwerp van die elektronika
Die ontwerp van die elektronika
Die ontwerp van die elektronika
Die ontwerp van die elektronika
Die ontwerp van die elektronika
Die ontwerp van die elektronika
Die ontwerp van die elektronika
Die ontwerp van die elektronika

Die ontwerp van die elektronika het geleer om vooraf die elemente te weet wat ek op die klok wou hê:

  • Neopixel ringe (60 tellings en 24 tellings)
  • Arduino (die brein)
  • Klokregulering (arduino's hou nie tyd nie)
  • Kragbestuur

Die grootte en kragvereistes van die neopixels is goed gedokumenteer. Aangesien hulle op 5V DC werk, het ek besluit om met 'n 5V Arduino te gaan en dinge vir myself makliker te maak. Omdat ruimte in ag geneem word, het ek besluit om 'n gewone Arduino Uno te prototipe, maar vir die finale elektronika het ek 'n Arduino Mini gekies.

Die eerste herhaling van hierdie projek kom direk vanaf Adafruit se NeoPixel Basic Connections -bladsy. Ek het die diagram van die webwerf ingesluit om dinge makliker te maak. Twee dinge is hieruit belangrik:

  1. 'N 1000uF kapasitor is nodig om te voorkom dat die aanvanklike stroomstoot die pixels beskadig.
  2. 'N Weerstand van 470ohm is nodig op die eerste pixel van die 60 telring (hierdie weerstand is ingebou in die 24 telring)

Adafruit het ook 'n reeks beste praktyke van NeoPixel wat u moet lees voordat u met die ontwerp voortgaan.

Dit is 'n ander probleem om tyd op die klok te hou. Die ingeboude horlosie op die arduino is nie voldoende om oor lang tye goeie tyd te hou nie. 'N Erger probleem is dat die tyd op die arduino elke keer nodig moet wees. Rekenaars los hierdie probleem op deur 'n klein battery op die klokskyfie te gebruik om tyd tussen kragonderbrekings te hou. In die verlede sou ek iets soos die ChronoDot van Adafruit gebruik. Maar in hierdie geval wou ek 'n verskoning hê om die DS3234 (DeadOn RTC) van SparkFun te gebruik. U kan ook datuminligting op die DeadOn RTC hou as u dit in die klok wil integreer.

Uiteindelik het die kragbestuur 'n bietjie oorweging nodig gehad. Ek het al geweet dat alles 5V moet wees, maar die hoeveelheid stroom wat benodig word, blyk 'n raaisel te wees. 'N Algemene spanningsreguleerder in die meeste projekte is die L7805. Dit neem spanning tot 24V en 'n maksimum stroom tot 1,5A. Ek het geweet ek het 'n 12V 1.5A muurwortel, en ek het besluit dat dit die perfekte (en goedkoop!) Spanningsreguleerder vir die projek sou wees.

Die oorblywende stukke kom uit my boks met onderdele of Radio Shack. Dit bevat die drade, skakelaars en DC -aansluiting.

Stap 3: Bou die elektronika

Die bou van die elektronika
Die bou van die elektronika
Die bou van die elektronika
Die bou van die elektronika
Die bou van die elektronika
Die bou van die elektronika

'N Volledige lys van die elektronika wat ek gekoop het om hierdie projek te bou, kan u vind in my github -bewaarplek hier: Electronics Parts List. Dit bevat skakels na die produkbladsy vir elke stuk en bevat ekstra inligting, insluitend die produk -SKU. Ek het dit vinnig op 'n broodbord prototipe gemaak en na die lasersny en -bou gegaan voordat ek foto's geneem het. Ek het dit egter so gebou dat dit maklik is om uitmekaar te haal, so ek het die stukke op die foto's hierbo vir u afgebreek.

Kyk noukeurig na die beelde, aangesien die drade doelbewus gebuig is om maklik te volg en om die hele profiel van die elektronika dun te hou. Deur hierdie aanvanklike prototipe te doen voor die ontwerp van die lasersnit, kon ek die dikte van die dele nagaan, sodat ek die finale afmetings van die horlosie kon agterkom.

U sal sien dat ek 'n paar pasgemaakte broodborde gemaak het. Ek het probeer om foto's van die agterkant van die borde te neem, sodat u dit kan herhaal. U kan 'n verskeidenheid broodborde soos hierdie vir 'n paar dollar koop en dit laat pas by u projek.

Die bedrading is reguit, maar die belangrikste dinge om uit die beelde te onthou, is die volgende:

  • Die modus- en stelskakelaars benodig weerstande. Ek het 2.21Ohm -weerstande wat ek gehad het, gebruik, maar enige klein weerstand werk (verkieslik nie minder as 1kOhm nie). Dit stabiliseer die gekoppelde Arduino -invoerpenne, sodat wanneer dit hoog word, dit van die geraas onderskei kan word.
  • Die vierkantgolf (SQW) op die DS3234 is gegrond omdat dit nie gebruik word nie.
  • Die krag van die L7805 word in die Arduino Mini in 'n RAW -pen ingesit. Sit altyd die krag wat in die Arduino kom, in RAW.
  • Die eerste pixel van die 60 neopixelring het 'n weerstand van 470 Ohm om enige skade aan die eerste pixel as gevolg van data -spykers te verminder. Dit behoort nie 'n probleem te wees nie, aangesien die neopixel van 24 tellings reeds 'n ingeboude weerstand hiervoor het, maar beter as om te vergewe.
  • Die modus- en stel -skakelaars is kortstondige drukknoppies -skakelaars van SPST

Draadkleure is:

  • Rooi: +5VDC
  • Swart: Grond
  • Groen: Data
  • Geel, blou, wit: spesiale drade vir DS3234

As dit die eerste keer is dat u neopixels gebruik, moet u onthou dat dit as 'n lang ketting beskou kan word. Dit lyk miskien vreemd om oor 'n 'eerste pixel' in 'n ring te praat, maar eintlik is daar 'n begin en einde vir elke ketting in die ringe. In hierdie projek kom die 24 pixels van die klein ring eerste en die 60 pixels van die groter ring kom daarna. Dit beteken regtig dat ek 'n ketting van 84 neopixels het.

Vir bedrading op die Arduino Mini:

  • DS3234 verbind op penne 10 - 13
  • Die modus- en stelskakelaars is op penne 2 en 3
  • Die neopixel -data kom van pen 6.

Ek beveel ook aan om die 6 kopstukke onderaan die Arduino Mini te plaas, sodat u dit via 'n FTDI -kabel kan programmeer.

'N Belangrike opmerking oor die stroom: hierdie klok benodig baie. Ek is seker ek sou dit kon regkry, maar my praktiese ervaring is dat enigiets gelykstaande aan of minder as 500mA uiteindelik bruinuitslag sal veroorsaak. Dit manifesteer as die horlosie gekke kleure knip en nie tyd hou nie. My laaste muurwortel is 12V en 1.5A, en ek het nog nooit bruin gekry nie. 1.5A is egter die limiet wat die spanningsreguleerder (en ander dele) sal neem. Moet dus nie hierdie bedrag oorskry nie.

Stap 4: Kodering van die horlosie

Kodering van die klok
Kodering van die klok

Die volledige kode vir die klok kan gevind word in die NeoClock -kode op GitHub. Ek het die lêer hier ingesluit, maar daar sal enige veranderinge in die bewaarplek plaasvind.

Ek vind die skryf van kode kan afskrikwekkend wees as u alles tegelyk probeer doen. In plaas daarvan, probeer ek om uit 'n werkende voorbeeld te begin en funksies uit te bou soos ek dit nodig het. Voordat ek daarop ingaan, wil ek daarop wys dat my kode die gevolg is deur 'n kombinasie van baie voorbeelde uit die volgende bewaarplekke en die Arduino CC -forum. Gee altyd krediet waar dit verskuldig is!

  • https://github.com/adafruit/Adafruit_NeoPixel
  • https://github.com/zeroeth/time_loop
  • https://github.com/sparkfun/DeadOn_RTC

'N Paar voorbeeldkodes uit hierdie bewaarplekke kan gevind word in my gids met voorbeelde van kode

Die volgorde van bewerkings waarmee ek die kode opgebou het, was ongeveer soos volg:

  • Bevestig dat neopixels werk met die Strand Test -voorbeeld
  • Probeer om 'n horlosie te laat loop met die Time Loop -kode
  • Pas die klok aan om aan twee ringe te werk in plaas van net een
  • Voeg die DS3234 by om tyd te hou via die DeadOn RTC -voorbeeld
  • Voeg die modus by en stel skakelaars in
  • Voeg Debounce -kode by met die hulp van die Arduion Debounce -tutoriaal
  • Voeg 'n paar kleurtemas by vir die klok -LED's
  • Voeg 'n paar animasies by vir die 0, 15, 30 en 45 minute punte
  • Voeg kompaspunte by die klok om die 0, 15, 30 en 45 minute punte te oriënteer

As u wil sien hoe ek hierdie kode opgebou het, kan u GitHub eintlik gebruik om na elke kode te kyk. Die geskiedenis vir die klok is in die Commit History.

Kleurskemas was lekker om by te voeg, maar uiteindelik het ek slegs vier daarvan in die spyskaart ingesluit. Elke tema stel 'n spesifieke kleur op die uur, minuut, tweede en millisekonde "hande". Die opsies is regtig eindeloos hier, maar ek het die temas (metodename genoem) ingesluit:

  • setColorBlue
  • setColorRed
  • setColorCyan
  • setColorOrange

U kan egter hierdie bykomende metodes in die kode vind:

  • setColorPrimary
  • setColorRoyal
  • setColorTequila

Animasies is bygevoeg, want ek hou van die idee dat ou horlosies op die vier vyftien minute op die klok klink. Vir hierdie horlosie het ek die volgende animasies gemaak:

  • 15 minute: Kleur die ringe rooi in
  • 30 minute: Kleur die ringe groen in
  • 45 minute: Kleur die ringe blou in
  • Bo -op die uur: Doen 'n reënboog oor die twee ringe

Die bruikbaarheid was 'n probleem met die horlosie, want niemand kon die klok oriënteer nie. Dit is tog net twee ringe LED's. Om die probleem op te los, het ek die kompaspunte by die klok gevoeg. Dit het die vermoë om tyd te vertel baie verbeter. As ek hiervan geweet het voordat ek na die lasersnitte gestuur het, sou ek moontlik iets by die kuns kon voeg. Maar dit blyk dat u die kuns nie so goed in die donker kan sien nie, dus om kompaspunte te hê, help regtig. Een oorweging hiermee is dat wanneer u besluit om 'n pixel te kleur, u eers die huidige kleur moet vasvang en 'n nuwe gemengde kleur moet skep. Dit gee 'n meer natuurlike gevoel.

'N Laaste tydjie gaan oor die millisekondes. Millisekondes op die Arduino kom van die interne Arduino -kristal af en nie van die DS3234 nie. Dit is aan u om te besluit of u millisekondes wil vertoon, maar ek het dit gedoen, en dit lyk asof die klok altyd iets doen. Dit kan u egter pla dat die millisekondes en sekondes nie altyd ooreenstem nie, maar in die praktyk het niemand dit ooit vir my genoem as ek na die horlosie kyk nie, en ek dink dit lyk goed.

Stap 5: Ontwerp die lasersnitlêers

Die ontwerp van die lasersnitlêers
Die ontwerp van die lasersnitlêers
Ontwerp van laser sny lêers
Ontwerp van laser sny lêers
Ontwerp van laser sny lêers
Ontwerp van laser sny lêers
Ontwerp van laser sny lêers
Ontwerp van laser sny lêers

Daar is twee oorwegings wat ek moes neem by die ontwerp van die lasersnitlêers. Die eerste was die materiaal waaruit ek dit wou bou, en die tweede was hoe dit gebou sou word. Ek het geweet ek wil 'n houtafwerking met akriel hê, maar dit versprei die neopixels. Om die materiaal uit te vind, het ek eers 'n paar monsters by Ponoko bestel:

  • 1x fineer MDF - okkerneut
  • 1x fineer MDF - kersie
  • 1x akriel - liggrys
  • 1x Akriel - Opaal

Die houtkeuses laat my sien hoe die rastering sou lyk en hoe die brandwond aan die kant van die klok sou lyk. Met akriel kon ek die verspreiding van die neopixels toets en vergelyk hoe dit teen die hout sou lyk. Uiteindelik het ek besluit op kersiehout met Opal -akriel.

Die afmetings van die horlosie word hoofsaaklik bepaal deur die grootte van die neopixelringe. Wat ek nie geweet het nie, was hoe dik dit moes wees om by die elektronika te pas. Nadat ek die elektronika gebou het en geweet het dat die hout ongeveer 5,5 mm dik was, het ek vasgestel dat ek ongeveer 15 mm spasie binne die klok nodig het. Dit het drie lae hout beteken. Maar omdat die voorkant en die agterkant reeds die grootste deel van my ruimte in beslag neem, moes ek die ringe opbreek in 'ribbes' wat ek later kon plak.

Ek het InkScape gebruik om te teken op die sjabloon wat deur Ponoko verskaf is. Nadat ek die horlosie uitgehaal het, het ek die boom met die hand begin teken. Ek kon nie die oorspronklike prentjie invoer wat my geïnspireer het nie, maar dit was nie vreeslik om uit te vind hoe om self iets soortgelyks te doen nie.

Die koste van die materiaal was slegs ongeveer $ 20, maar die snykoste was ongeveer $ 100 meer. Twee dinge het daartoe bygedra:

  • Krommes en sirkels kos meer omdat die masjien in twee asse beweeg en hierdie ontwerp baie krommes het
  • Rasterisering verg baie keer heen en weer oor die stuk. Deur dit te laat vaar sou die meeste geld bespaar het, maar ek het daarvan gehou.

Nadat ek die ontwerp voltooi het, het ek die EPS -lêers na Ponoko gestuur, en my stukke is ongeveer 'n week later gedoen.

Let daarop dat ek nie die modus- en stel -skakelaars of die DC -aansluiting by die ontwerp ingesluit het nie. Toe ek dit stuur, het ek nog steeds nie besluit oor die dele nie. Om myself meer buigsaamheid te gee, het ek dit laat staan en besluit om dit later met die hand te boor.

Stap 6: Bou die klok

Die bou van die klok
Die bou van die klok
Die bou van die klok
Die bou van die klok
Die bou van die klok
Die bou van die klok
Die bou van die klok
Die bou van die klok

Toe al die stukke aankom, het ek die horlosie gebou. Die eerste stap was die klokliggaam, wat vereis dat ek die ribbes moes uitsteek en dit aan die agterkant en voorkant gom. Ek sit twee lae ribbes aan die agterkant en een laag aan die voorkant en sit dit vas met houtgom. Aan die voorkant het ek houtlym gebruik om die akrielringe en die houtsirkels aanmekaar te maak. Ek het 'n ekstra sentrale stuk gehad wat ek sou sny as 'n leë materiaal wat handig was tydens die konstruksie. Ek het dit aan die agterkant van die boom vasgeplak en dit het my 'n plek gegee waar ek later die neopixels kon plak.

Met die liggaam gebou het ek besluit om gate uit te boor vir die skakelaars en kragaansluiting. 'N Bietjie meetkunde (soos op die foto gesien) het my gehelp om alles in lyn te bring. Met 'n aparte stuk hout aan die buitekant terwyl ek (baie versigtig!) Boor, maak ek die gate en plak die skakelaars en domkrag vas.

Die elektronika het alles ingegaan. Ek plak die neopixels eers vas, gevolg deur die kapasitor. Hierdie het ek in die neopixel -kragonderbrekingskaart bedraad. Dan sit ek die drade op die skakelaars en die kragaansluiting agter. Ek het ook die L7805 spanningsreguleerder ingesluit.

'N Vinnige opmerking oor die oriëntasie van die ringe. Vir die groot ring van 60 pixels moet u die horlosie oriënteer sodat een van die pixels presies bo is om die nul minute te merk. Watter pixel maak nie saak nie, en ek sal binne 'n minuut uitvind hoekom. Vir die klein ring van 24 pixels moet u die horlosie oriënteer sodat die bokant eintlik tussen twee pixels is. Die rede hiervoor is dat as u 12 uur wil merk, u twee pixels in plaas van een verlig. Deur die offset en die verspreiding van die plastiek te hê, sal dit lyk asof u werklik 12 wye pixels het.

Met betrekking tot watter pixel die kode vir elke ring die 'top' aandui, moet u die kode 'n bietjie wysig. Ek het twee waardes in my kode met die naam "inner_top_led" en "outer_top_led". In my horlosies was die 'inner_top_led' 11 pixels vanaf die begin van die klein ring en die 'outer_top_led' was 36 pixels vanaf die begin van die groot ring. As u toevallig die ringe anders oriënteer, verander u hierdie waardes om die waardes uit u oriëntasie te wees. 'N bietjie eksperimenteer, en u vind die regte waarde redelik vinnig.

Op hierdie stadium het ek getoets dat alles werk soos verwag.

Maar soos met alle projekte, het ek 'n probleem ondervind, maar ek het besef dat ek nie agtergekom het hoe dit bymekaar sou bly nie. Ek het opgemerk dat ek ongeveer 3/8 duim spasie tussen die neopixels en die ribbes het, en ek het na Home Depot gegaan en 'n 3/8 duim spuit en 'n aantal neodymiummagnete gekry. Ek het drie houtstaanders op drie plekke gebou en dit afgeskuur sodat ek twee magnete op elke staander kon sit (met behulp van supergom). Ek eindig met 3 pare van 2 staanplekke elk. Toe plak ek dit in die raam vas en hou dit alles vas met 'n klem. Ek het dit gedoen terwyl die gom op die staanplekke nat was, sodat alles in lyn was en dan op die regte plek droog was. Dit het perfek gewerk en ek is mal daaroor dat die vrystelling alles weggesteek is.

Uiteindelik het ek agtergekom dat ek dit aan die muur moet hang, sodat ek 'n hangar aan die agterkant inboor sodat ek dit teen die muur kan sit.

Stap 7: Laaste gedagtes

Hierdie projek was baie lekker om te bou en ek het dit geniet om te leer oor neopixels en die DS3234. Ek het dit veral geniet om uiteindelik 'n projek te bou wat van begin tot einde mooi gelyk het. Daar is 'n paar dinge wat ek sou opdateer as ek dit weer doen, maar dit is gering:

  • Ek het twee knoppies in plaas van drie gekies vir die eenvoud. Maar as ek 'n knoppie gehad het wat my in staat sou stel om af sowel as omhoog te gaan, sou dit goed gewees het om die klok te stel
  • Die modusknoppie en die stelknoppie kan nie onderskei word nie. Ek meng hulle gereeld. Miskien sou ek hulle in die toekoms aan weerskante sit.
  • Ek het nooit die houtfront voltooi nie. Ek hou eers van die voorkoms wat rou was, en was later bekommerd dat as ek die afwerking deurmekaar maak, dit baie sou kos om op te los.
  • Dit was 'n goeie voorkoms om die boom te laat raster, maar ek sou in die toekoms moontlik meer besonderhede oor die boom getrek het.
  • Dit is ook 'n goeie kenmerk om die horlosie te verduister, want dit is baie helder in die donker. Die verduistering is egter gekoppel aan die kleur en om uit te vind dat die bietjie te lank neem, het ek dit laat val. Ek sal waarskynlik in die toekoms weer in daardie funksie belê.

Dankie dat u hierdie instruksies gelees het. Ek hoop dat u u eie klok- of neopixelprojek sal maak en dit met my sal deel. Gelukkige gebou!

Aanbeveel: