Sadržaj:
- Korak 1: Dizajniranje sata
- Korak 2: Projektiranje elektronike
- Korak 3: Izgradnja elektronike
- Korak 4: Kodiranje sata
- Korak 5: Projektiranje laserski izrezanih datoteka
- Korak 6: Konstruiranje sata
- Korak 7: Završne misli
Video: NeoClock: 7 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Ovdje se radi o izgradnji sata pomoću fantastičnih prstenova od neopiksela iz Adafruit -a. Zabavna stvar ovog sata je ta što 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 na izradu satova ili druge umjetnosti pomoću prstenova 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
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 u drugom, koji čuva izvorni oblik sata. Manji prsten bi bio sati, a preostalo bi se vrijeme 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.
Nakon što je ovaj korak završen, odlučio sam da moram razumjeti elektroniku prije izrade planova za lasersko rezanje kućišta sata.
Korak 2: Projektiranje elektronike
Dizajniranje elektronike svodilo se na unaprijed poznavanje elemenata koje sam htio u satu:
- Neopikselni prstenovi (60 broji i 24 broji)
- Arduino (mozak)
- Regulacija sata (arduini ne održavaju dobro vrijeme)
- 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 na to da je prostor bio u pitanju, odlučio sam prototipirati obični Arduino Uno, ali za konačnu elektroniku odabrao sam Arduino Mini.
Prva iteracija ovog projekta došla je izravno sa stranice NeoPixel Basic Connections tvrtke Adafruit. Uključio sam dijagram s web stranice kako bih olakšao stvari. Dvije stvari su važne iz ovoga:
- Kondenzator od 1000uF potreban je kako bi se spriječilo da početni udar struje ošteti piksele.
- Otpornik od 470 ohma potreban je za prvi piksel prstena od 60 brojanja (ovaj otpornik je ugrađen u prsten od 24 brojanja)
Adafruit također ima skup NeoPixel najboljih praksi koje biste trebali pročitati prije nego nastavite s dizajnom.
Održavanje vremena na satu drugi je problem. Ugrađeni sat na arduinu nije dovoljan za dugo vrijeme. Još je veći problem to što će se vrijeme na arduinu svaki put morati poništiti. Računala rješavaju ovaj problem pomoću male baterije na čipu sata kako bi se zadržalo 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 razmotriti upravljanje energijom. Već sam znao da sve treba biti 5V, 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 ležim zidnu sladovinu od 12V 1.5A pa sam odlučio da će ovo biti savršen (i jeftin!) Regulator napona za projekt.
Preostali komadi su dolazili iz moje kutije s dijelovima ili Radio Shacka. Uključivali su žice, prekidače i istosmjernu utičnicu.
Korak 3: Izgradnja elektronike
Cjelovit popis elektronike koju sam kupio za izradu ovog projekta nalazi se u mojem github spremištu ovdje: Popis dijelova elektronike. Ima poveznice na stranicu proizvoda za svaki komad i uključuje neke dodatne informacije, uključujući SKU 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. Izvođenje ove početne izrade prototipa prije projektiranja laserskog reza omogućilo mi je provjeriti debljinu 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či Mode i Set trebat će povući otpornike. Koristio sam otpornike od 2,21 Ohma koje sam ležao, ali svaki mali otpornik će raditi (po mogućnosti ne manje od 1 kOhm). Time se stabiliziraju spojeni Arduino ulazni pinovi 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 prstena od 60 neopiksela ima otpornik od 470Ohm za smanjenje bilo kakvog oštećenja prvog piksela uslijed skokova podataka. To 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 Mode i Set su trenutni prekidači s tipkama SPST
Boje žica su:
- Crvena: +5VDC
- Crna: Uzemljena
- Zelena: Podaci
- Žuta, plava, bijela: posebne žice za DS3234
Ako prvi put koristite neopiksele, zapamtite da se o njima može razmišljati kao o dugom lancu. Stoga bi se moglo činiti čudnim 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 doista 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 s pina 6.
Također preporučujem da stavite 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 je praktično iskustvo da će sve jednako ili manje od 500mA na kraju uzrokovati smeđe izlaze. To se očituje 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
Potpuni kod za sat možete pronaći u NeoClock kodu na GitHubu. Ovdje sam uključio datoteku, ali sve će se promjene dogoditi u spremištu.
Smatram da je pisanje koda zastrašujuće ako pokušate učiniti sve odjednom. Umjesto toga, 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 s Primjerom testa pramena
- Pokušajte pokrenuti sat s kodom vremenske petlje
- Izmijenite sat da radi na dva zvona umjesto samo na jednom
- Dodajte DS3234 kako biste zadržali vrijeme putem primjera DeadOn RTC
- 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 sata
- Dodajte neke animacije za oznake 0, 15, 30 i 45 minuta
- Dodajte točke kompasa satu kako biste orijentirali oznake 0, 15, 30 i 45 minuta
Ako želite vidjeti kako sam izgradio ovaj kôd, možete koristiti GitHub za pregled svakog urezivanja koda. Povijest sata nalazi se u povijesti urezivanja.
Sheme boja bilo je zabavno dodavati, ali na kraju sam u izbornik uvrstila samo četiri. Svaka tema postavlja određenu boju na "kazaljkama" sata, minute, 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 toč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
Pokazalo se da je upotrebljivost problem sa satom jer nitko nije mogao orijentirati sat. Ipak su to samo dva prstena LED -a. Stoga sam za rješavanje problema dodao sat kompasa na sat. To 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. No, ispostavilo se da u mraku ne možete vidjeti umjetnost tako dobro, pa posjedovanje točaka kompasa itekako pomaže. Jedno razmatranje u vezi s tim 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 unutarnjeg 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 činio da nešto radi. 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: Projektiranje laserski izrezanih datoteka
Postoje dva razmatranja koja sam morao uzeti u obzir pri dizajniranju datoteka za lasersko rezanje. Prvi je bio materijal od kojeg sam ga htio izgraditi, a drugi je 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 usporedim kako bi to izgledalo u odnosu na drvo. Na kraju sam se odlučila za Cherry drvo s Opal akrilom.
Dimenzije sata uglavnom su određene veličinom neopikselnih prstenova. Ono što nisam znao bilo je koliko mora biti debela kako bi odgovarala elektronici. Izgradivši elektroniku i znajući da je drvo debljine oko 5,5 mm, utvrdio sam da mi treba oko 15 mm prostora unutar sata. To je značilo tri sloja drva. No, budući da prednja i stražnja strana već zauzimaju većinu prostora u mojem dizajnu, bilo mi je potrebno razbiti te prstenove na "rebra" koja sam kasnije mogla zalijepiti.
Koristio sam InkScape za crtanje po predlošku koji je dao Ponoko. Nakon što sam izvukao tijelo sata, tada sam ručno nacrtao stablo. Nisam mogao uvesti izvornu 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. Dvije su stvari tome pridonijele:
- Krivulje i krugovi koštaju više jer se stroj kreće u dvije osi, a 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 i moji su radovi gotovi otprilike tjedan dana kasnije.
Imajte na umu da u dizajn nisam uključio prekidače načina rada i postavljanja ili utičnicu istosmjerne struje. Kad sam ovo poslao, još se nisam odlučio za te dijelove. Kako bih si dao veću fleksibilnost, ostavio sam ih i odlučio da ću ih kasnije ručno izbušiti.
Korak 6: Konstruiranje sata
Kad su stigli svi komadi, konstruirao 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 tijekom izgradnje. Zalijepila sam ga na stražnju stranu stabla i to mi je dalo mjesto na kojem sam kasnije mogla zalijepiti neopiksele.
S izrađenim 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 drva izvana dok sam bušio (vrlo pažljivo!) Napravio sam rupe i zalijepio prekidače i utičnicu.
Slijedila je sva elektronika. Najprije sam zalijepio neopiksele, a zatim kondenzator. Ovo sam spojio na 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 tome je što ako želite označiti 12 sati, na kraju ćete osvijetliti dva piksela umjesto jednog. Imajući pomak i širenje plastike, činit će se kao da zaista imate 12 širokih piksela.
Što se tiče piksela koji kôd označava kao "vrh" za svaki prsten, 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" 36 piksela od početka velikog prstena. Ako se dogodi da drukčije orijentirate prstenove, promijenili biste ove vrijednosti u one iz svoje orijentacije. Malo eksperimentiranja i brzo ćete pronaći pravu vrijednost.
U ovom trenutku sam testirao da li je sve radilo kako se očekivalo.
No, 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 tipla 3/8 inča i brojne neodimijske magnete. Napravio sam male drvene stalke na tri mjesta i brusio ih kako bih mogao staviti dva magneta na svako postolje (koristeći super ljepilo). Završio sam s 3 para po 2 stalka. 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 što 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. No, imati gumb koji bi mi omogućio silazak dolje i gore bilo bi lijepo za namještanje sata
- Gumb za način rada i gumb 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.
- Rasteriziranje 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 značajka 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. Vjerojatno bih u budućnosti ponovno uložio u tu značajku.
Hvala vam što ste pročitali ovo uputstvo. Nadam se da ćete napraviti vlastiti projekt sata ili neopiksela i podijeliti ga sa mnom. Sretna zgrada!
Preporučeni:
Kako: Instaliranje Raspberry PI 4 bez glave (VNC) s Rpi-imagerom i slikama: 7 koraka (sa slikama)
Kako: Instaliranje Raspberry PI 4 Headless (VNC) s Rpi-imagerom i slikama: Planiram koristiti ovaj Rapsberry PI u hrpi zabavnih projekata na svom blogu. Slobodno provjerite. Htio sam se vratiti korištenju Raspberry PI -a, ali nisam imao tipkovnicu ili miš na novoj lokaciji. Prošlo je dosta vremena od postavljanja maline
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovno početi vježbati. Koju opremu trebam pripremiti?
Brojač koraka - Mikro: Bit: 12 koraka (sa slikama)
Brojač koraka - Micro: Bit: Ovaj projekt će biti brojač koraka. Za mjerenje koraka koristit ćemo senzor akcelerometra koji je ugrađen u Micro: Bit. Svaki put kad se Micro: Bit protrese, zbroju ćemo dodati 2 i prikazati ga na ekranu
Atari Punk konzola s bebom Sekvencer za 8 koraka: 7 koraka (sa slikama)
Atari Punk konzola s Baby 8 Step Sequencer-om: Ova srednja verzija je sve-u-jednom Atari Punk Console i Baby 8 Step Sequencer koje možete glodati na stolnom PCB glodalici Bantam Tools. Sastoji se od dvije ploče: jedna je ploča korisničkog sučelja (UI), a druga je pomoćna bo
Kako rastaviti računalo jednostavnim koracima i slikama: 13 koraka (sa slikama)
Kako rastaviti računalo jednostavnim koracima i slikama: Ovo uputstvo o tome kako rastaviti računalo. Većina osnovnih komponenti je modularna i lako se uklanja. Međutim, važno je da se oko toga organizirate. To će vam pomoći da spriječite gubitak dijelova, a također i prilikom ponovnog sastavljanja