Talaan ng mga Nilalaman:

Ang Ultimate Binary Watch: 12 Hakbang (na may Mga Larawan)
Ang Ultimate Binary Watch: 12 Hakbang (na may Mga Larawan)

Video: Ang Ultimate Binary Watch: 12 Hakbang (na may Mga Larawan)

Video: Ang Ultimate Binary Watch: 12 Hakbang (na may Mga Larawan)
Video: ТЕПЕРЬ НЕ ПРОПАДУ 10-ть самоделок ВЫРУЧАТ ГДЕ УГОДНО! 2024, Hulyo
Anonim
Ang Ultimate Binary Watch
Ang Ultimate Binary Watch
Ang Ultimate Binary Watch
Ang Ultimate Binary Watch
Ang Ultimate Binary Watch
Ang Ultimate Binary Watch

Kamakailan ay napakilala ako sa konsepto ng mga binary na relo at nagsimulang gumawa ng ilang pagsasaliksik upang makita kung makakabuo ako ng isa para sa aking sarili. Gayunpaman, hindi ako nakahanap ng isang mayroon nang disenyo na parehong gumagana at naka-istilo nang sabay. Kaya, nagpasya akong lumikha ng sarili kong disenyo mula sa simula!

Mga gamit

Ang lahat ng mga file para sa proyektong ito:

Maaaring mai-download ang mga aklatan para sa Arduino code mula sa GitHub dito:

M41T62 RTC Library

FastLED Library

LowPower Library

Hakbang 1: Ang Ideya

Kamakailan lang ay nadapa ko ang sumusunod na video:

DIY Binary Wrist Watch

Ipinapakita ng video sa itaas ang isang pangunahing homemade binary na panonood. Wala akong ideya na may ganoong bagay na mayroon ngunit pagkatapos ng paggawa ng karagdagang pananaliksik sa paksa ng mga binary na relo ay mabilis kong napagtanto na mayroong isang tonelada ng iba't ibang mga disenyo doon! Nais kong bumuo ng isa para sa aking sarili ngunit hindi makahanap ng isang disenyo na gusto ko. Ang mga binary na relo na nakita ko ay kulang sa maraming mga tampok at hindi maganda ang hitsura. Kaya, napagpasyahan kong idisenyo ang aking sarili nang ganap mula sa simula!

Ang unang hakbang ay ang pagtataguyod ng mga pamantayan para sa aking disenyo. Ito ang naisip ko:

  • Binary RGB interface
  • Pagpapakita ng oras (na may tumpak na timekeeping)
  • Ipakita ang petsa
  • Pag-andar ng Stopwatch
  • Pag-andar ng alarm
  • Buhay ng baterya ng hindi bababa sa 2 linggo
  • Singilin ang USB
  • Madaling napapasadyang software ang gumagamit
  • Isang malinis at simpleng disenyo

Ang pamantayang ito ay naging pundasyon para sa buong proyekto. Ang susunod na hakbang ay upang malaman kung paano ko nais na gumana ang relo!

Hakbang 2: Ilang Teoryang Binary-Watch

Ilang Teoryang Binary-Watch
Ilang Teoryang Binary-Watch

Ang plano ay simple. Ang binary relo ay gagana tulad ng isang regular na relo maliban na ang interface ay magiging binary, partikular, BCD (Binary Coded Decimal). Ang BCD ay isang uri ng binary encoding kung saan ang bawat decimal digit ay kinakatawan ng isang nakapirming bilang ng mga piraso. Kailangan ko ng 4 na piraso upang maipakita ang isang digit mula 0-9. At para sa isang pamantayan

hh: mm

format ng oras, kailangan ko ng 4 sa mga digit. Nangangahulugan ito na kailangan ko ng isang kabuuang 16 bits na kinakatawan ng 16 LEDs.

Ang pagbabasa ng oras sa BCD ay medyo madali kapag nakasanayan mo na ito. Ang hilera sa ilalim ng relo ay kumakatawan sa hindi gaanong makabuluhang kaunting (1) at ang hilera sa itaas ay ang pinaka makabuluhang bit (8). Ang bawat haligi ay kumakatawan sa isang digit sa

hh: mm

format ng oras Kung ang isang LED ay ON, bibilangin mo ang halagang iyon. Kung naka-OFF ang isang LED, hindi mo ito papansinin.

Upang basahin ang unang digit na kabuuan lamang ang lahat ng mga nakaaktibo na LEDs na kaukulang halaga sa unang (kaliwang pinaka) haligi. Gawin ang pareho para sa iba pang mga digit mula kaliwa hanggang kanan. Nabasa mo na ngayon ang oras sa BCD!

Ang prinsipyong ito ay magiging pareho para sa natitirang mga pagpapaandar sa relo. Ang paggamit ng RGB LEDs ay makakatulong sa pagkilala sa pagitan ng iba't ibang mga pag-andar at mode na gumagamit ng iba't ibang kulay. Ang mga kulay ay pinili ng gumagamit at madaling maiakma sa anumang paleta ng kulay na gusto nila. Pinapayagan nito ang gumagamit na madaling mag-navigate sa mga pag-andar nang hindi nalilito.

Ang susunod na hakbang ay ang paglikha ng isang diagram ng block!

Hakbang 3: Pagtrabaho

Papunta sa Trabaho
Papunta sa Trabaho

Tulad ng anumang mga tipikal na proyekto ng electronics, ang isang block diagram ay isang mahalagang bahagi sa maagang yugto ng disenyo. Gamit ang pamantayan, pinagsama ko ang block diagram sa itaas. Ang bawat bloke sa diagram ay kumakatawan sa isang pagpapaandar sa circuit at ipinakita ng mga arrow ang ugnayan ng mga pagpapaandar. Ang diagram ng bloke sa kabuuan nito ay nagbibigay ng isang mahusay na pangkalahatang ideya ng kung paano gagana ang circuit.

Ang susunod na hakbang ay upang simulang gumawa ng mga pagpapasya sa mga indibidwal na bahagi para sa bawat bloke sa block diagram!

Hakbang 4: Pagpili ng Mga Sangkap

Lumabas na medyo maraming mga bahagi sa circuit na ito. Sa ibaba, pumili ako ng ilan sa pinakamahalaga kasama ang isang paliwanag sa kung bakit ko sila pinili.

Ang mga LED

Para sa binary interface, ang pagpipilian ay medyo tuwid na pasulong. Alam ko na nais kong gumamit ng mga LED para sa display at nalaman na kailangan ko ng 16 sa kanila (sa isang 4 × 4 grid) upang maipakita ang maraming impormasyon hangga't maaari. Sa panahon ng aking pagsasaliksik para sa perpektong LED, ang APA102 ay patuloy na lumalabas. Ito ay isang napakaliit (2mm x 2mm) na maaaring maipakita sa LED na may malawak na hanay ng mga kulay at medyo mura. Kahit na hindi pa ako nakatrabaho sa kanila dati, tila sila ang perpektong akma para sa proyektong ito, kaya't napagpasyahan kong gamitin ang mga ito.

Ang Microcontroller

Ang pagpili ng isang microcontroller ay medyo simple din. Nagkaroon ako ng maraming karanasan sa paggamit ng Atmega328P-AU sa mga standalone application at pamilyar sa mga tampok nito. Ito ang parehong microcontroller na ginagamit sa Arduino Nano boards. Alam ko na marahil ay may isang mas murang microcontroller na maaari kong magamit ngunit alam na ang Atmega328 ay magkakaroon ng buong suporta para sa lahat ng mga aklatan ng Arduino ay isang malaking kadahilanan sa pagpili nito para sa proyektong ito.

Ang RTC (Real-Time Clock)

Ang pangunahing kinakailangan para sa RTC ay ang kawastuhan. Alam ko na ang relo ay walang anumang pagkakakonekta sa internet at sa gayon ay hindi makakapag-calibrate muli sa sarili sa pamamagitan ng isang koneksyon sa internet, kakailanganin itong muling manu-manong kalibrahin ng gumagamit. Samakatuwid, nais kong gawing tumpak ang pag-iingat ng oras hangga't maaari. Ang M41T62 RTC ay may isa sa pinakamataas na katumpakan na maaari kong makita (± 2ppm na katumbas ng ± 5 segundo bawat buwan). Ang pagsasama-sama ng mataas na katumpakan sa pagiging tugma ng I2C at ang ulta mababang kasalukuyang pagkonsumo na ginawa ang RTC na ito ng isang mahusay na pagpipilian para sa proyektong ito.

DC-DC Boost Converter

Ang pagpili ng DC-DC Boost Converter IC ay tapos na sa pamamagitan lamang ng pagtingin sa circuit at pag-alam kung anong mga voltages at alon ang kinakailangan. Ang pagpapatakbo ng circuit sa isang mababang boltahe ay magbabawas ng kasalukuyang pagkonsumo ngunit hindi ako maaaring pumunta sa ibaba 4.5V (ang kaunting boltahe ng microcontroller sa 16MHz na orasan) at hindi ako maaaring pumunta sa itaas 4.5V (ang maximum na boltahe ng RTC). Nangangahulugan ito na kailangan kong patakbuhin ang circuit nang tumpak na 4.5V upang mapatakbo ang mga sangkap sa loob ng kanilang mga inirekumendang detalye. Kinakalkula ko na ang pinakamataas na kasalukuyang ng circuit ay hindi lalampas sa 250mA. Kaya, nagsimula akong maghanap ng isang boost converter na maaaring matugunan ang mga kinakailangan at mabilis na nadapa ang TPS61220. Ang TPS61220 ay nangangailangan ng kaunting panlabas na mga bahagi, ay medyo mura at nakamit ang kasalukuyang at kinakailangan ng boltahe.

Ang baterya

Ang pangunahing kinakailangan para sa baterya ay ang laki. Ang baterya ay kailangang sapat na maliit upang magkasya ito sa loob ng enclosure ng relo nang hindi ginagawa itong mukhang malaki. Naisip ko na ang baterya ay hindi maaaring lumagpas sa 20mm × 35mm × 10mm. Sa mga hadlang sa laki at sa kasalukuyang kinakailangan ng 250mA ang aking pagpipilian ng mga baterya ay limitado sa mga baterya ng LiPo. Natagpuan ko ang isang "Turnigy nano-tech 300mAh 1S" na baterya sa Hobbyking na nagpasya akong gamitin.

Ang Charging IC

Walang partikular na kinakailangan para sa tagakontrol ng pagsingil maliban na kinakailangan nito upang maging katugma sa isang baterya ng 1S LiPo. Natagpuan ko ang MCP73831T na kung saan ay isang buong isinamang pagsingil ng singil na dinisenyo para sa mga aplikasyon ng pagsingil ng solong-cell. Ang isa sa mga tampok nito ay ang kakayahang ayusin ang kasalukuyang singilin sa pamamagitan ng isang panlabas na risistor na kung saan nakita kong kapaki-pakinabang sa application na ito.

Proteksyon ng LiPo

Nais kong isama ang boltahe at kasalukuyang pagsubaybay upang maprotektahan ang baterya mula sa anumang mapanganib na mga kondisyon ng labis na labis na labis na labis na paglabas. Mayroong isang limitadong halaga ng mga IC na nagbibigay ng mga naturang tampok at isa sa mga murang pagpipilian ay ang BQ29700 IC. Kinakailangan nito ang isang kaunting halaga ng panlabas na mga sangkap at isinama ang lahat ng kinakailangang proteksyon para sa isang solong-cell na baterya ng LiPo.

Ngayon na ang mga sangkap ay napili oras na upang lumikha ng eskematiko!

Hakbang 5: Ang Skematika

Ang Iskolar
Ang Iskolar

Gamit ang Altium Designer, nakasama ko ang eskematiko sa itaas gamit ang mga rekomendasyon mula sa bawat datasheet ng bahagi. Ang eskematiko ay nahahati sa iba't ibang mga bloke upang mas mabasa ito. Nagdagdag din ako ng ilang mga tala na may mahalagang impormasyon kung sakaling may ibang nais na muling likhain ang disenyo na ito.

Ang susunod na hakbang ay ang paglalagay ng eskematiko sa isang PCB!

Hakbang 6: Layout ng PCB

Layout ng PCB
Layout ng PCB
Layout ng PCB
Layout ng PCB
Layout ng PCB
Layout ng PCB
Layout ng PCB
Layout ng PCB

Ang layout ng PCB ay naging pinaka-mapaghamong bahagi ng proyektong ito. Pinili kong gumamit ng isang 2-layer PCB upang mapanatili ang mga gastos sa pagmamanupaktura ng PCB sa isang minimum. Pinili kong gumamit ng isang karaniwang laki ng relo na 36mm dahil tila umaangkop sa mga LED nang maayos. Nagdagdag ako ng ilang mga butas ng 1mm na tornilyo upang ma-secure ang PCB sa enclosure ng relo. Ang layunin ay mapanatili ang isang malinis at kagandahang disenyo sa pamamagitan ng paglalagay ng lahat ng mga bahagi (maliban sa mga LED na kurso) sa ilalim na layer. Nais ko ring gamitin ang ganap na kaunting bilang ng mga vias upang maiwasan ang pagkakaroon ng mga nakikitang vias sa tuktok na layer. Nangangahulugan ito na kailangan kong i-ruta ang lahat ng mga bakas sa isang solong layer habang tinitiyak na itago ang mga "maingay" na bahagi ng circuit mula sa mga sensitibong bakas ng signal. Tiniyak ko rin na panatilihing maikli ang lahat ng mga bakas hangga't maaari, inilalagay ang bypass capacitors malapit sa pagkarga, gamit ang mas makapal na mga bakas para sa mataas na mga sangkap ng kuryente at kung hindi man ay sundin ang lahat ng mga karaniwang mabuting kasanayan ng disenyo ng PCB. Ang pagruruta ay tumagal ng kaunting oras, ngunit sa palagay ko naging maayos ito.

Ang susunod na hakbang ay ang paglikha ng isang 3D na modelo para sa enclosure ng relo!

Hakbang 7: Disenyo ng 3D

Disenyo ng 3D
Disenyo ng 3D
Disenyo ng 3D
Disenyo ng 3D
Disenyo ng 3D
Disenyo ng 3D

Ang enclosure ng relo ay dinisenyo pagkatapos ng isang napaka-maginoo, klasiko, disenyo ng relo gamit ang Fusion 360. Gumamit ako ng isang karaniwang 18mm spacing para sa strap ng relo upang gawing katugma ang relo sa maraming iba't ibang mga strap. Ang cut-out para sa PCB ay idinisenyo 0, 4mm mas malaki kaysa sa PCB mismo upang mapaunlakan para sa anumang mga kamalian sa pagmamanupaktura. Nagsama ako ng ilang mga post sa tornilyo para sa pag-mount ng PCB at isang maliit na gilid para mahiga ang PCB. Tinitiyak kong makapagpahinga sa PCB ang isang fem milimeter mula sa itaas upang maiwasan ang matalim na mga gilid ng mga LED na makaalis sa damit. Ang taas ng enclosure ay tanging natukoy ng kapal ng baterya. Ang natitirang enclosure ay dinisenyo upang magmukhang maganda sa mga bilugan na gilid at pinakintab na sulok. Kailangan kong panatilihin ang disenyo ng 3D-print na friendly upang maaari kong mai-print ito sa 3D nang walang anumang materyal na suporta.

Ngayon na natapos ang hardware ay oras na upang magsimulang magtrabaho sa software!

Hakbang 8: Ang Code

Ang Code
Ang Code

Sinimulan ko ang code sa pamamagitan ng pagsasama ng lahat ng mga kinakailangang aklatan. Kasama rito ang silid-aklatan para sa pakikipag-usap sa RTC at para sa pagmamaneho ng mga LED. Pagkatapos nito, lumikha ako ng magkakahiwalay na mga pag-andar para sa bawat isa sa mga mode. Kapag lumipat ang gumagamit ng mga mode sa pamamagitan ng pagpindot sa isang pindutan, tatawag ang programa sa pagpapaandar na naaayon sa mode na iyon. Kung ang gumagamit ay hindi pinindot ang isang pindutan sa loob ng isang tinukoy na dami ng oras, ang relo ay natutulog.

Ang sleep mode ay ipinahiwatig ng lahat ng mga LED na kumukupas hanggang sa ganap na off. Ang paggamit ng mode ng pagtulog ay lubos na nagdaragdag ng buhay ng baterya at pinapatay ang mga LED kapag hindi ito ginagamit. Maaaring gisingin ng gumagamit ang relo sa pamamagitan ng pagpindot sa itaas na pindutan. Kapag nagising, susuriin ng relo ang antas ng baterya upang matiyak na hindi ito nangangailangan ng singilin. Kung kinakailangan ang pagsingil, ang mga LED ay mag-flash pula ng ilang beses bago ipakita ang oras. Kung ang baterya ay nasa ibaba ng isang kritikal na antas, hindi ito bubuksan lahat.

Ang natitirang oras ng programa ay nagpunta sa paggawa ng iba pang mga mode bilang madaling maunawaan hangga't maaari. Naisip ko na ang pagkakaroon ng parehong pindutan na responsable para sa parehong pag-andar sa lahat ng mga mode ay ang pinaka-madaling maunawaan. Pagkatapos ng ilang pagsubok, ito ang pagsasaayos ng pindutan na naisip ko:

  • Nangungunang Pindutan ng Button: Gumising / Mag-ikot sa pagitan ng "Oras ng Display", "Petsa ng Display", "Stopwatch" at mga mode na "Alarm".
  • Nangungunang Pindutan ng Button: Ipasok ang "Itakda ang Oras", "Itakda ang Petsa", "Start Stopwatch" o "Itakda ang Alarm" mode.
  • I-press ng Button sa Ibabang: Taasan ang Liwanag.
  • I-hold ang Button ng Ibabang: Ipasok ang Mode na "Pumili ng Kulay".

Ang ilalim na pindutan ay palaging responsable para sa liwanag at mga pagsasaayos ng kulay, independiyente sa kung anong mode ka. Kapag ang gumagamit ay pumasok sa "Pumili ng Kulay" mode, simulan ng mga LED ang pagbibisikleta sa lahat ng mga posibleng kulay ng RGB. Maaaring i-pause ng gumagamit ang animasyon at piliin ang kulay na gusto nila para sa partikular na mode na iyon (Display Time na pula, Display Date na asul, atbp.). Ang mga kulay ay sinadya upang madaling mapasadya ng gumagamit upang matulungan silang makilala sa pagitan ng iba't ibang mga mode.

Ngayon na natapos ang code oras na upang i-upload ito sa microcontroller!

Hakbang 9: Programming

Programming
Programming

Ito ay halos oras para sa paghihinang at pagpupulong ngunit bago iyon kailangan kong i-program ang microcontroller. Sinundan ko ang tutorial na ito

Sunugin ang bootloader sa isang ATmega328P-AU SMD

sa kung paano magsunog ng isang bootloader at programa ang microcontroller gamit ang isang regular na Arduino Uno bilang programmer.

Ang unang hakbang ay upang gawing ISP ang Arduino Uno sa pamamagitan ng pag-upload ng halimbawang code na "ArduinoISP". Gumamit ako ng isang breadboard kasama ang isang socket ng programa at i-wire ang eskematiko mula sa tutorial. Pagkatapos nito, nasunog ko ang bootloader sa microcontroller sa pamamagitan lamang ng pagpindot sa "Burn Bootloader" sa Arduino IDE.

Kapag ang microcontroller ay nagkaroon ng isang bootloader, inalis ko lamang ang umiiral na microcontroller mula sa Arduino Uno at ginamit ang Arduino Uno board bilang isang USB sa Serial Adapter upang mai-upload ang code sa microcontroller sa socket ng programa. Matapos matapos ang pag-upload, maaari kong simulan ang proseso ng paghihinang.

Ang susunod na hakbang ay ang pagtitipon ng lahat ng mga bahagi at paghihinang na magkasama!

Hakbang 10: Paghihinang

Paghihinang
Paghihinang
Paghihinang
Paghihinang
Paghihinang
Paghihinang
Paghihinang
Paghihinang

Ang proseso ng paghihinang ay nahahati sa dalawang bahagi. Una kailangan ang ilalim na layer upang ma-solder, at pagkatapos ay ang tuktok na layer.

Siniguro ko ang relo PCB sa pagitan ng isang pares ng mga prototype board gamit ang tape. Tinitiyak nito na ang PCB ay hindi gumagalaw sa panahon ng paghihinang, na kung saan ay napakahalaga. Inilagay ko pagkatapos ang soldering stencil sa PCB at gumamit ng isang mapagbigay na halaga ng solder paste upang masakop ang lahat ng mga solder pad. Nagpunta ako sa paggamit ng isang manipis na pares ng sipit upang ilagay ang lahat ng mga bahagi sa kanilang kaukulang pad. Gumamit ako pagkatapos ng isang heat gun upang masasalamin ang solder ng lahat ng mga bahagi sa lugar.

Kapag na-solder ang ilalim na layer, binigyan ko ito ng isang mabilis na visual na inspeksyon upang matiyak na ang paghihinang ay matagumpay. Pagkatapos ay ibinalik ko ang board at ulitin ang proseso ng paghihinang sa kabilang panig, sa oras na ito kasama ang lahat ng mga LED. Napakahalaga na huwag mag-overheat ng board kapag nag-solder sa tuktok na layer dahil ang lahat ng mga bahagi sa ibaba ay nasa peligro na mahulog. Sa kabutihang palad, ang lahat ng mga bahagi ay nanatili sa lugar at pagkatapos ng paghihinang ng mga pindutan sa lugar gamit ang isang regular na bakal na panghinang, natapos ang PCB!

Oras na para sa pangwakas na pagpupulong!

Hakbang 11: Assembly

Assembly
Assembly

Napakasimple ng pagpupulong. Ikinonekta ko ang baterya sa PCB at inilagay ang baterya at ang PCB sa loob ng naka-print na enclosure ng 3D. Nagpunta ako sa tornilyo sa apat na turnilyo sa mga mounting hole sa bawat sulok ng PCB. Pagkatapos nito, ikinabit ko ang mga strap ng relo gamit ang 18mm spring bar at kumpleto ang relo!

Hakbang 12: Konklusyon at Mga Pagpapabuti

Konklusyon at Mga Pagpapabuti
Konklusyon at Mga Pagpapabuti
Konklusyon at Mga Pagpapabuti
Konklusyon at Mga Pagpapabuti

Gumagana ang relo tulad ng inaasahan at masayang-masaya ako sa naging resulta nito. Wala pa akong mga problema dito at ang baterya ay nananatiling halos buong singil pagkatapos ng isang buong linggo ng paggamit.

Maaari akong magdagdag ng iba pang mga tampok sa relo sa hinaharap. Dahil ang USB port ay konektado sa microcontroller, ang firmware ay maaaring ma-update anumang oras sa mga bagong tampok. Sa ngayon, magpapatuloy akong gumamit ng bersyon na ito ng relo at makikita kung paano ito nagtatagal pagkatapos ng pinahabang paggamit.

Kung mayroon kang anumang mga saloobin, komento o katanungan tungkol sa proyektong ito, mangyaring iwanan ang mga ito sa ibaba. Maaari mo ring ipadala ang mga ito sa [email protected].

Mga Paligsahan sa Orasan
Mga Paligsahan sa Orasan
Mga Paligsahan sa Orasan
Mga Paligsahan sa Orasan

Unang Gantimpala sa Clocks Contest

Inirerekumendang: