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: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Studeni
Anonim
Vrhunski binarni sat
Vrhunski binarni sat
Vrhunski binarni sat
Vrhunski binarni sat
Vrhunski binarni sat
Vrhunski binarni sat

Nedavno sam se upoznao s konceptom binarnih satova i počeo istraživati kako bih provjerio mogu li sebi napraviti jedan. Međutim, nisam uspio pronaći postojeći dizajn koji bi bio i funkcionalan i moderan u isto vrijeme. Stoga sam odlučio stvoriti vlastiti dizajn potpuno od nule!

Pribor

Sve datoteke za ovaj projekt:

Knjižnice za Arduino kod mogu se preuzeti s GitHub -a ovdje:

M41T62 RTC knjižnica

Knjižnica FastLED

Knjižnica LowPower

Korak 1: Ideja

Nedavno sam naletio na sljedeć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 uspio pronaći dizajn koji mi se svidio. Binarni satovi koje sam otkrio nedostajali su puno značajki i nisu izgledali posebno dobro. Stoga sam odlučio osmisliti vlastiti potpuno od nule!

Prvi korak bio je utvrđivanje kriterija za moj dizajn. Ovo sam smislio:

  • Binarno RGB sučelje
  • Prikaz vremena (uz vrlo precizno mjerenje vremena)
  • Prikaz datuma
  • Štoperica funkcionalnost
  • Funkcionalnost alarma
  • Trajanje baterije najmanje 2 tjedna
  • USB punjenje
  • Softver korisnik lako prilagođava
  • Čist i jednostavan dizajn

Ti su kriteriji 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 sučelje bilo binarno, točnije BCD (binarno kodirana decimalna). BCD je vrsta binarnog kodiranja gdje je svaka decimalna znamenka predstavljena fiksnim brojem bitova. Trebam 4 bita da bih mogao predstavljati znamenku od 0-9. I za standard

hh: mm

format vremena, trebaju mi 4 te znamenke. To znači da mi treba ukupno 16 bitova koji će biti predstavljeni sa 16 LED dioda.

Čitanje vremena u BCD -u prilično je jednostavno kad se naviknete na to. Redak pri dnu sata predstavlja najmanji bit (1), a red pri vrhu je najznačajniji bit (8). Svaki stupac predstavlja znamenku u

hh: mm

vremenski format. 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!

Ovo načelo bit će isto za ostale funkcije sata. Korištenje RGB LED dioda pomoći će razlikovanju različitih funkcija i načina rada u različitim bojama. Boje odabire korisnik i mogu se lako prilagoditi bilo kojoj paleti boja koju preferiraju. To omogućuje korisniku jednostavno kretanje kroz funkcije bez zabune.

Sljedeći korak bio je stvaranje blok dijagrama!

Korak 3: Početak rada

Dolazak na posao
Dolazak na posao

Kao i svaki tipičan elektronički projekt, blok dijagram bitan je 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 je u ovom krugu dosta komponenti. U nastavku sam odabrao neke od najvažnijih zajedno s objašnjenjem zašto sam ih odabrao.

LED diode

Za binarno sučelje, izbor je bio prilično jednostavan. Znao sam da želim koristiti LED diode za zaslon i zaključio sam da ih trebam 16 (u mreži 4 × 4) za prikaz što je moguće više informacija. Tijekom mog istraživanja savršene LED diode, APA102 se stalno pojavljivao. To je vrlo mala (2 mm x 2 mm) adresirana 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 koristiti.

Mikrokontroler

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

RTC (sat u stvarnom vremenu)

Primarni zahtjev za RTC bila je točnost. Znao sam da sat neće imati nikakvu internetsku vezu pa 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 točnijim. M41T62 RTC ima jednu od najvećih točnosti koje sam mogao pronaći (± 2 ppm što je ekvivalentno ± 5 sekundi mjesečno). Kombinirajući visoku točnost s I2C kompatibilnošću i krajnju nisku potrošnju struje ovaj je RTC bio dobar izbor za ovaj projekt.

DC-DC pretvarač pojačanja

Odabir IC-a pretvarača istosmjernog istosmjernog napona 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 ići iznad 4,5 V (maksimalni napon RTC -a). To je značilo da sam morao pokrenuti krug na točno 4,5 V kako bih mogao raditi s komponentama u skladu s njihovim preporučenim specifikacijama. Izračunao sam da maksimalna struja kruga neće prelaziti 250mA. Tako sam počeo tražiti pretvarač koji može zadovoljiti zahtjeve i brzo sam naletio na TPS61220. TPS61220 zahtijevao je 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 trebala biti dovoljno mala kako bi mogla stati u kućište sata, a da pritom ne izgleda glomazno. Pretpostavio sam da baterija ne smije prelaziti 20 mm × 35 mm × 10 mm. S tim ograničenjima veličine i trenutnim zahtjevom 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 mora 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 kroz vanjski otpornik š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 značajke, 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 podatkovnog lista komponente. Shema je podijeljena u različite blokove kako bi bila čitljivija. Dodao sam i neke bilješke s važnim podacima u slučaju da netko drugi želi 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 to prilično dobro pristaje LED diodama. 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, naravno) na donji sloj. Također sam htio 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 bio je 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 za sat kako bih sat bio kompatibilan s velikim brojem drugih remena. Izrez za tiskanu ploču dizajniran je 0,4 mm veći od same tiskane ploče kako bi se uklonio u sve proizvodne netočnosti. Uključio sam nekoliko vijčanih stupova za montažu PCB -a i mali rub na koji je PCB mogao položiti. Pobrinuo sam se ugraditi PCB fem milimetara od vrha kako se izbjeglo da se oštri rubovi 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 ispisu kako bih ga mogao 3D ispisivati kod kuće bez ikakvog materijala za podršku.

Sad kad je hardver gotov, došlo je vrijeme za početak rada na softveru!

Korak 8: Kôd

Kod
Kod

Kôd sam započeo uključivanjem svih potrebnih knjižnica. To uključuje knjižnicu za komunikaciju s RTC -om i za pogon LED dioda. Nakon toga, stvorio sam zasebne funkcije za svaki od načina. Kada korisnik promijeni način rada pritiskom na gumb, program poziva funkciju koja odgovara tom načinu rada. Ako korisnik ne pritisne gumb 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 produljuje trajanje baterije i održava LED isključenima kada se ne koriste. Korisnik može probuditi sat pritiskom na gornju tipku. Kad se probudi, sat će provjeriti razinu 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čne razine, uopće se neće uključiti.

Ostatak vremena programiranje je išlo na to da ostale načine rada učini što intuitivnijim. Pretpostavio sam da bi najintuitivnije bilo imati isti gumb odgovoran za istu funkcionalnost u svim načinima rada. Nakon nekog testiranja, ovo je konfiguracija gumba koju sam smislio:

  • Pritisak gornje tipke: Buđenje / ciklus između načina rada "Prikaz vremena", "Prikaz datuma", "Štoperica" i "Alarm".
  • Držanje gornje tipke: Unesite način rada "Postavi vrijeme", "Postavi datum", "Pokreni štopericu" ili "Postavi alarm".
  • Pritisnite donji gumb: Povećajte svjetlinu.
  • Zadržavanje donje tipke: Uđite u način "Odaberi boju".

Donji gumb uvijek je 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 taj 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 razlikovati različite načine.

Sada kada je kod dovršen, došlo je vrijeme da ga učitate 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 s programskom utičnicom i povezao shemu iz vodiča. Nakon toga sam uspio snimiti bootloader na mikrokontroler samo 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 upotrijebio Arduino Uno ploču kao USB na serijski adapter za postavljanje koda na mikrokontroler u programskoj utičnici. Nakon što je prijenos završio, mogao sam 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 lemne jastučiće. Nastavio sam koristiti tanki par pinceta za postavljanje svih komponenti na odgovarajuće podloge. Zatim sam toplinskim pištoljem ponovno lemio sve komponente na mjestu.

Kad je donji sloj lemljen, obavio sam brzi vizualni 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 gumba na mjestu pomoću običnog lemilice, PCB je bio gotov!

Bilo je vrijeme za posljednju montažu!

Korak 11: Montaža

Skupština
Skupština

Montaža je bila vrlo jednostavna. Spojio sam bateriju na PCB i stavio bateriju i PCB u 3D tiskano kućište. Nastavio sam uvrtati četiri vijka u montažnim rupama u svakom kutu PCB -a. Nakon toga, pričvrstio sam remene 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 nikakvih problema s tim, a baterija ostaje gotovo potpuno napunjena nakon tjedan dana korištenja.

U budućnosti bih satu mogao dodati i druge značajke. 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 uporabe.

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

Natjecanje satova
Natjecanje satova
Natjecanje satova
Natjecanje satova

Prva nagrada na natjecanju satova

Preporučeni: