Sadržaj:

Vrhunski binarni sat: 12 koraka (sa slikama)
Vrhunski binarni sat: 12 koraka (sa slikama)

Video: Vrhunski binarni sat: 12 koraka (sa slikama)

Video: Vrhunski binarni sat: 12 koraka (sa slikama)
Video: 10 самых АТМОСФЕРНЫХ мест Дагестана. БОЛЬШОЙ ВЫПУСК #Дагестан #ПутешествиеПоДагестану 2024, Novembar
Anonim
Vrhunski binarni sat
Vrhunski binarni sat
Vrhunski binarni sat
Vrhunski binarni sat
Vrhunski binarni sat
Vrhunski binarni sat

Nedavno sam se upoznao sa konceptom binarnih satova i počeo da istražujem da li mogu da napravim jedan za sebe. Međutim, nisam uspio pronaći postojeći dizajn koji bi bio istovremeno funkcionalan i moderan. Odlučio sam stvoriti vlastiti dizajn potpuno od nule!

Supplies

Svi fajlovi za ovaj projekat:

Biblioteke za Arduino kod mogu se preuzeti sa GitHub -a ovdje:

M41T62 RTC biblioteka

FastLED biblioteka

Biblioteka LowPower

Korak 1: Ideja

Nedavno sam naleteo na sledeći video:

DIY binarni ručni sat

Gornji video prikazuje osnovni domaći binarni sat. Nisam imao pojma da takvo nešto postoji, ali nakon što sam dodatno istražio temu binarnih satova, brzo sam shvatio da postoji gomila različitih dizajna! Htio sam izgraditi jedan za sebe, ali nisam mogao pronaći dizajn koji mi se svidio. Binarni satovi koje sam pronašao nisu imali puno funkcija i nisu izgledali posebno dobro. Odlučio sam dizajnirati vlastiti potpuno od nule!

Prvi korak je bio uspostavljanje kriterija za moj dizajn. Evo šta sam smislio:

  • Binarni RGB interfejs
  • Prikaz vremena (sa vrlo preciznim praćenjem vremena)
  • Prikaz datuma
  • Štoperica funkcionalnost
  • Funkcionalnost alarma
  • Trajanje baterije najmanje 2 sedmice
  • USB punjenje
  • Softver korisnik lako prilagođava
  • Čist i jednostavan dizajn

Ovi kriteriji su postali temelj cijelog projekta. Sljedeći korak je bio shvatiti kako želim da sat funkcionira!

Korak 2: Neka teorija binarnog sata

Neka teorija binarnog sata
Neka teorija binarnog sata

Plan je bio jednostavan. Binarni sat bi radio kao i običan sat, osim što bi interfejs bio binarni, tačnije BCD (binarno kodirana decimalna). BCD je vrsta binarnog kodiranja gdje je svaka decimalna znamenka predstavljena fiksnim brojem bitova. Potrebna su mi 4 bita da bih mogao predstavljati cifru od 0-9. I za standard

hh: mm

format vremena, trebaju mi 4 te cifre. To znači da mi je potrebno ukupno 16 bita koji će biti predstavljeni sa 16 LED dioda.

Čitanje vremena u BCD -u prilično je jednostavno kada se naviknete na to. Red pri dnu sata predstavlja najmanji bit (1), a red pri vrhu je najznačajniji bit (8). Svaka kolona predstavlja cifru u

hh: mm

format vremena. Ako je LED uključen, računate tu vrijednost. Ako je LED isključen, zanemarujete ga.

Za čitanje prve znamenke jednostavno zbrojite sve aktivirane LED diode odgovarajuće vrijednosti u prvom (krajnjem lijevom) stupcu. Učinite isto za ostale znamenke slijeva nadesno. Sada ste pročitali vrijeme na BCD -u!

Ovaj princip će biti isti za ostale funkcije na satu. Korištenje RGB LED dioda pomoći će razlikovanju različitih funkcija i načina korištenja različitih boja. Boje bira korisnik i mogu se lako prilagoditi bilo kojoj paleti boja koju preferiraju. Ovo omogućava korisniku da se lako kreće kroz funkcije bez zabune.

Sljedeći korak je bio stvaranje blok dijagrama!

Korak 3: Početak rada

Getting to Work
Getting to Work

Kao i svaki tipičan elektronički projekt, blok dijagram je bitan dio u ranoj fazi projektiranja. Koristeći kriterije, uspio sam sastaviti gornji blok dijagram. Svaki blok na dijagramu predstavlja funkciju u krugu, a strelice pokazuju odnos funkcija. Blok dijagram u cijelosti daje dobar pregled kako će krug funkcionirati.

Sljedeći korak bio je početak donošenja odluka o pojedinačnim komponentama za svaki blok u blok dijagramu!

Korak 4: Odabir komponenti

Pokazalo se da u ovom krugu ima dosta komponenti. U nastavku sam odabrao neke od najvažnijih zajedno s objašnjenjem zašto sam ih odabrao.

LED diode

Za binarni interfejs, izbor je bio prilično jasan. Znao sam da želim koristiti LED diode za ekran i zaključio sam da mi je potrebno njih 16 (u mreži 4 × 4) za prikaz što je moguće više informacija. Tokom mog istraživanja savršene LED diode, APA102 se stalno pojavljivao. To je vrlo mala (2 mm x 2 mm) adresabilna LED sa širokim rasponom boja i prilično je jeftina. Iako nikada prije nisam s njima radio, činilo se da su savršeno pristajali ovom projektu, pa sam ih odlučio iskoristiti.

Mikrokontroler

Izbor mikrokontrolera je takođe bio prilično jednostavan. Imao sam puno iskustva u korištenju Atmega328P-AU u samostalnim aplikacijama i bio sam vrlo upoznat s njegovim karakteristikama. Ovo je isti mikrokontroler koji se koristi u Arduino Nano pločama. Svjestan sam da vjerovatno postoji jeftiniji mikrokontroler koji sam mogao koristiti, ali saznanje da će Atmega328 imati punu podršku za sve Arduino biblioteke bio je veliki faktor pri odabiru za ovaj projekt.

RTC (sat u stvarnom vremenu)

Primarni zahtjev za RTC bila je tačnost. Znao sam da sat neće imati internetsku vezu i da se stoga neće moći sami kalibrirati putem internetske veze, korisnik će ga morati ponovno kalibrirati ručno. Stoga sam htio učiniti mjerenje vremena što je moguće tačnijim. M41T62 RTC ima jednu od najvećih tačnosti koju sam mogao da pronađem (± 2 ppm što je ekvivalentno ± 5 sekundi mesečno). Kombinujući visoku preciznost sa I2C kompatibilnošću i krajnju nisku potrošnju struje, ovaj RTC je bio dobar izbor za ovaj projekat.

DC-DC pretvarač pojačanja

Odabir IC-a pretvarača DC-DC pretvarača učinjen je jednostavnim gledanjem u krug i utvrđivanjem potrebnih napona i struja. Pokretanje kruga na niskom naponu smanjilo bi trenutnu potrošnju, ali nisam mogao ići ispod 4,5 V (minimalni napon mikrokontrolera na taktu od 16 MHz) i nisam mogao prijeći iznad 4,5 V (maksimalni napon RTC -a). To je značilo da sam morao pokrenuti krug na točno 4,5 V da bih mogao raditi s komponentama u skladu s njihovim preporučenim specifikacijama. Izračunao sam da maksimalna struja kola neće prelaziti 250mA. Tako sam počeo tražiti pretvarač koji može zadovoljiti zahtjeve i brzo sam naletio na TPS61220. TPS61220 je zahtijevao minimalne vanjske komponente, bio je prilično jeftin i mogao je zadovoljiti zahtjeve struje i napona.

Baterija

Primarni zahtjev za bateriju bila je veličina. Baterija je morala biti dovoljno mala da može stati u kućište sata, a da pritom ne izgleda glomazno. Pretpostavio sam da baterija ne može prelaziti 20 mm × 35 mm × 10 mm. Uz ova ograničenja veličine i trenutnu potrebu od 250 mA, moj izbor baterija bio je ograničen na LiPo baterije. Na Hobbykingu sam pronašao bateriju "Turnigy nano-tech 300mAh 1S" koju sam odlučio koristiti.

IC za punjenje

Za kontroler punjenja nije postojao poseban zahtjev osim da je trebao biti kompatibilan s 1S LiPo baterijom. Pronašao sam MCP73831T koji je potpuno integrirani kontroler punjenja dizajniran za aplikacije jednoćelijskog punjenja. Jedna od njegovih značajki je mogućnost podešavanja struje punjenja putem vanjskog otpornika što mi se učinilo prilično korisnim u ovoj aplikaciji.

LiPo zaštita

Htio sam uključiti nadzor napona i struje kako bih zaštitio bateriju od opasnih uvjeta prekomjernog punjenja i prekomjernog pražnjenja. Postojao je ograničen broj IC -ova koji su pružali takve karakteristike, a jedna od jeftinijih opcija bila je BQ29700 IC. Zahtijevala je minimalnu količinu vanjskih komponenti i uključivala je svu potrebnu zaštitu za jednoćelijsku LiPo bateriju.

Sada kada su komponente odabrane, došlo je vrijeme za izradu sheme!

Korak 5: Shema

Shema
Shema

Koristeći Altium Designer, uspio sam sastaviti gornju shemu koristeći preporuke iz svakog lista podataka komponente. Shema je podijeljena na različite blokove kako bi bila čitljivija. Dodao sam i neke bilješke sa važnim informacijama u slučaju da bi netko drugi želio ponovno stvoriti ovaj dizajn.

Sljedeći korak bio je postavljanje sheme na PCB!

Korak 6: Raspored PCB -a

Raspored PCB -a
Raspored PCB -a
Raspored PCB -a
Raspored PCB -a
Raspored PCB -a
Raspored PCB -a
Raspored PCB -a
Raspored PCB -a

Raspored PCB -a pokazao se kao najizazovniji dio ovog projekta. Odlučio sam se za korištenje dvoslojnog PCB-a kako bih troškove proizvodnje PCB-a sveo na minimum. Odlučio sam se za standardnu veličinu sata od 36 mm jer se činilo da se prilično dobro uklapa u LED diode. Dodao sam rupe za vijke od 1 mm za pričvršćivanje PCB -a u kućište sata. Cilj je bio održati čist i lijep dizajn postavljanjem svih komponenti (osim LED dioda) na donji sloj. Također sam želio upotrijebiti apsolutni minimalni broj vija kako bih izbjegao vidljive vie na gornjem sloju. To je značilo da sam sve tragove morao usmjeriti na jednom sloju, a da pri tom pazim da "bučni" dijelovi kruga budu udaljeni od osjetljivih tragova signala. Također sam se pobrinuo da svi tragovi budu što kraći, postavljajući zaobilazne kondenzatore blizu opterećenja, koristeći deblje tragove za komponente velike snage i na drugi način slijedeći sve uobičajene dobre prakse dizajna PCB -a. Usmjeravanje je trajalo dosta vremena, ali mislim da je ispalo jako dobro.

Sljedeći korak je bio stvaranje 3D modela za kućište sata!

Korak 7: 3D dizajn

3D dizajn
3D dizajn
3D dizajn
3D dizajn
3D dizajn
3D dizajn

Kućište sata dizajnirano je prema vrlo konvencionalnom, klasičnom dizajnu sata pomoću Fusion 360. Koristio sam standardni razmak od 18 mm za remen sata kako bih sat bio kompatibilan s velikim brojem drugih remena. Izrez za PCB je dizajniran 0,4 mm veći od samog PCB-a kako bi se prilagodio svim proizvodnim greškama. Uključio sam nekoliko vijčanih stupova za montiranje PCB -a i mali rub na koji je PCB mogao položiti. Pobrinuo sam se da ubacim PCB fem milimetara od vrha kako bih izbjegao da se oštre ivice LED dioda zaglave na odjeći. Visina kućišta određena je isključivo debljinom baterije. Ostatak kućišta dizajniran je tako da jednostavno izgleda dobro sa zaobljenim rubovima i poliranim uglovima. Morao sam zadržati dizajn prilagođen 3D štampanju kako bih ga mogao 3D štampati kod kuće bez ikakvog materijala za podršku.

Sada kada je hardver završen, došlo je vrijeme za početak rada na softveru!

Korak 8: Kôd

Kodeks
Kodeks

Kôd sam započeo uključivanjem svih potrebnih biblioteka. Ovo uključuje biblioteku za komunikaciju sa RTC -om i za upravljanje LED diodama. Nakon toga sam stvorio zasebne funkcije za svaki od načina. Kada korisnik promijeni način rada pritiskom na tipku, program poziva funkciju koja odgovara tom načinu rada. Ako korisnik ne pritisne dugme unutar određenog vremena, sat prelazi u stanje mirovanja.

Način mirovanja označavaju sve LED diode koje blijede sve dok se potpuno ne isključe. Korištenje načina mirovanja uvelike produžava vijek trajanja baterije i drži LED isključene kada se ne koriste. Korisnik može probuditi sat pritiskom na gornje dugme. Kad se probudi, sat će provjeriti nivo baterije kako bi se uvjerio da ne zahtijeva punjenje. Ako je potrebno punjenje, LED diode će zasvijetliti crveno nekoliko puta prije prikaza vremena. Ako je baterija ispod kritičnog nivoa, neće se uopće uključiti.

Ostatak vremena programiranje je išlo na to da drugi načini budu što intuitivniji. Pretpostavio sam da bi najintuitivnije bilo imati isto dugme odgovorno za istu funkcionalnost u svim režimima. Nakon nekog testiranja, ovo je konfiguracija gumba koju sam smislio:

  • Pritisnite gornji taster: Buđenje / Ciklus između režima "Vreme prikaza", "Datum prikaza", "Štoperica" i "Alarm".
  • Držanje gornje tipke: Unesite način rada "Postavi vrijeme", "Postavi datum", "Pokreni štopericu" ili "Postavi alarm".
  • Donji pritisak dugmeta: Povećava osvetljenost.
  • Zadržavanje donje tipke: Uđite u način "Odaberi boju".

Donji gumb je uvijek odgovoran za prilagodbu svjetline i boje, neovisno o načinu rada u kojem se nalazite. Kada korisnik uđe u način "Odaberi boju", LED diode počinju kružiti kroz sve moguće RGB boje. Korisnik može pauzirati animaciju i odabrati boju koju preferira za određeni način rada (Vrijeme prikaza crvenom bojom, Datum prikaza plavom bojom itd.). Zamišljene su boje koje korisnik može lako prilagoditi kako bi im pomogao da razlikuju različite načine.

Sada kada je kod dovršen, došlo je vrijeme da ga postavite na mikrokontroler!

Korak 9: Programiranje

Programiranje
Programiranje

Bilo je skoro vrijeme za lemljenje i montažu, ali prije toga sam morao programirati mikrokontroler. Slijedio sam ovaj vodič

Narežite pokretački program na ATmega328P-AU SMD

o tome kako snimiti pokretački program i programirati mikrokontroler koristeći običan Arduino Uno kao programer.

Prvi korak bio je pretvoriti Arduino Uno u ISP -a postavljanjem primjera koda "ArduinoISP". Koristio sam ploču zajedno s programskom utičnicom i povezao shemu iz vodiča. Nakon toga sam uspio narezati pokretački program na mikrokontroler pritiskom na "Burn Bootloader" u Arduino IDE -u.

Nakon što je mikrokontroler dobio pokretački program, jednostavno sam uklonio postojeći mikrokontroler iz Arduino Uno -a i koristio Arduino Uno ploču kao USB na serijski adapter za postavljanje koda na mikrokontroler u programskoj utičnici. Nakon što je učitavanje završeno, mogao bih započeti proces lemljenja.

Sljedeći korak bio je skupljanje svih komponenti i njihovo lemljenje zajedno!

Korak 10: Lemljenje

Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje

Proces lemljenja bio je podijeljen u dva dijela. Prvo je trebalo zalemiti donji sloj, a zatim gornji sloj.

PCB sata sam učvrstio između nekoliko prototipnih ploča pomoću trake. Time je osigurano da se PCB ne pomiče tijekom lemljenja, što je vrlo važno. Zatim sam postavio matricu za lemljenje preko PCB -a i upotrijebio obilnu količinu paste za lemljenje da pokrijem sve lemilice. Nastavio sam koristiti tanku pincetu za postavljanje svih komponenti na odgovarajuće podloge. Zatim sam upotrijebio toplinski pištolj za ponovno lemljenje svih komponenti na mjestu.

Kada je donji sloj lemljen, obavio sam brzi vizuelni pregled kako bih se uvjerio da je lemljenje uspješno. Zatim sam prevrnuo ploču i ponovio postupak lemljenja s druge strane, ovaj put sa svim LED diodama. Bilo je vrlo važno ne pregrijati ploču pri lemljenju gornjeg sloja jer su sve komponente na dnu u opasnosti od pada. Srećom, sve su komponente ostale na svom mjestu, a nakon lemljenja dugmadi na uobičajenom lemilici, PCB je bio gotov!

Došao je trenutak za završnu montažu!

Korak 11: Montaža

Montaža
Montaža

Montaža je bila vrlo jednostavna. Spojio sam bateriju na PCB i stavio bateriju i PCB u 3D štampano kućište. Nastavio sam uvrtati četiri vijka u montažnim rupama u svakom kutu PCB -a. Nakon toga, pričvrstio sam kaiševe za sat pomoću opružnih šipki od 18 mm i sat je bio kompletan!

Korak 12: Zaključci i poboljšanja

Zaključci i poboljšanja
Zaključci i poboljšanja
Zaključci i poboljšanja
Zaključci i poboljšanja

Sat radi očekivano i jako sam zadovoljan kako je ispao. Do sada nisam imao problema s tim, a baterija ostaje gotovo potpuno napunjena nakon cijele sedmice korištenja.

U budućnosti bih satu mogao dodati i druge funkcije. Budući da je USB priključak spojen na mikrokontroler, firmver se u svakom trenutku može ažurirati novim značajkama. Za sada ću nastaviti koristiti ovu verziju sata i vidjeti kako se drži nakon duže upotrebe.

Ako imate bilo kakvih misli, komentara ili pitanja o ovom projektu, ostavite ih ispod. Možete ih poslati i na adresu [email protected].

Takmičenje u satovima
Takmičenje u satovima
Takmičenje u satovima
Takmičenje u satovima

Prva nagrada na takmičenju Satovi

Preporučuje se: