Sadržaj:

NeoClock: 7 koraka (sa slikama)
NeoClock: 7 koraka (sa slikama)

Video: NeoClock: 7 koraka (sa slikama)

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

Ovdje se radi o izgradnji sata pomoću fantastičnih neopikselnih prstenova iz Adafruit -a. Zabavna stvar ovog sata je to što on zapravo ima dva prstena neopiksela, jedan za sate i jedan za minute, sekunde i milisekunde. Sat održava savršeno vrijeme koristeći čip DS3234 DeadOn sata u stvarnom vremenu kompanije Sparkfun. Lako se gradi i zabavno mijenja. Nadam se da će inspirirati druge da izrađuju satove ili drugu umjetnost koristeći prstenove od neopiksela.

Za one od vas koji žele dobiti sve moje datoteke u formatu za jednostavno upravljanje, slobodno ih preuzmite iz mog github spremišta za ovaj projekt na

Korak 1: Dizajniranje sata

Dizajniranje sata
Dizajniranje sata
Dizajniranje sata
Dizajniranje sata
Dizajniranje sata
Dizajniranje sata
Dizajniranje sata
Dizajniranje sata

Od početka sam znao da želim upotrijebiti barem dva prstena neopiksela. Nakon nekog rada odlučio sam da bi najbolji dizajn bio imati jedan prsten unutar drugog, koji čuva izvornu formu sata. Manji prsten bi bio sati, a preostalo vrijeme bi se zadržalo na većem prstenu. Neka razmatranja dizajna uključivala su cijenu neopiksela, potrebnu snagu, veličinu laserski izrezanih komada i vrstu umjetnosti koju sam htjela staviti na nju.

Kada je ovaj korak završen, odlučio sam da moram razumjeti elektroniku prije izrade planova za lasersko rezanje kućišta sata.

Korak 2: Dizajniranje elektronike

Dizajniranje elektronike
Dizajniranje elektronike
Dizajniranje elektronike
Dizajniranje elektronike
Dizajniranje elektronike
Dizajniranje elektronike
Dizajniranje elektronike
Dizajniranje elektronike

Dizajniranje elektronike svodilo se na unaprijed poznavanje elemenata koje sam htio na satu:

  • Neopikselni prstenovi (60 broji i 24 broji)
  • Arduino (mozak)
  • Regulacija sata (arduini se ne zabavljaju dobro)
  • Upravljanje napajanjem

Zahtjevi veličine i snage neopiksela dobro su dokumentirani. Budući da rade na 5V DC, odlučio sam otići s 5V Arduinom i sebi pojednostaviti stvari. S obzirom da je prostor bio u pitanju, odlučio sam napraviti prototip na običnom Arduino Uno, ali za konačnu elektroniku odabrao sam Arduino Mini.

Prva iteracija ovog projekta došla je direktno sa Adafruit -ove stranice NeoPixel Basic Connections. Uključio sam dijagram s web stranice kako bih olakšao stvari. Dvije stvari su važne iz ovoga:

  1. Kondenzator od 1000uF potreban je kako bi se spriječilo da početni udar struje ošteti piksele.
  2. Otpornik od 470 ohma potreban je za prvi piksel prstena od 60 brojanja (ovaj otpornik je ugrađen u prsten od 24 brojača)

Adafruit također ima skup NeoPixel najboljih praksi koje biste trebali pročitati prije nego nastavite s dizajnom.

Održavanje vremena na satu je drugi problem. Ugrađeni sat na arduinu nije dovoljan za održavanje dobrog vremena tokom dužeg vremenskog perioda. Još gori problem je to što će vrijeme na arduinu možda morati biti poništeno svaki put. Računari rješavaju ovaj problem koristeći malu bateriju na čipu sata kako bi zadržali vrijeme između isključenja. U prošlosti bih koristio nešto poput ChronoDot -a iz Adafruit -a. Ali u ovom slučaju želio sam izgovor za korištenje DS3234 (DeadOn RTC) iz SparkFuna. Također možete zadržati podatke o datumu na DeadOn RTC -u ako to želite integrirati u sat.

Konačno, potrebno je malo razmotriti upravljanje energijom. Već sam znao da je sve potrebno za napajanje od 5 V, ali količina potrebne struje činila se misterijom. Uobičajeni regulator napona u većini projekata je L7805. To će zahtijevati napone do 24V i maksimalnu struju do 1,5A. Znao sam da imam 12V 1.5A zidnu sladovinu vani pa sam odlučio da će ovo biti savršen (i jeftin!) Regulator napona za projekt.

Preostali komadi su dolazili iz moje kutije sa dijelovima ili Radio Shacka. Uključivali su žice, prekidače i utičnicu za istosmjerno napajanje.

Korak 3: Izgradnja elektronike

Izgradnja elektronike
Izgradnja elektronike
Izgradnja elektronike
Izgradnja elektronike
Izgradnja elektronike
Izgradnja elektronike

Potpuna lista elektronike koju sam kupio za izradu ovog projekta može se pronaći u mom github spremištu ovdje: Lista dijelova elektronike. Ima veze do stranice proizvoda za svaki komad i uključuje neke dodatne informacije, uključujući šifru proizvoda. Brzo sam to prototipirao na ploči i prešao na lasersko rezanje i izgradnju prije snimanja bilo kakvih slika. Međutim, napravio sam ga tako da ga je lako rastaviti pa sam za vas razbio komade na gornjim fotografijama.

Pažljivo pogledajte slike jer su žice namjerno savijene na način da ih je lako pratiti i da cijeli profil elektronike ostane tanak. Izrada ovog početnog prototipa prije projektiranja laserskog reza omogućila mi je provjeru debljine dijelova kako bih mogao shvatiti konačne dimenzije kućišta sata.

Primijetit ćete da sam napravio nekoliko prilagođenih ploča. Pokušao sam snimiti stražnje strane tih ploča kako biste ih mogli ponoviti. Ovakav asortiman ploča možete kupiti za par dolara i prilagoditi ih vašem projektu.

Ožičenje je ravno, ali važno je zapamtiti slike:

  • Prekidačima za način rada i postavljanje bit će potrebni otpornici na dolje. Koristio sam otpornike od 2,21 ohma koje sam imao, ali svaki mali otpornik će raditi (po mogućnosti ne manje od 1 kOhm). Ovo stabilizira spojene Arduino ulazne pinove tako da se kad se podignu razlikuje od šuma.
  • Kvadratni val (SQW) na DS3234 je uzemljen jer se ne koristi.
  • Napajanje iz L7805 stavlja se u Arduino Mini u RAW pinu. Snagu koja dolazi s Arduinom uvijek stavite u RAW.
  • Prvi piksel u prstenu od 60 neopiksela ima otpornik od 470Ohm za smanjenje bilo kakvog oštećenja prvog piksela uslijed skokova podataka. Ovo ne bi trebao biti problem jer neopiksel od 24 broja već ima ugrađen otpornik za ovo, ali bolje je nego što je žao.
  • Prekidači za način rada i postavljanje su trenutni prekidači sa tipkama SPST

Boje žica su:

  • Crvena: +5VDC
  • Crna: Uzemljena
  • Zelena: Podaci
  • Žuta, Plava, Bijela: Specijalne žice za DS3234

Ako prvi put koristite neopiksele, zapamtite da se o njima može razmišljati kao o dugom lancu. Stoga bi moglo izgledati čudno govoriti o "prvom pikselu" u prstenu, ali zapravo postoji početak i kraj svakog lanca u prstenovima. U ovom projektu 24 piksela malog prstena dolaze na prvo mjesto, a 60 piksela većeg prstena slijede. To zaista znači da imam lanac od 84 neopiksela.

Za ožičenje na Arduino Mini:

  • DS3234 se spaja na pinove 10 - 13
  • Prekidači Mode i Set nalaze se na pinovima 2 i 3
  • Podaci neopiksela dolaze sa pina 6.

Također preporučujem da postavite 6 zaglavlja na dno Arduino Mini -a kako biste ih mogli programirati putem FTDI kabela.

Važna napomena o struji: Ovaj sat zahtijeva mnogo. Siguran sam da bih to mogao riješiti, ali moje praktično iskustvo je da će sve jednako ili manje od 500mA na kraju uzrokovati smeđe izlaze. Ovo se manifestuje kao sat koji treperi lude boje i ne drži vrijeme. Moja posljednja zidna sladovina je 12V i 1.5A i nikad nisam imala smeđu boju s njom. Međutim, 1,5A je granica koju će regulator napona (i drugi dijelovi) uzeti. Zato nemojte prekoračiti ovaj iznos.

Korak 4: Kodiranje sata

Kodiranje sata
Kodiranje sata

Potpuni kod za sat možete pronaći u NeoClock kodu na GitHubu. Ovdje sam uključio datoteku, ali sve promjene će se dogoditi u spremištu.

Smatram da je pisanje koda zastrašujuće ako pokušate učiniti sve odjednom. Umjesto da to učinim, pokušavam krenuti od radnog primjera i izgraditi značajke koje su mi potrebne. Prije nego što uđem u to, želim istaknuti da je moj kôd došao kombiniranjem mnoštva primjera iz sljedećih spremišta i Arduino CC foruma. Uvijek dajte kredit tamo gdje dospijeva!

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

Neki primjeri koda iz ovih spremišta mogu se pronaći u mom direktoriju primjera koda

Redoslijed operacija koje sam koristio za izradu koda išao je otprilike ovako:

  • Potvrdite da neopikseli rade sa Primjerom testa pramena
  • Pokušajte pokrenuti sat sa kodom vremenske petlje
  • Izmijenite sat da radi na dva zvona umjesto samo na jednom
  • Dodajte DS3234 da biste zadržali vrijeme putem primjera DeadOn RTC -a
  • Dodajte prekidače za način rada i postavite prekidače
  • Dodajte kod Debounce uz pomoć Arduion Debounce vodiča
  • Dodajte neke teme u boji za LED diode na satu
  • Dodajte animacije za 0, 15, 30 i 45 minuta
  • Dodajte tačke kompasa u sat za orijentaciju oznaka 0, 15, 30 i 45 minuta

Ako želite vidjeti kako sam izgradio ovaj kod, možete koristiti GitHub za pregled svakog urezivanja koda. Historija sata se nalazi u istoriji urezivanja.

Šeme boja bilo je zabavno dodavati, ali na kraju sam u meni uključio samo četiri. Svaka tema postavlja određenu boju na "kazaljkama" sata, minuta, sekunde i milisekunde. Ovdje su mogućnosti beskrajne, ali uključio sam teme (navedeni su nazivi metoda):

  • setColorBlue
  • setColorRed
  • setColorCyan
  • setColorOrange

Međutim, ove dodatne metode možete pronaći u kodu:

  • setColorPrimary
  • setColorRoyal
  • setColorTequila

Animacije su dodane jer mi se svidjela ideja da stari satovi zvone na četiri petnaestominutne tačke na satu. Za ovaj sat napravio sam sljedeće animacije:

  • 15 minuta: Obojite prstenove u crveno
  • 30 minuta: Obojite prstenove u zeleno
  • 45 minuta: Obojite prstenove u plavo
  • Vrh sata: Napravite dugu preko dva prstena

Ispostavilo se da je upotrebljivost problem sa satom jer niko nije mogao da ga orijentiše. Na kraju krajeva, to su samo dva prstena LED dioda. Stoga sam za rješavanje problema dodao sat kompasa na sat. Ovo je poboljšalo sposobnost da se puno govori o vremenu. Da sam znao za ovo prije slanja na laserski izrezane komade, mogao bih umjesto toga dodati nešto umjetnosti. Ali ispalo je da u mraku ne možete vidjeti umjetnost tako dobro, pa vam poimanje kompasa zaista pomaže. Jedno razmatranje u vezi s ovim je da kada odlučite obojiti piksel, prvo biste trebali snimiti trenutnu boju i stvoriti novu pomiješanu boju. To mu daje prirodniji osjećaj.

Posljednji detalj je oko milisekundi. Milisekunde na Arduinu silaze s unutrašnjeg Arduino kristala, a ne s DS3234. Na vama je da li želite prikazati milisekunde ili ne, ali ja sam to učinio pa je sat uvijek izgledao kao da radi nešto. Možda bi vam moglo zasmetati što se milisekunde i sekunde ne podudaraju uvijek, ali u praksi mi to nitko nije spomenuo gledajući na sat i mislim da izgleda lijepo.

Korak 5: Dizajniranje laserski izrezanih datoteka

Dizajniranje laserski izrezanih datoteka
Dizajniranje laserski izrezanih datoteka
Dizajniranje laserski izrezanih datoteka
Dizajniranje laserski izrezanih datoteka
Dizajniranje laserski izrezanih datoteka
Dizajniranje laserski izrezanih datoteka
Dizajniranje laserski izrezanih datoteka
Dizajniranje laserski izrezanih datoteka

Postoje dva razmatranja koja sam morao uzeti u obzir prilikom dizajniranja datoteka za lasersko rezanje. Prvi je bio materijal od kojeg sam htio da ga sagradim, a drugi je bio način na koji će biti izgrađen. Znao sam da želim završiti drvo s akrilom koji ne raspršuje neopiksele. Da bih shvatio materijal, prvo sam naručio neke uzorke od Ponoka:

  • 1x furnir MDF - orah
  • 1x furnir MDF - trešnja
  • 1x akril - svijetlo siva
  • 1x akril - opal

Odabir drva omogućio mi je da vidim kako bi rasterizacija izgledala i kako bi opeklina izgledala sa strane. Akril bi mi omogućio da isprobam širenje neopiksela i uporedim kako bi to izgledalo u odnosu na drvo. Na kraju sam se odlučio za trešnjevo drvo s Opal akrilom.

Dimenzije sata uglavnom su određene veličinom neopikselnih prstenova. Ono što nisam znao je koliko bi trebala biti debela da bi se uklopila u elektroniku. Izgradivši elektroniku i znajući da je drvo debljine oko 5,5 mm, utvrdio sam da mi je potrebno oko 15 mm prostora unutar sata. To je značilo tri sloja drveta. No, budući da prednji i stražnji dio već zauzimaju većinu prostora u mom dizajnu, bilo mi je potrebno razbiti te prstenove na "rebra" koja sam kasnije mogao zalijepiti.

Koristio sam InkScape za crtanje po predlošku koji je dao Ponoko. Nakon što sam izvukao tijelo sata, tada sam krenuo ručnim iscrtavanjem stabla. Nisam mogao uvesti originalnu sliku koja me inspirirala, ali nije bilo strašno smisliti kako i sam napraviti nešto slično.

Cijena materijala bila je samo oko 20 USD, ali je rezanje ispalo oko 100 USD više. Dve stvari su tome doprinele:

  • Krivulje i krugovi koštaju više jer se stroj kreće u dvije osi i ovaj dizajn ima mnogo zavoja
  • Rasterizacija zahtijeva puno dodavanja naprijed -natrag po komadu. Odbacivanjem ovoga uštedjelo bi se najviše novca, ali svidjelo mi se.

Nakon što sam dovršio dizajn, poslao sam EPS datoteke u Ponoko, a moji komadi su gotovi otprilike nedelju dana kasnije.

Imajte na umu da u dizajn nisam uključio prekidače Mode i Set ili DC Power Jack. Kad sam ovo poslao, još se nisam odlučio za te dijelove. Kako bih sebi dao veću fleksibilnost, ostavio sam ih i odlučio da ću ih kasnije ručno izbušiti.

Korak 6: Konstruisanje sata

Konstrukcija sata
Konstrukcija sata
Konstrukcija sata
Konstrukcija sata
Konstrukcija sata
Konstrukcija sata
Konstrukcija sata
Konstrukcija sata

Kad su stigli svi komadi, konstruisao sam sat. Prvi korak je bilo tijelo sata koje je zahtijevalo da izbijem rebra i zalijepim ih sa stražnje i prednje strane. Stavio sam dva sloja rebara sa stražnje strane i jedan sloj s prednje strane i postavio ih ljepilom za drvo. Za prednju stranu koristio sam ljepilo za drvo kako bih spojio akrilne prstenove i drvene krugove. Imao sam rezervni središnji komad koji sam izrezao kao čistu ploču koja mi je dobro došla tokom izgradnje. Zalijepila sam ga na stražnju stranu stabla i to mi je dalo mjesto na kojem sam kasnije mogla zalijepiti neopiksele.

S konstruiranim tijelom odlučio sam izbušiti rupe za prekidače i utičnicu. Malo geometrije (kao što se vidi na slici) pomoglo mi je da sve uskladim. Koristeći zaseban komad drveta izvana dok sam bušio (vrlo pažljivo!) Napravio sam rupe i zalijepio prekidače i utičnicu.

Slijedila je sva elektronika. Prvo sam zalijepio neopiksele, a zatim kondenzator. Ovo sam spojio u neopikselnu ploču za prekid napajanja. Zatim sam sa stražnje strane stavio žice na prekidače i utičnicu. Uključio sam i regulator napona L7805.

Kratka napomena o orijentaciji prstena. Za veliki prsten od 60 piksela morate orijentirati sat tako da jedan od piksela bude točno na vrhu kako bi označio nula minuta. Koji piksel nije bitan i za minutu ću saznati zašto. Za mali prsten od 24 piksela morate orijentirati sat tako da gornji dio zapravo bude između dva piksela. Razlog za to je što ako želite označiti 12 sati, na kraju ćete osvijetliti dva piksela umjesto jednog. Imajući pomak i širenje plastike, izgledat će kao da zaista imate 12 širokih piksela.

Što se tiče piksela koji kôd označava kao "vrh" za svako zvono, morate malo urediti kôd. U svom kodu imam dvije vrijednosti pod nazivom "inner_top_led" i "external_top_led". U mojim satovima "inner_top_led" je bio 11 piksela od početka malog prstena, a "external_top_led" je bio 36 piksela od početka velikog prstena. Ako slučajno drugačije orijentirate prstenove, promijenili biste ove vrijednosti u one iz vaše orijentacije. Malo eksperimentirajte i brzo ćete pronaći pravu vrijednost.

U ovom trenutku sam testirao da li je sve radilo kako se očekivalo.

Ali, kao i sa svim drugim projektima, naišao sam na problem jer sam shvatio da nisam shvatio kako će se to držati zajedno. Primijetio sam da imam oko 3/8 inča prostora između neopiksela i rebara pa sam se uputio u Home Depot i nabavio tipler od 3/8 inča i brojne neodimijumske magnete. Napravio sam male drvene stalke na tri mjesta i brusio ih tako da mogu staviti dva magneta na svako postolje (koristeći super ljepilo). Završio sam sa 3 para po 2 štanda. Zatim sam ih zalijepio u okvir i sve to držao stezaljkom. To sam učinio dok je ljepilo na postoljima bilo mokro kako bi se sve poravnalo, a zatim osušilo na pravom mjestu. Ovo je savršeno funkcioniralo i volim da je izdanje sve skriveno.

Na kraju sam shvatio da ga moram objesiti na zid pa sam izbušio mali hangar sa stražnje strane kako bih ga mogao staviti na zid.

Korak 7: Završne misli

Ovaj projekt je bilo jako zabavno graditi i uživao sam u učenju o neopikselima i DS3234. Posebno sam uživao napokon u izgradnji projekta koji je izgledao lijepo od početka do kraja. Postoji nekoliko stvari koje bih ažurirao da ponovim ovo, ali one su male:

  • Odabrao sam dva gumba umjesto tri radi jednostavnosti. Ali imati dugme koje bi mi omogućilo da siđem, ali i gore, bilo bi dobro za podešavanje sata
  • Tipka za način rada i tipka za postavljanje se ne razlikuju. Često ih miješam. Možda bih ih u budućnosti stavio na suprotne strane.
  • Nikada nisam završio drveni front. U početku mi se sviđao sirov izgled, a kasnije sam se zabrinuo da će, ako zabrljam završnu obradu, popraviti mnogo.
  • Rasterizacija stabla bio je u redu, ali možda sam u budućnosti izvukao više detalja o drvetu.
  • Zatamnjivanje sata također bi bila lijepa karakteristika jer je u mraku prilično svijetao. Međutim, zatamnjivanje je povezano s bojom i shvatio sam da je bit trajao predugo pa sam ga ispustio. Vjerovatno bih u budućnosti ponovo uložio u tu funkciju.

Hvala vam što ste pročitali ovo uputstvo. Nadam se da ćete napraviti svoj vlastiti projekt sata ili neopiksela i podijeliti ga sa mnom. Srećna zgrada!

Preporučuje se: