Kazalo:

Binarna budilka na osnovi Arduino: 13 korakov (s slikami)
Binarna budilka na osnovi Arduino: 13 korakov (s slikami)

Video: Binarna budilka na osnovi Arduino: 13 korakov (s slikami)

Video: Binarna budilka na osnovi Arduino: 13 korakov (s slikami)
Video: CS50 2013 - Week 9 2024, Julij
Anonim
Image
Image

Avtor: Basement Engineering Sledi Več avtorja:

DIY Laser People Counter
DIY Laser People Counter
Izdelava čolna, ki se sam vozi (ArduPilot Rover)
Izdelava čolna, ki se sam vozi (ArduPilot Rover)
Izdelava čolna, ki se sam vozi (ArduPilot Rover)
Izdelava čolna, ki se sam vozi (ArduPilot Rover)
Popolna nočna svetilka in priklopna enota za telefon
Popolna nočna svetilka in priklopna enota za telefon
Popolna nočna svetilka in priklopna enota za telefon
Popolna nočna svetilka in priklopna enota za telefon

O: Živjo, ime mi je Jan in sem izdelovalec, rad gradim in ustvarjam stvari, prav tako pa dobro obnavljam stvari. Ker se mi zdi, da sem vedno rad ustvarjal nove stvari in to počnem do … Več o kletnem inženiringu »

Zdravo, danes bi vam rad pokazal, kako zgraditi enega svojih najnovejših projektov, svojo binarno budilko.

Na internetu je na tone različnih binarnih ur, vendar je to dejansko lahko prva, narejena iz traku pisanih naslovljivih LED, ki ima tudi funkcijo alarma in gumbe na dotik, za nastavitev časov in barv.

Prosim, naj vas zapleten videz ne prestraši. Z malo razlage branje binarnih datotek pravzaprav ni tako težko, kot se zdi. In če ste pripravljeni izvedeti nekaj novega, vam bom pri tem pozneje pomagal.

Naj vam povem nekaj o zgodbi tega projekta:

Prvotno sem nameraval zgraditi "običajno" uro, ki uporablja LED kot roke, vendar pri roki nisem imel dovolj LED.

No, kaj počnete, če želite prikazati čas s čim manj LED diod?

Ti greš v binarni sistem, in tukaj sem naredil točno to.

Ta ura je tretja tovrstna različica. Zelo preprost prototip sem zgradil takoj, ko me je zadela projektna ideja, in ga odnesel na Maker Faire v Hannover, da vidim, kaj si ljudje mislijo o tem. Ko sem bil tam, sem prejel veliko zelo pozitivnih in zanimivih povratnih informacij ter idej za izboljšanje.

Rezultat vseh teh idej in ur razmišljanja, petljanja in programiranja je ta precej zanimiva majhna budilka, ki ima veliko več funkcij kot različica 1.0, danes pa bomo šli skozi vsak korak gradbenega procesa, tako da lahko enostavno zgradite sami.

Na Youtube -u je tudi zelo podroben video, če ne želite prebrati vsega.

1. korak: Vzemite si stvari

Pridobite svoje stvari
Pridobite svoje stvari
Pridobite svoje stvari
Pridobite svoje stvari
Pridobite svoje stvari
Pridobite svoje stvari

Tukaj je majhen seznam vseh komponent in orodij, ki jih boste potrebovali za izdelavo lastne binarne ure.

Elektronika:

  • 18 LED Ws2811 za naslavljanje (npr. Neopikslov) na traku s 60 LED na m (ebay)
  • Arduino Nano (s procesorjem ATMega328) (ebay)
  • 1307 modul RTC (ebay)
  • 4X kapacitivni gumbi na dotik (ebay)
  • bs18b20 digitalni temperaturni senzor (ebay)
  • LDR (ebay)
  • zvočnik prenosnega računalnika/pametnega telefona ali piezo zvočni signal
  • 2222A NPN tranzistor (ali kaj podobnega)
  • moške glave
  • nagnjene ženske glave (ebay)
  • 1kOhm upor
  • 4, 7kOhm upor
  • 10kOhm upor
  • Žice
  • 7x5cm prototipne PCB 24x18 luknje (ebay)
  • srebrna žica (nakitna žica) (ebay)
  • 90 ° mini USB adapter (ebay)

Drugi materiali

  • Vinilni ovoj
  • 4X 45 mm vijaki s prirobnico m4 (ebay)
  • 32X kovinske podložke
  • 4X m4 matica
  • 28X m4 matica
  • 4X 10 mm m3 medeninastega tiskanega vezja (ebay)
  • 8X 8mm m3 vijak (ebay)
  • pločevina iz aluminija
  • 2 mm list mlečnega akrila
  • 2 mm list prozornega akrila
  • 3 mm list MDF
  • dvostranski trak

Orodja

  • mini USB kabel
  • računalnik z Arduino IDE
  • 3, 5 mm sveder
  • 4, 5 mm sveder
  • električni vrtalnik
  • rezalni nož
  • žaga za spopadanje
  • spajkalni ion
  • škarje za rezanje kovin
  • mapa
  • brusni papir

Predloge (zdaj z dimenzijami)

  • PDF
  • Libre Office Draw

Koda

  • Skice
  • Knjižnica gumbov
  • Knjižnica časovnika
  • Knjižnica Jukebox
  • Spremenjen RTClib
  • Knjižnica Adafruit Neopixel
  • Arduino-knjižnica za nadzor temperature

Korak: Odrežite sprednjo in zadnjo ploščo

Odrežite sprednjo in zadnjo ploščo
Odrežite sprednjo in zadnjo ploščo
Odrežite sprednjo in zadnjo ploščo
Odrežite sprednjo in zadnjo ploščo
Odrežite sprednjo in zadnjo ploščo
Odrežite sprednjo in zadnjo ploščo
Odrežite sprednjo in zadnjo ploščo
Odrežite sprednjo in zadnjo ploščo

Prvi kos, ki ga bomo izdelali, je akrilna sprednja plošča. Označujemo, kam želimo, da bi šli naši rezi, pri tem pa ne pozabimo, da želimo malo tolerance do brušenja. Nato z nožem za rezanje preprosto strgamo akril. Ko to naredimo 10 do 20 krat, imamo utor. Ta gaj lahko nato postavimo na rob mize in upognemo akril, dokler se ne zlomi.

Ko smo sprednjo ploščo razrezali po velikosti, smo izrezali zadnjo ploščo iz kosa MDF. Za to lahko uporabimo našo žago za spopadanje, vendar tudi rezalni nož deluje. MDF moramo le pritrditi na odpadni kos lesa in ga strgati z rezalnim nožem, dokler rezilo ne gre skozi in imamo dva ločena kosa.

Zdaj obe plošči združimo skupaj in obrusimo vsako stran, da se popolnoma poravnata.

Ko to naredimo, izrežemo prvo šablono in jo z nekaj trakom položimo na dve plošči in začnemo vrtati označene luknje.

Najprej izvrtamo 4, 5 mm luknjo v vsakega od 4 vogalov. Ker je akril zelo krhek in ne želimo, da bi se zlomil, bomo začeli z majhnim svedrom in se premikali navzgor, dokler ne dosežemo želenega premera luknje. Nato s predlogo brusimo vogale do prave oblike.

3. korak: Dokončajte zadnjo ploščo

Dokončajte zadnjo ploščo
Dokončajte zadnjo ploščo
Dokončajte zadnjo ploščo
Dokončajte zadnjo ploščo
Dokončajte zadnjo ploščo
Dokončajte zadnjo ploščo
Dokončajte zadnjo ploščo
Dokončajte zadnjo ploščo

Zaenkrat lahko sprednjo ploščo odstavimo in drugo šablono prilepimo na zadnjo ploščo, kjer moramo s 3, 5 mm svedrom izvrtati luknje za naše 4 -stopenjske izhode, pa tudi 4 luknje, ki označujejo robove za malo zadnje okno.

Nato z žago za spopadanje izrežemo okno in z datoteko poravnamo robove. Prav tako ne želite pozabiti izvrtati luknje za mini USB kabel (slišal sem za enega ne tako osredotočenega izdelovalca, ki ponavadi počne take stvari: D).

Ko smo končali z rezanjem zadnje plošče, jo lahko zavijemo v vinilno folijo. Preprosto izrežemo dva kosa na pravo velikost in prvega nanesemo na eno stran. Nato odrežemo platišča in osvobodimo okno. Sušilnik za lase lahko pomaga, da so vse luknje spet vidne, zato jih lahko tudi izrežemo. Ko naredimo isto za drugo stran, uporabimo naslednjo predlogo in tehniko strganja in lomljenja, da naredimo malo akrilno okno za našo zadnjo ploščo.

4. korak: Naredite LED ploščo

Naredite LED ploščo
Naredite LED ploščo
Naredite LED ploščo
Naredite LED ploščo
Naredite LED ploščo
Naredite LED ploščo

Zdaj smo prišli do vrhunca tega projekta, v najbolj dobesednem smislu. LED plošča.

S škarjami za rezanje kovin izrežemo kos 12, 2 cm x 8 cm iz pločevine. Pri tem bodite previdni, saj škarje ustvarjajo zelo ostre robove. Te bomo zgladili z našo datoteko in nekaj brusnega papirja. Nato dodamo našo naslednjo predlogo za vrtanje lukenj za vijake in žice.

Čas je za pripravo dejanskih LED.

Najprej jih razrežemo na tri trakove po 6 LED. Nekateri LED trakovi so opremljeni z zelo tanko lepilno plastjo ali pa sploh nimajo lepila, zato jih bomo prilepili na kos dvostranskega traku in ga po velikosti razrezali z nožem. Tako se bo lepila na kovinsko ploščo in, čeprav to ni profesionalna rešitev, bo izolirala bakrene blazinice od kovinske površine spodaj.

Preden trakove dejansko prilepimo na ploščo, jo očistimo z alkoholom. Medtem ko pritrdimo LED, moramo paziti, da jih postavimo tako na pravo mesto kot v pravo smer. Majhne puščice na LED traku označujejo smer, v kateri potujejo podatki skozi trak.

Kot lahko vidite na peti sliki, naša podatkovna vrstica prihaja iz zgornjega levega kota plošče, gre skozi prvi trak vse do desne strani, nato pa nazaj na začetek naslednjega traku na levi itd.. Zato morajo vse naše puščice kazati na desno stran.

Segrejmo svoj spajkalni ion in položimo kositer na bakrene blazinice in na žico. Podatkovni vodi sta povezani, kot sem pravkar opisal, medtem ko preprosto povežemo plus in minus blazinici traku vzporedno.

Po ožičenju trakov z nožem previdno dvignemo konce vsakega traku, medtem ko LED držimo navzdol, tako da so še vedno usmerjeni navzgor. Nato spodaj nanesemo nekaj vročega lepila, da izoliramo spajkalne spoje.

Ko to storite in žicam, ki gredo na tiskano vezje, dodamo nekaj zatičev glave. Te žice naj bodo dolge približno 16 cm. Da bi bili še bolj prepričani, da kovinska plošča nič ne kratka, uporabimo multimeter za merjenje upora med vsemi zatiči. Če pokaže kaj nad 1 kOhm, je vse v redu.

Zdaj ga lahko priklopimo na Arduino, zaženemo najtežje in uživamo v barvah.

5. korak: Naredite svetlobni vodnik

Naredite svetlobni vodnik
Naredite svetlobni vodnik
Naredite svetlobni vodnik
Naredite svetlobni vodnik
Naredite svetlobni vodnik
Naredite svetlobni vodnik
Naredite svetlobni vodnik
Naredite svetlobni vodnik

Če postavimo našo LED ploščo tik za mlečni akril, lahko ločimo posamezne LED diode. Tako bi našo uro še težje brali, kot je že.

Da bi rešili to težavo, si bomo naredili majhen svetlobni vodnik. Za to preprosto izrežemo še en kos MDF -ja, ki je enake velikosti kot sprednja plošča. Nato ji dodamo še eno predlogo in izvrtamo osemnajst 3, 5 mm lukenj za LED diode, pa tudi štiri 4, 5 mm luknje za vijake. Nato ga lahko pritrdimo na sprednjo ploščo in z brusnim papirjem poravnamo oba.

Kot lahko vidite na zadnji sliki, je svetloba zdaj precej bolj osredotočena.

6. korak: naredite okvir gumba

Naredite okvir gumba
Naredite okvir gumba
Naredite okvir gumba
Naredite okvir gumba
Naredite okvir gumba
Naredite okvir gumba

Zadnja komponenta ohišja, ki jo bomo izdelali, je okvir gumba.

Spet smo eni odrezali kos MDF -a na pravo velikost in mu dodali predlogo, nato izvrtamo vse potrebne luknje in z žago za obrez izrežemo srednji del.

Naš okvir naj bi na mestu držal 4 gumbe na dotik, svetlobni senzor in naš mali zvočnik. Preden jih lahko pritrdimo na okvir, smo iz MDF izrezali nekaj manjših pokrovov. Nato na vroče lepimo naše komponente in jim dodamo žice.

Napajalne ploščice na dotik so priključene vzporedno, medtem ko vsaka izhodna linija dobi ločeno žico. To je tudi dober trenutek, da preizkusite, ali vsi delujejo. Ker svetlobni senzor potrebuje 5 voltov na eni strani, ga lahko preprosto priklopimo na alarmno tipko VCC blazinico in spajkamo žico na drugo nogo.

Ko so plošče pripravljene, jih razrežemo na stranice okvirja, da naredimo prostor zanje in njihove žice.

Nato s sesalnikom odstranimo lesni prah z vseh kosov in jih prekrijemo v vinilno folijo.

Z natančnim nožem odstranimo koščke vinila, neposredno nad občutljivimi področji naših modulov na dotik. Z dvostranskim trakom lahko na MDF pritrdimo lastne gumbe. Gumbe sem naredil iz gumijaste pene, ki jim daje lepo, mehko teksturo, lahko pa uporabite kateri koli nekovinski material, ki ga želite.

Na okvirju z nožem spet sprostimo malo MDF -a, kar nam daje prijetno površino za vroče lepilo. Nato lahko končno lepimo komponente na stranice našega okvirja.

Korak 7: Spajkajte glavno tiskano vezje

Spajkajte glavno tiskano vezje
Spajkajte glavno tiskano vezje
Spajkajte glavno tiskano vezje
Spajkajte glavno tiskano vezje
Spajkajte glavno tiskano vezje
Spajkajte glavno tiskano vezje

Pustimo okvir tako, kot je zdaj, in pojdimo na tiskano vezje. Na prvi sliki lahko vidite postavitev tiskanega vezja.

Začnemo tako, da na tiskano vezje postavimo komponente z najnižjim profilom. Najmanjše komponente so žični mostovi, ki sem se jih spomnil nekoliko prepozno, zato sem začel z upori. Svoje komponente spajkamo na mestu in preidemo na naslednji višji sklop komponent.

Naslednjič so naši ženski zatiči glave. Da prihranimo nekaj prostora in da lahko elektroniko priključimo s strani, jih montiramo pod kotom 90 stopinj.

Tranzistorji res ne ustrezajo 2, 54 mm razmiku lukenj našega tiskanega vezja, zato s kleščami previdno upognemo noge do oblike, prikazane na drugi sliki. Najprej spajkamo eno od njihovih nog in obrnemo tiskano vezje. Spajkalni spoj nato ponovno segrejemo in s prstom ali kleščami pravilno postavimo komponento. Zdaj lahko dve drugi nogi spajkamo na mestu.

Po vseh majhnih komponentah smo spajkali naš Arduino in modul ure v realnem času. Tudi modul RTC se ne ujema tako dobro z razmikom lukenj, zato bomo opremili le stran, ki ima 7 spajkalnih blazinic z zatiči za glavo. Poleg tega pod njo položimo nekaj traku, da preprečimo kratek stik.

Ker so vse naše komponente spajkane na mestu, je zdaj čas za povezavo na drugi strani plošče. Za to bomo odstranili našo neizolirano žico. Za poravnavo lahko uporabite klešče. Nato žico razrežemo na manjše kose in jo spajkamo na tiskano vezje.

Za vzpostavitev povezave segrejemo spajkalni spoj in vstavimo žico. Na njem nato držimo spajkalni ion, dokler ne doseže prave temperature in ga spajka ne zapre in dobimo spoj, ki je videti kot na sliki. Če žice ne segrejemo, lahko pride do hladnega spoja, ki bi bil podoben drugemu primeru in se ne obnaša zelo dobro. Z rezalnikom žice lahko med spajkanjem potisnemo žico navzdol in se prepričamo, da je položena na tiskano vezje. Na daljših priključnih poteh ga spajkamo na eno ploščico vsakih 5 do 6 lukenj, dokler ne pridemo do vogala ali naslednje komponente.

V kotu smo prerezali žico nad prvo polovico spajkalne plošče in ji spajkali konec. Nato vzamemo nov kos žice in od tam nadaljujemo pod pravim kotom.

Vzpostavitev teh praznih žičnih povezav je precej težavna in zahteva nekaj spretnosti, zato, če to počnete prvič, vsekakor ni slaba ideja, da jo vadite na odpadnem tiskanem vezju, preden poskusite to narediti na pravem.

Po končanem spajkanju ponovno preverimo povezave in se prepričamo, da nismo povzročili kratkega stika. Nato lahko vstavimo tiskano vezje v okvir gumba in ga uporabimo kot referenco za potrebne dolžine žic okvirja. Nato te žice odrežemo na pravo dolžino in jim dodamo moške zatiče glave.

Vse 5V in ozemljitvene povezave gumbov na dotik se združijo v 2 -pinski konektor, 4 izhodne žice dobijo 4 -pinski konektor in linijo svetlobnega senzorja ter dve žici zvočnikov, združenih v tri -polni konektor. Ne pozabite označiti ene strani vsake vtičnice in priključka z ostrino ali s kakšnim trakom, da jih slučajno ne priključite na napačen način.

8. korak: Sestavite uro

Sestavite uro
Sestavite uro
Sestavite uro
Sestavite uro
Sestavite uro
Sestavite uro
Sestavite uro
Sestavite uro

Po tem sem se vrnil na sprednjo ploščo in kot zadnji dotik previdno nalepil nalepko iz prozorne laserske folije za tiskalnik.

Čeprav sem ga uporabil zelo previdno, nisem mogel dobiti rezultata brez mehurčkov, kar je na žalost jasno vidno ob natančnejšem pregledu. Folija se prav tako ne drži zelo vogalov, zato te rešitve ne morem priporočiti.

Verjetno bi to lahko naredili z boljšo nalepko ali pa, če dobro risate, lahko številke dodate z ostrino.

Zdaj imamo vse komponente in lahko sestavimo uro.

Začnemo tako, da svetlobni vodnik in sprednjo ploščo združimo skupaj. Ko so vstavljeni vsi 4 vijaki, poravnamo obe plošči in ju nato zategnemo. Nekaj orehov kasneje pride na vrsto svetlobna plošča, kjer moramo pogledati smer. Kabel mora biti na vrhu.

Tretji del je okvir gumba. Upoštevajte, da mora biti zvočnik, gledano s sprednje strani, na desni strani ure. Povlecite kabel LED plošče skozi sredino okvirja, preden ga pritrdite.

Zdaj namestimo sprednjo montažo in se premaknemo na zadnjo ploščo. Na sliki lahko vidite tudi moj čudovit 90 -stopinjski mini USB adapter, ki sem ga naredil sam. Povezal sem vam ustrezen adapter, zato se vam ne bo treba spopadati s tovrstno zmešnjavo. Preprosto priključite adapter in kabel speljite skozi luknjo na zadnji plošči.

Za pritrditev okna vzamemo vijake M3 in distančnike iz tiskanih vezij. Pomembno je, da vijake previdno privijete, saj ne želimo poškodovati našega akrila. Nato vzamemo tiskano vezje, priključimo adapter in ga privijemo na distančnike. Stran komponente mora biti obrnjena proti oknu, medtem ko so vrata USB Arduina obrnjena proti dnu ure.

Nato priključimo vse priključke s sprednjega sklopa, pri tem pa ne pozabimo na polarnost in previdno stisnemo vse žice v uro. Nato ga lahko zapremo z zadnjo ploščo in privijemo 4 preostale matice.

Na koncu želite imeti podložko na vsaki strani vsake plošče, svetlobni vodnik pa je nameščen neposredno za sprednjo ploščo. Med svetlobnim vodilom in vodilno ploščo imamo eno matico in še dve, ki ju ločujeta od okvirja gumbov. To lahko vidite tudi na zadnji sliki.

Ker sem uporabil kratke vijake dolžine 40 mm, imam samo 3 matice, ki zadnjo ploščo in okvir ločita. S pravimi 45 mm vijaki bi tukaj dodali še eno matico in eno ali dve dodatni podložki. Na koncu montaže imamo našo protimatico, tako da vse ostane na svojem mestu.

9. korak: Naložite kodo in umerite svetlobni senzor

Naložite kodo in umerite svetlobni senzor
Naložite kodo in umerite svetlobni senzor
Naložite kodo in umerite svetlobni senzor
Naložite kodo in umerite svetlobni senzor
Naložite kodo in umerite svetlobni senzor
Naložite kodo in umerite svetlobni senzor

Čas je, da naložimo našo kodo.

Najprej naložimo vse potrebne datoteke in jih razpakiramo. Nato odpremo mapo knjižnic Arduino in vanj spustimo vse nove knjižnice.

Zdaj odpremo skico kalibracije senzorja svetlobe, ki nam bo dala svetle in temne vrednosti za funkcijo samodejnega zatemnitve ure. Naložimo ga, odpremo serijski monitor in sledimo navodilom na zaslonu.

Ko to storimo, odpremo dejansko kodo binarnih ur in dve vrednosti zamenjamo z vrednostmi, ki smo jih pravkar izmerili.

Zapremo vsa druga okna, naložimo kodo v uro in končali smo.

Čas je, da se igrate z našim novim pripomočkom.

10. korak: hiter uvod v binarni sistem

Hiter uvod v binarni sistem
Hiter uvod v binarni sistem
Hiter uvod v binarni sistem
Hiter uvod v binarni sistem
Hiter uvod v binarni sistem
Hiter uvod v binarni sistem
Hiter uvod v binarni sistem
Hiter uvod v binarni sistem

Preden nadaljujemo, bi rad odgovoril na eno vprašanje, ki vam je verjetno že padlo na pamet, "Kako sploh bereš to uro?"

No, za to bi vam rad na kratko predstavil binarni sistem.

Vsi poznamo decimalni sistem, kjer ima lahko vsaka številka 10 različnih stanj, ki segajo od 0 do 9. V binarnem stanju ima lahko vsaka številka samo dve stanji, bodisi 1 ali 0, zato lahko uporabite nekaj tako preprostega, kot je prikaže binarno številko.

Za prikaz številk, ki so v decimalkah večje od 9, dodamo več števk. Vsaka številka ima določen množitelj. Prva številka na desni je z množiteljem 1, naslednja je 10, naslednja pa 100. Z vsako novo števko je množitelj desetkrat večji od števca prej. Tako vemo, da številka dve, postavljena eno števko na levo, predstavlja število 20. Medtem ko dve števki na levi, predstavlja 200.

V binarnem sistemu ima vsaka številka tudi množitelj. Ker pa ima lahko vsaka številka samo dve različni stanji, je vsak nov množitelj dvakrat večji od prejšnjega. Oh in mimogrede, binarne številke imenujemo bitovi. Oglejmo si torej prvi primer, če postavimo 1 na najnižjo pozicijo, je to preprosto 1, če pa ga postavimo na naslednjo višjo pozicijo, kjer je naš množitelj 2, predstavlja število 2 v binarnem sistemu.

Kaj pa nekoliko bolj zapleten primer na dnu slike. Tretji in prvi del sta vklopljena. Če želite dobiti decimalno število, ki je predstavljeno tukaj, preprosto dodamo vrednosti dveh bitov. Torej 4 * 1 + 1 * 1 ali 4 + 1 nam daje številko 5.

8 bitov se imenuje bajt, zato poglejmo, kakšno število dobimo, če cel bajt napolnimo z enotami.1+2+4+8+16+32+64+128, to je 255, kar je najvišja vrednost, ki jo lahko ima en sam bajt.

Mimogrede, medtem ko je v decimalnem sistemu številka z najvišjim množiteljem vedno na prvem mestu, imate dva načina zapisovanja števila v binarni obliki. Ti dve metodi se imenujeta najprej najmanj pomemben bajt (LSB) in prvi najpomembnejši bajt (MSB). Če želite prebrati binarno število, morate vedeti, kateri od obeh formatov je uporabljen. Ker je bližje decimalnemu sistemu, naša binarna ura uporablja različico MSB.

Vrnimo se k našemu zgledu iz resničnega sveta. Kot je poudarjeno na šesti sliki, ima naša ura 4 bite za prikaz ure. Potem imamo 6 bitov za minuto in 6 bitov za drugo. Poleg tega imamo en sam am/pm bit.

V redu, povej, koliko je ura na šesti sliki, nato pa pojdi na zadnjo.. ….

v urnem oddelku imamo 2+1, ki je 3, in bit za pm je vklopljen, tako da je večer. Sledi minuta 32+8, to je 40. Za sekunde imamo 8+4+2, kar je 14. Torej je 15:40:14 popoldne ali 15:40:14.

Čestitamo, pravkar ste se naučili brati binarno uro. Seveda se je treba navaditi in na začetku boste morali številke seštevati, vsakič, ko želite vedeti, koliko je ura, vendar se podobno kot analogna ura brez številčnice navadite na vzorce LED čas.

In to je del tega, za kar gre pri tem projektu, saj je v resnični svet popeljal nekaj tako abstraktnega, kot je binarni sistem, in ga bolje spoznal.

11. korak: Uporaba binarne budilke

Uporaba binarne budilke
Uporaba binarne budilke
Uporaba binarne budilke
Uporaba binarne budilke
Uporaba binarne budilke
Uporaba binarne budilke

Zdaj se končno želimo poigrati z uro, zato si na hitro poglejmo kontrole.

Programska oprema lahko razlikuje med enim dotikom gumba, dvojnim dotikom in dolgim dotikom. Tako lahko vsak gumb uporabite za več dejanj.

Dvojni dotik gumba gor ali dol spremeni barvni način LED. Izbirate lahko med različnimi statičnimi in zbledelimi barvnimi načini ter temperaturnim načinom. Če ste v enem od statičnih barvnih načinov, držite gumb gor ali dol, da spremenite barvo. V načinu izginjanja en sam dotik spremeni hitrost animacije.

Če želite nastaviti način zatemnitve, se dvakrat dotaknite gumba ok. LED plošča označuje nastavljeni način z večkratnim utripanjem.

  • Enkrat pomeni, da ni zatemnitve.
  • Dvakrat pomeni, da svetlost nadzoruje senzor svetlobe.
  • Trikrat in LED se samodejno izklopijo po 10 sekundah neaktivnosti.
  • Štirikrat in oba načina zatemnitve sta združena.

Dolg pritisk gumba ok vas pripelje v način nastavitve časa, kjer lahko s puščicami gor in dol spremenite številko. Z enim dotikom gumba v redu se od ur do minut prikaže še en dotik in nastavite lahko sekunde. Po tem se z zadnjim dotikom shrani nov čas. Če vstopite v način za nastavitev časa, lahko preprosto počakate 10 sekund in ura ga samodejno zapusti.

Tako kot pri gumbu ok lahko tudi z dolgim pritiskom na gumb za alarm nastavite alarm. Dvojni dotik alarmnega gumba vklopi ali izklopi alarm.

Če ura zvoni, z enim dotikom pritisnete gumb za alarm, da ga pošljete v stanje mirovanja 5 minut ali ga zadržite, da deaktivirate, da deaktivirate alarm.

To so bile vse funkcije, ki jih ima ura doslej. Če prenesete najnovejšo različico vdelane programske opreme, bi lahko v prihodnosti dodal še nekaj.

12. korak: Razumevanje kode (neobvezno)

Razumevanje kode (neobvezno)
Razumevanje kode (neobvezno)

Vem, da mnogi ljudje ne marajo zelo programiranja. Na srečo teh ljudi za izdelavo in uporabo te binarne ure ni potrebno znanje programiranja. Če vas torej ne zanima programska stran, lahko ta korak preprosto preskočite.

Če pa vas zanima kodirni del, bi vam rad dal splošen pregled programa.

Razlaga vseh podrobnosti kode ure bi bila sama po sebi Instructable, zato bom olajšal z razlago programa na objektno naravnan način.

Če ne veste, kaj to pomeni, je objektno usmerjeno programiranje (OOP) koncept večine sodobnih programskih jezikov, kot je C ++. Omogoča vam razvrščanje različnih funkcij in spremenljivk v tako imenovane razrede. Razred je predloga, iz katere lahko ustvarite enega ali več predmetov. Vsak od teh objektov dobi ime in svoj niz spremenljivk.

Koda ure na primer uporablja nekaj predmetov MultiTouchButton, kot je alarmButton. To so predmeti iz razreda MultiTouchButton, ki je del moje knjižnice gumbov. Najbolj zanimivo pri teh objektih je, da lahko z njimi vmesnik podobno kot pri objektih v resničnem svetu. Na primer, lahko preverimo, ali se je gumb za alarm dvakrat dotaknil s klicem alarmButton.wasDoubleTapped (). Poleg tega je izvajanje te funkcije lepo skrito v drugi datoteki in ni nam treba skrbeti, da bi jo razbili, tako da spremenimo karkoli drugega v naši kodi. Hiter vstop v svet objektno usmerjenega programiranja najdete na spletnem mestu Adafruit.

Kot lahko vidite na zgornji sliki, ima program ure veliko različnih predmetov.

Pravkar smo govorili o predmetih gumbov, ki lahko razlagajo vhodne signale kot dotik, dvojni dotik ali dolg pritisk.

Jukebox, kot že ime pove, lahko povzroča hrup. Ima več melodij, ki jih je mogoče predvajati skozi majhen zvočnik.

Objekt binaryClock upravlja čas in nastavitev alarma ter spremljanje alarmov. Poleg tega dobi čas iz modula rtc in ga pretvori v medpomnilnik binarnih informacij za ledPanel.

ColorController zajema vse funkcije barvnega učinka in zagotavlja colorBuffer za ledPanel. Prav tako shrani svoje stanje v Arduinos EEProm.

Zatemnitev skrbi za svetlost ure. Ima različne načine, po katerih se lahko uporabnik premika. Trenutni način je shranjen tudi v EEPromu.

LEDPanel upravlja različne pufre za barvno vrednost, vrednost svetlosti in binarno stanje vsake LED. Kadar koli pokličete funkcijo pushToStrip (), jih prekriva in pošlje na trak LED.

Vsi predmeti so "povezani" preko glavnega (datoteka s funkcijami nastavitve in zanke), ki vključuje le nekaj funkcij za izvajanje 3 bistvenih nalog.

  1. Tolmačenje uporabniškega vnosa - dobi vnos iz štirih gumbov in jih prenese skozi logiko. Ta logika preverja trenutno stanje ure, da ugotovi, ali je ura v normalnem stanju, nastavitev časa ali način zvonjenja in ustrezno pokliče različne funkcije od drugih predmetov.
  2. Upravljanje komunikacije med objekti - Neprestano sprašuje objekt binaryClock, če ima na voljo nove informacije ali če je alarmRinging (). Če ima nove informacije, prejme informationBuffer iz binaryClock in jih pošlje objektu ledPanel. Če ura zvoni, se zažene jukebox.
  3. Posodabljanje predmetov - vsak predmet programa ima postopek posodobitve, ki se uporablja za stvari, kot so preverjanje vhodov ali spreminjanje barv LED. Za pravilno delovanje ure jih je treba v funkciji zanke večkrat poklicati.

To bi vam moralo dati splošno razumevanje, kako posamezni kodi delujejo skupaj. Če imate natančnejša vprašanja, me lahko preprosto vprašate.

Ker moja koda vsekakor še zdaleč ni popolna, jo bom v prihodnje še izboljšal, zato se lahko spremeni nekaj funkcij. Najbolj zanimivo pri OOP je, da bo še vedno deloval na zelo podoben način in da ga lahko še vedno razumete z grafiko.

Korak: Zadnje besede

Zaključne besede
Zaključne besede

Vesel sem, da ste do te točke še naprej brali. To pomeni, da moj projekt ni bil preveč dolgočasen:).

V to malo uro sem vložil ogromno dela in še več dela v vso dokumentacijo in video, da vam olajšam izdelavo lastne binarne budilke. Upam, da je bil moj trud vreden in da bi vas lahko pripeljal z odlično idejo za vaš naslednji vikend projekt ali pa vam vsaj dal navdih.

V spodnjih komentarjih bi rad slišal, kaj mislite o uri:).

Čeprav sem poskušal pokriti vse podrobnosti, sem morda spregledal kakšno stvar. Zato vas prosimo, če imate še kakšno vprašanje.

Kot vedno, najlepša hvala za branje in veselo ustvarjanje.

LED tekmovanje 2017
LED tekmovanje 2017
LED tekmovanje 2017
LED tekmovanje 2017

Podprvak na LED tekmovanju 2017

Priporočena: