Kazalo:

NeoClock: 7 korakov (s slikami)
NeoClock: 7 korakov (s slikami)

Video: NeoClock: 7 korakov (s slikami)

Video: NeoClock: 7 korakov (s slikami)
Video: СУПЕР СМЕШНАЯ КОМЕДИЯ! "Как Извести Любовницу За 7 Дней" РУССКИЕ КОМЕДИИ НОВИНКИ, ФИЛЬМЫ HD, КИНО 2024, November
Anonim
Image
Image

Tu gre za izdelavo ure z uporabo fantastičnih neopixel obročev iz Adafruit. Zabavna stvar pri tej uri je, da ima dejansko dva obroča neopikslov, enega za prikaz ur in enega za minute, sekunde in milisekunde. Ura ohranja popoln čas z uporabo čipa ure DS3234 DeadOn v realnem času podjetja Sparkfun. Enostaven za gradnjo in zabaven za spreminjanje. Upam, da bo druge navdušil za izdelavo ur ali druge umetnosti z uporabo prstanov neopixel.

Za tiste, ki želite vse svoje datoteke dobiti v obliki, ki je preprosta za upravljanje, jih prenesite iz mojega skladišča github za ta projekt na naslovu

1. korak: Oblikovanje ure

Oblikovanje ure
Oblikovanje ure
Oblikovanje ure
Oblikovanje ure
Oblikovanje ure
Oblikovanje ure
Oblikovanje ure
Oblikovanje ure

Že na začetku sem vedel, da želim uporabiti vsaj dva obroča neopikslov. Po nekaj delu sem se odločil, da bi bil najboljši dizajn en obroč v drugem, ki ohranja prvotno obliko ure. Manjši obroč bi bil ure, preostali čas pa bi ostal na večjem obroču. Nekaj oblikovalskih premislekov je vključevalo stroške neopikslov, potrebo po moči, velikost lasersko izrezanih kosov in kakšno umetnost sem želel dati nanjo.

Ko je bil ta korak zaključen, sem se odločil, da moram razumeti elektroniko, preden ustvarim načrte za lasersko rezanje ohišja ure.

2. korak: Oblikovanje elektronike

Oblikovanje elektronike
Oblikovanje elektronike
Oblikovanje elektronike
Oblikovanje elektronike
Oblikovanje elektronike
Oblikovanje elektronike
Oblikovanje elektronike
Oblikovanje elektronike

Oblikovanje elektronike je privedlo do vnaprej poznanih elementov, ki sem jih želel v uri:

  • Neopixel obroči (60 štetje in 24 štetje)
  • Arduino (možgani)
  • Regulacija ure (arduini se ne držijo dobro)
  • Upravljanje porabe energije

Zahteve glede velikosti in moči neopikslov so dobro dokumentirane. Ker delujejo na 5V DC, sem se odločil, da bom uporabil 5V Arduino in si poenostavil stvari. Ker je bil prostor v premisleku, sem se odločil za prototip navadnega Arduino Uno, vendar sem za končno elektroniko izbral Arduino Mini.

Prva ponovitev tega projekta je prišla neposredno s strani Neofixel Basic Connections podjetja Adafruit. Za lažje delo sem vključil diagram s spletnega mesta. Pri tem sta pomembni dve stvari:

  1. 1000uF kondenzator je potreben, da prepreči, da bi začetni udarni tok poškodoval slikovne pike.
  2. Upor 470 ohmov je potreben za prvo slikovno piko obroča za štetje 60 (ta upor je vgrajen v obroč za štetje 24)

Adafruit ima tudi niz najboljših praks NeoPixel, ki jih morate prebrati, preden nadaljujete z oblikovanjem.

Druga težava je ohranjanje časa na uri. Vgrajena ura na arduinu ne zadostuje za daljši čas. Hujša težava je, da bo čas na arduinu morda treba vsakič ponastaviti. Računalniki rešujejo to težavo z uporabo majhne baterije na čipu ure, ki ohranja čas med izklopi. V preteklosti bi uporabil nekaj takega kot ChronoDot iz Adafruit. Toda v tem primeru sem hotel izgovor za uporabo DS3234 (DeadOn RTC) iz SparkFuna. Podatke o datumu lahko hranite tudi na DeadOn RTC, če želite to vključiti v uro.

Nazadnje je bilo treba razmisliti o upravljanju porabe energije. Vedel sem že, da je vse potrebno za 5V, vendar se je zdelo, da je količina potrebnega toka skrivnost. Pogost regulator napetosti v večini projektov je L7805. To bo zahtevalo napetosti do 24V in največji tok do 1.5A. Vedel sem, da imam 12V 1.5A stensko pivino, zato sem se odločil, da bo to popoln (in poceni!) Regulator napetosti za projekt.

Preostali kosi so prišli iz moje škatle z deli ali Radio Shacka. Vključevali so žice, stikala in vtičnico za enosmerni tok.

3. korak: Izdelava elektronike

Gradnja elektronike
Gradnja elektronike
Gradnja elektronike
Gradnja elektronike
Gradnja elektronike
Gradnja elektronike

Celoten seznam elektronike, ki sem jo kupil za izdelavo tega projekta, najdete v mojem skladišču github tukaj: Seznam delov elektronike. Vsebuje povezave do strani izdelka za vsak kos in vsebuje nekaj dodatnih informacij, vključno s SKU izdelka. To sem hitro izdelal na krovu in se lotil laserskega rezanja in gradnje, preden sem naredil kakšno sliko. Vendar sem ga naredil tako, da ga je enostavno razstaviti, zato sem za vas razčlenil kose na zgornjih fotografijah.

Pozorno si oglejte slike, saj so bile žice namerno upognjene, da jih je enostavno slediti in da je celoten profil elektronike tanek. To prvotno izdelavo prototipov pred načrtovanjem laserskega reza mi je omogočilo preveriti debelino delov, da sem lahko ugotovil končne dimenzije ohišja ure.

Opazili boste, da sem naredil nekaj plošč po meri. Poskušal sem posneti hrbet teh plošč, da jih lahko ponovite. Takšne plošče lahko kupite za nekaj dolarjev in jih prilagodite vašemu projektu.

Ožičenje je naravnost, vendar si je pomembno zapomniti slike:

  • Stikala Mode in Set potrebujejo izvlečne upore. Uporabil sem upore 2,21 Ohma, ki sem jih imel naokoli, vendar bo deloval vsak majhen upor (po možnosti ne manj kot 1 kOhm). To stabilizira priključene vhodne zatiče Arduino, tako da jih je, ko se dvignejo visoko, ločiti od hrupa.
  • Kvadratni val (SQW) na DS3234 je bil ozemljen, ker se ne uporablja.
  • Napajanje iz L7805 je vloženo v pin Arduino Mini v RAW. Moč, ki prihaja iz Arduina, vedno prenesite v RAW.
  • Prva slikovna pika obroča 60 neopikslov ima upor 470Ohm za zmanjšanje kakršne koli škode na prvi slikovni piki zaradi povečanja podatkov. To ne bi smel biti problem, saj ima neopixel 24 števec za to že vgrajen upor, vendar bolje varen kot žal.
  • Stikala Mode in Set sta trenutni stikalni gumb SPST

Barve žic so:

  • Rdeča: +5VDC
  • Črna: Prizemljena
  • Zelena: Podatki
  • Rumena, modra, bela: posebne žice za DS3234

Če prvič uporabljate neopiksle, se spomnite, da jih je mogoče obravnavati kot dolgo verigo. Zato se morda zdi čudno govoriti o "prvem pikslu" v obroču, v resnici pa obstaja začetek in konec vsake verige v obročih. V tem projektu je na prvem mestu 24 slikovnih pik majhnega obroča, nato pa 60 slikovnih pik večjega obroča. To res pomeni, da imam verigo 84 neopikslov.

Za ožičenje na Arduino Mini:

  • DS3234 se poveže na zatiče 10 - 13
  • Stikala Mode in Set sta na zatičih 2 in 3
  • Podatki o neopixelu prihajajo iz pin 6.

Priporočam tudi, da 6 naslovov postavite na dno Arduino Mini, tako da jih lahko programirate prek kabla FTDI.

Pomembna opomba glede trenutne: Ta ura zahteva veliko. Prepričan sem, da bi to lahko rešil, vendar moje praktične izkušnje kažejo, da bo vse enako ali manjše od 500 mA na koncu povzročilo rjave izpuste. To se kaže kot ura, ki utripa nore barve in ne drži časa. Moja zadnja stenska pivina je 12V in 1.5A in nikoli nisem imela rjave barve. Vendar je 1,5A meja, ki jo bo upošteval regulator napetosti (in drugi deli). Zato ne prekoračite tega zneska.

4. korak: Kodiranje ure

Kodiranje ure
Kodiranje ure

Celotno kodo ure najdete v kodi NeoClock na GitHubu. Sem sem vključil datoteko, vendar se bodo v skladišču zgodile vse spremembe.

Ugotavljam, da je pisanje kode lahko zastrašujoče, če poskušate narediti vse naenkrat. Namesto tega poskušam izhajati iz delovnega primera in graditi funkcije, kot jih potrebujem. Preden se lotim tega, želim poudariti, da je moja koda prišla iz združevanja številnih primerov iz naslednjih skladišč in foruma Arduino CC. Vedno dajte kredit tam, kjer je treba!

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

Nekaj vzorčne kode iz teh skladišč najdete v mojem imeniku primerov kod

Vrstni red operacij, ki sem jih uporabil za izdelavo kode, je bil približno tak:

  • Prepričajte se, da neopiksli delujejo s Strand Test Primer
  • Poskusite zagnati uro s kodo časovne zanke
  • Prilagodite uro, da bo delovala na dveh obročih namesto na enem
  • Dodajte DS3234 za merjenje časa prek primera DeadOn RTC
  • Dodajte stikala za način in nastavite
  • Dodajte kodo Debounce s pomočjo Vadnice za Arduion Debounce
  • Dodajte nekaj barvnih tem za LED ure
  • Dodajte nekaj animacij za oznake 0, 15, 30 in 45 minut
  • Uri dodajte točke kompasa za orientacijo oznak 0, 15, 30 in 45 minut

Če želite videti, kako sem ustvaril to kodo, lahko dejansko uporabite GitHub za ogled vsake kode. Zgodovina ure je v zgodovini urejanja.

Barvne sheme je bilo zabavno dodati, vendar sem na koncu v meni vključil le štiri. Vsaka tema nastavi "uro", uro, minuto, sekundo in milisekundo določeno barvo. Resnično so možnosti tukaj neskončne, vendar sem vključil teme (navedena imena metod):

  • setColorBlue
  • setColorRed
  • setColorCyan
  • setColorOrange

Vendar pa lahko v kodi najdete te dodatne metode:

  • setColorPrimary
  • setColorRoyal
  • setColorTequila

Animacije so bile dodane, ker mi je bila všeč ideja, da stare ure zvonijo na štirih petnajstminutnih točkah na uri. Za to uro sem naredil naslednje animacije:

  • 15 minut: obroče obarvajte rdeče
  • 30 minut: Obarvajte obroče v zeleno
  • 45 minut: obroče obarvajte v modro
  • Vrh ure: naredite mavrico čez dva obroča

Uporabnost se je izkazala za težavo z uro, ker je nihče ni mogel usmeriti. Konec koncev sta le dva obroča LED. Zato sem za rešitev problema dodal kompasne točke na uro. To je izboljšalo sposobnost povedati čas veliko. Če bi o tem vedel, preden sem poslal lasersko izrezane kose, bi namesto tega umetnosti kaj dodal. Izkazalo se je, da umetnosti v temi ne morete videti tako dobro, zato ima točke kompasa res v pomoč. Pri tem je treba upoštevati, da morate pri barvanju slikovne pike najprej zajeti trenutno barvo in ustvariti novo mešano barvo. To daje bolj naraven občutek.

Zadnja podrobnost je približno milisekunde. Milisekunde na Arduinu prihajajo iz notranjega kristala Arduino in ne iz DS3234. Od vas je odvisno, ali želite prikazati milisekunde ali ne, vendar sem to storil, zato je ura vedno delovala. Morda vas bo motilo, da se milisekunde in sekunde ne ujemajo vedno, a v praksi mi tega nihče ni omenil ob pogledu na uro in mislim, da izgleda lepo.

5. korak: Oblikovanje datotek z laserskim rezanjem

Oblikovanje datotek z laserskim rezanjem
Oblikovanje datotek z laserskim rezanjem
Oblikovanje datotek z laserskim rezanjem
Oblikovanje datotek z laserskim rezanjem
Oblikovanje datotek z laserskim rezanjem
Oblikovanje datotek z laserskim rezanjem
Oblikovanje datotek z laserskim rezanjem
Oblikovanje datotek z laserskim rezanjem

Pri oblikovanju datotek za lasersko rezanje sem moral upoštevati dva vidika. Prvi je bil material, iz katerega sem ga želel zgraditi, drugi pa, kako bo zgrajen. Vedel sem, da želim leseno obdelavo z akrilom, ki razprši neopiksele. Za ugotovitev materiala sem najprej naročil nekaj vzorcev pri Ponoku:

  • 1x furnir MDF - oreh
  • 1x furnir MDF - češnja
  • 1x akril - svetlo siva
  • 1x akril - opal

Izbor lesa mi je pokazal, kako bi izgledala rastrizacija in kako bi opeklina izgledala ob strani ure. Akril bi mi omogočil, da preizkusim širjenje neopikslov in primerjam, kako bi izgledal ob lesu. Na koncu sem se odločil za češnjev les z opalnim akrilom.

Mere ure so bile v glavnem določene z velikostjo obročev neopiksela. Nisem vedel, kako debela mora biti, da se prilega elektroniki. Ko sem zgradil elektroniko in vedel, da je les debel približno 5,5 mm, sem ugotovil, da potrebujem približno 15 mm prostora v uri. To je pomenilo tri plasti lesa. Ker pa sprednji in zadnji del že zasedata večino prostora v mojem dizajnu, sem moral te obroče razbiti na "rebra", ki sem jih lahko kasneje zlepil.

Uporabil sem InkScape za risanje po predlogi Ponoko. Ko sem izvlekel telo ure, sem se nato lotil risanja drevesa z roko. Izvirne podobe, ki me je navdihnila, nisem mogel uvoziti, vendar ni bilo grozno ugotoviti, kako bi sam naredil kaj podobnega.

Stroški materiala so znašali le približno 20 USD, stroški rezanja pa so bili približno 100 USD več. K temu sta prispevali dve stvari:

  • Krivulje in krogi stanejo več, ker se stroj premika po dveh osi in ima ta oblika veliko krivulj
  • Rasterizacija zahteva veliko prehodov naprej in nazaj po kosu. S tem bi prihranili največ denarja, vendar mi je bilo všeč.

Po dokončanju zasnove sem datoteke EPS poslal Ponoku, moji deli pa so bili narejeni približno teden dni kasneje.

Upoštevajte, da v zasnovo nisem vključil stikal Mode in Set ali DC Power Jack. Ko sem to poslal, se še vedno nisem odločil za te dele. Da bi si dal večjo prilagodljivost, sem jih pustil in se odločil, da jih bom kasneje vrtal ročno.

Korak 6: Konstruiranje ure

Konstruiranje ure
Konstruiranje ure
Konstruiranje ure
Konstruiranje ure
Konstruiranje ure
Konstruiranje ure
Konstruiranje ure
Konstruiranje ure

Ko so prispeli vsi kosi, sem izdelal uro. Prvi korak je bila ura z ohišjem, ki je zahteval, da sem izbil rebra in jih zlepil na zadnjo in sprednjo stran. Na zadnjo stran sem položil dve plasti reber, na sprednjo pa eno plast in jih položil z lepilom za les. Za sprednjo stran sem uporabil lepilo za les, da sem sestavil akrilne obroče in lesene kroge. Imel sem rezervni osrednji kos, ki sem ga izrezal kot slepo, ki mi je prišel prav pri gradnji. Prilepila sem ga na zadnjo stran drevesnega kosa in tako sem dobila prostor, kamor sem lahko pozneje prilepila neopiksele.

Z izdelanim ohišjem sem se odločil izvrtati luknje za stikala in vtičnico. Malo geometrije (kot je prikazano na sliki) mi je pomagalo uskladiti vse. Z uporabo ločenega lesa na zunanji strani, ko sem vrtal (zelo previdno!), Sem naredil luknje in zlepil stikala in vtičnico.

Sledila je vsa elektronika. Najprej sem zlepil neopiksele, nato kondenzator. Te sem priključil na ploščo za izklop napajanja neopixel. Potem sem za hrbet dal žice na stikala in vtičnico. Vključil sem tudi regulator napetosti L7805.

Na kratko o orientaciji prstanov. Za velik obroč s 60 slikovnimi pikami morate uro usmeriti tako, da je ena od pik točno na vrhu, da označi ničelne minute. Katera slikovna pika ni pomembna in v minuti bom ugotovil zakaj. Za majhen obroč s 24 slikovnimi pikami morate uro usmeriti tako, da je vrh dejansko med dvema slikovnima pikama. Razlog za to je, da če želite označiti 12 ur, na koncu osvetlite dve slikovni piki namesto enega. Z odmikom in razpršitvijo plastike bo videti, kot da imate res 12 širokih slikovnih pik.

Kar zadeva slikovno piko, ki jo koda označi kot "vrh" za vsak obroč, morate kodo nekoliko urediti. V kodi imam dve vrednosti z imenom "inner_top_led" in "external_top_led". V mojih urah je bil "inner_top_led" 11 pik od začetka majhnega obroča, "external_top_led" pa 36 slikovnih pik od začetka velikega obroča. Če slučajno orientirate obroče, bi te vrednosti spremenili v tiste iz vaše orientacije. Malo eksperimentiranja in hitro boste našli pravo vrednost.

Na tej točki sem preizkusil, da vse deluje po pričakovanjih.

Toda tako kot pri vseh projektih sem naletel na težavo, saj sem spoznal, da nisem ugotovil, kako bo to skupaj držalo. Opazil sem, da imam med neopiksli in rebri približno 3/8 palca prostora, zato sem se odpravil v Home Depot in dobil 3/8 palčni moznik in številne neodimske magnete. Na treh mestih sem zgradil majhna stojala za les in jih pobrusil, da sem lahko na vsako stojalo postavil dva magneta (z uporabo super lepila). Na koncu sem imel 3 pare po 2 stojala. Nato sem jih prilepil v okvir in vse skupaj držal s sponko. To sem naredil, ko je bilo lepilo na stojalih mokro, da se je vse poravnalo in nato posušilo na pravem mestu. To je odlično delovalo in všeč mi je, da je izdaja skrita.

Nazadnje sem ugotovil, da ga moram obesiti na steno, zato sem na zadnji strani izvrtal majhen hangar, da sem ga lahko postavil na steno.

7. korak: Zadnje misli

Ta projekt je bilo zelo zabavno graditi in užival sem v spoznavanju neopikslov in DS3234. Še posebej sem užival, ko sem končno zgradil projekt, ki je od začetka do konca izgledal lepo. Če bi to ponovil, bi posodobil nekaj stvari, vendar so manjše:

  • Zaradi preprostosti sem izbral dva gumba namesto treh. Toda gumb, ki bi mi omogočal, da se spuščam navzgor in navzgor, bi bilo lepo za nastavitev ure
  • Gumb za način in gumb za nastavitev se ne razlikujeta. Pogosto jih pomešam. Morda bi jih v prihodnosti postavil na nasprotne strani.
  • Nisem nikoli dokončal lesene fronte. Sprva mi je bil všeč videz surovega, kasneje pa me je skrbelo, da bi popravilo, če bi zmotil zaključek, veliko stalo.
  • Rastrovanje drevesa je bilo v redu, vendar bi lahko v prihodnosti za drevo narisal več podrobnosti.
  • Zatemnitev ure bi bila tudi dobra lastnost, saj je v temi precej svetla. Vendar pa je zatemnitev povezana z barvo in ugotavljam, da je ta bit trajal predolgo, zato sem ga spustil. V to funkcijo bi v prihodnosti verjetno ponovno vlagal.

Hvala, ker ste prebrali ta navodila. Upam, da boste ustvarili svoj projekt ure ali neopixel in ga delili z mano. Vesela stavba!

Priporočena: