Talaan ng mga Nilalaman:

Batay sa Arduino Binary Alarm Clock: 13 Mga Hakbang (na may Mga Larawan)
Batay sa Arduino Binary Alarm Clock: 13 Mga Hakbang (na may Mga Larawan)

Video: Batay sa Arduino Binary Alarm Clock: 13 Mga Hakbang (na may Mga Larawan)

Video: Batay sa Arduino Binary Alarm Clock: 13 Mga Hakbang (na may Mga Larawan)
Video: CS50 2014 - Week 9 2024, Hulyo
Anonim
Image
Image

Sa pamamagitan ng Basement EngineeringMagsundan ng Higit Pa ng may-akda:

DIY Laser People Counter
DIY Laser People Counter
Pagbuo ng isang Self-Driving Boat (ArduPilot Rover)
Pagbuo ng isang Self-Driving Boat (ArduPilot Rover)
Pagbuo ng isang Self-Driving Boat (ArduPilot Rover)
Pagbuo ng isang Self-Driving Boat (ArduPilot Rover)
Ang Perpektong Bedside Lamp at Phone Dock
Ang Perpektong Bedside Lamp at Phone Dock
Ang Perpektong Bedside Lamp at Phone Dock
Ang Perpektong Bedside Lamp at Phone Dock

Tungkol sa: Kumusta, ang pangalan ko ay Jan at ako ay isang tagagawa, gusto ko ang pagbuo at paglikha ng mga bagay at medyo mahusay din ako sa pag-aayos ng mga bagay-bagay. Dahil maiisip kong lagi kong minamahal ang paglikha ng mga bagong bagay at iyon ang patuloy kong ginagawa hanggang… Higit Pa Tungkol sa Basement Engineering »

Hoy, ngayon nais kong ipakita sa iyo kung paano bumuo ng isa sa aking pinakabagong mga proyekto, ang aking binary alarm clock.

Mayroong isang tonelada ng iba't ibang mga orasan ng Binary sa internet, ngunit maaaring ito ang una, na ginawa mula sa isang piraso ng makukulay na addressable LED's, na nagtatampok din ng isang pag-andar ng alarma at mga pindutang pindutin, upang maitakda ang mga bagay tulad ng oras at kulay.

Mangyaring huwag hayaan ang kumplikadong hitsura nito upang matakot ka. Sa isang maliit na paliwanag, ang pagbabasa ng binary ay talagang hindi mahirap tulad ng tila. At kung handa kang matuto ng bago, nais kong tulungan ka sa paggawa nito sa paglaon.

Hayaan mong sabihin ko sa iyo ng kaunti ang tungkol sa kwento sa likod ng proyektong ito:

Orihinal kong binalak na bumuo ng isang "normal" na orasan, na gumagamit ng mga LED bilang ito ay mga kamay, ngunit wala akong sapat na LED sa kamay.

Sooo, ano ang gagawin mo kung nais mong ipakita ang oras sa ilang mga LED hangga't maaari?

Pumunta ka sa binary, at iyon mismo ang ginawa ko rito.

Ang orasan na ito ay ang pangatlong bersyon ng uri nito. Bumuo ako ng isang napaka-simpleng prototype pagkatapos na tama ako ng ideya ng proyekto at dinala ito sa Maker Faire sa Hannover, upang makita kung ano ang iniisip ng mga tao tungkol dito. Habang naroroon ako, nakatanggap ako ng maraming napaka-positibo at kagiliw-giliw na puna pati na rin ang mga ideya sa pagpapabuti.

Ang resulta ng lahat ng mga ideya at oras ng pag-iisip, tinkering at programa, ito ay kagiliw-giliw na naghahanap ng maliit na alarm clock, na may maraming mga tampok kaysa sa bersyon 1.0 at ngayon ay dumaan kami sa bawat hakbang ng proseso ng pagbuo, kaya mo madali bumuo ng isa sa iyong sarili.

Mayroon ding isang napaka-detalyadong Video sa paglipas ng Youtube, kung sakaling hindi mo nais na basahin ang lahat.

Hakbang 1: Kunin ang Iyong Bagay

Kunin ang Iyong Bagay
Kunin ang Iyong Bagay
Kunin ang Iyong Bagay
Kunin ang Iyong Bagay
Kunin ang Iyong Bagay
Kunin ang Iyong Bagay

Narito ang isang maliit na listahan ng lahat ng mga bahagi at tool, na kakailanganin mong bumuo ng iyong sariling binary na orasan.

Elektronikong:

  • 18 adressable Ws2811 LED's (hal. Neopixels) sa isang strip na may 60 LED per m (ebay)
  • Arduino Nano (kasama ang processor ng ATMega328) (ebay)
  • 1307 RTC module (ebay)
  • 4X Mga capacitive touch button (ebay)
  • bs18b20 digital temperatura Sensor (ebay)
  • LDR (ebay)
  • laptop / speaker ng smartphone o piezo buzzer
  • 2222A NPN transistor (o katulad na bagay)
  • mga header ng lalaki
  • anggulo ng mga babaeng header (ebay)
  • 1kOhm risistor
  • 4, 7kOhm risistor
  • 10kOhm risistor
  • Mga wire
  • 7x5cm prototyping PCB 24x18 hole (ebay)
  • pilak wire (alahas wire) (ebay)
  • 90 ° mini usb adapter (ebay)

Iba pang mga materyales

  • Balot ng vinyl
  • 4X 45mm m4 flange head screws (ebay)
  • 32X m4 metal washers
  • 4X m4 lock nut
  • 28X m4 nut
  • 4X 10mm m3 tanso PCB standoff (ebay)
  • 8X 8mm m3 tornilyo (ebay)
  • sheet ng aluminyo
  • 2 mm sheet ng milky acrylic
  • 2mm sheet ng malinaw na acrylic
  • 3 mm sheet ng MDF
  • double sided tape

Mga kasangkapan

  • mini USB cable
  • computer na nagpapatakbo ng Arduino IDE
  • 3, 5 mm na drill bit
  • 4, 5 mm drill bit
  • drill ng kuryente
  • pagputol ng kutsilyo
  • nakikitang nakita
  • panghinang na ion
  • gunting sa paggupit ng metal
  • file
  • papel na buhangin

Mga template (ngayon ay may sukat)

  • PDF
  • Libre Gumuhit ng Opisina

Code

  • Sketch
  • Button library
  • Timer library
  • Jukebox library
  • Binago ang RTClib
  • Aklatan ng Adafruit Neopixel
  • Arduino-Temperatura-Control-Library

Hakbang 2: Gupitin ang Front at Rear Panel

Gupitin ang Front at Rear Panel
Gupitin ang Front at Rear Panel
Gupitin ang Front at Rear Panel
Gupitin ang Front at Rear Panel
Gupitin ang Front at Rear Panel
Gupitin ang Front at Rear Panel
Gupitin ang Front at Rear Panel
Gupitin ang Front at Rear Panel

Ang unang piraso na gagawin namin ay ang panel ng acrylic sa harap. Minarkahan namin kung saan namin nais pumunta ang aming mga pagbawas, habang isinasaalang-alang, na nais namin ng kaunting pagpapaubaya para sa sanding. Pagkatapos ay simpleng nasimot namin ang acrylic gamit ang aming kutsilyong pagputol. Pagkatapos naming magawa iyon sa 10 hanggang 20 beses mayroon kaming isang uka. Maaari naming ilagay ang grove na iyon sa gilid ng isang mesa at yumuko ang acrylic hanggang sa masira ito.

Matapos ang front panel ay pinutol sa laki ay pinutol namin ang back panel mula sa isang piraso ng MDF. Maaari naming gamitin ang aming sawing sa pagkaya para dito ngunit gagana rin ang isang cutting kutsilyo. Kailangan lang nating i-clamp ang MDF sa isang piraso ng kahoy at i-scrape ito sa aming cutting kutsilyo hanggang sa dumaan ang talim at mayroon kaming dalawang indibidwal na piraso.

Ngayon ay pinagsama namin ang sandwich ng dalawang mga panel at buhangin ang bawat panig upang perpektong allign.

Matapos ito ay tapos na, gupitin namin ang unang template at ilagay ito sa dalawang mga panel gamit ang ilang tape at simulan ang pagbabarena ng mga minarkahang butas.

Una ay nag-drill kami ng isang 4, 5 mm na butas sa bawat isa sa 4 na sulok. Tulad ng acrylic ay napaka malutong at hindi namin nais na masira ito, magsisimula kami sa isang maliit na bit ng drill at gagana kami hanggang sa maabot namin ang nais na diameter ng butas. Pagkatapos ay ginagamit namin ang template upang buhangin ang mga sulok sa tamang hugis.

Hakbang 3: Tapusin ang Rear Panel

Tapusin ang Rear Panel
Tapusin ang Rear Panel
Tapusin ang Rear Panel
Tapusin ang Rear Panel
Tapusin ang Rear Panel
Tapusin ang Rear Panel
Tapusin ang Rear Panel
Tapusin ang Rear Panel

Sa ngayon, maaari nating ilagay ang front panel sa isang tabi at idikit ang pangalawang template sa likod ng panel, kung saan kailangan naming gumamit ng 3, 5mm drill bit upang mag-drill ng mga butas para sa aming 4 pcb standoffs, pati na rin ang 4 na butas na markahan ang mga gilid para sa maliit na bintana sa likuran.

Ginamit namin pagkatapos ang aming sawing sa pagkaya upang i-cut ang window at pakinisin ang mga gilid, na may isang file. Hindi mo rin nais na kalimutan na mag-drill ng butas para sa mini USB cable (Narinig ko ang isang hindi gaanong nakatuon na tagagawa, na may gawi na gawin ang mga ganitong bagay: D).

Habang natapos na namin ang pagputol ng back panel maaari naming magpatuloy upang balutin ito sa balot ng vinyl. Pinuputol lang namin ang dalawang piraso sa tamang sukat at inilapat ang una sa isang gilid. Pagkatapos ay pinuputol namin ang mga rims at pinalaya ang bintana. Makakatulong ang isang hair dryer upang makita muli ang lahat ng mga butas, kaya maaari din nating i-cut ang mga ito. Matapos gawin ang parehong bagay para sa kabilang panig ay ginagamit namin ang aming susunod na template at ang aming pamamaraan ng pag-scrape at break upang gawin ang maliit na window ng acrylic para sa aming back panel.

Hakbang 4: Gawin ang LED Panel

Gawin ang LED Panel
Gawin ang LED Panel
Gawin ang LED Panel
Gawin ang LED Panel
Gawin ang LED Panel
Gawin ang LED Panel

Ngayon kami ang nag-highlight ng proyektong ito, sa pinaka-literal na kahulugan. Ang LED Panel.

Ginagamit namin ang aming gunting sa paggupit ng metal upang gupitin ang isang 12, 2cm ng 8cm na piraso mula sa isang sheet ng metal. Mag-ingat habang ginagawa ito, dahil ang gunting ay lumilikha ng napakatalas na mga gilid. Susubukan naming makinis ang mga kasama ang aming file at ilang papel de liha. Pagkatapos ay idagdag namin ang aming susunod na template upang mag-drill ng mga butas para sa mga turnilyo at mga wire.

Oras upang ihanda ang aktwal na LED's.

Una, pinutol namin ang mga ito sa tatlong piraso ng 6 na LED bawat isa. Ang ilan sa mga LED strip ay may isang manipis na layer ng adhesive o walang malagkit, kaya't ididikit namin ang aming mga piraso sa isang piraso ng dobleng panig na tape at gupitin ito sa laki ng isang kutsilyo. Gagawin nitong dumidikit ito sa metal plate at, bagaman hindi ito isang propesyonal na solusyon, isisinsulat ang mga pad ng tanso mula sa ibabaw ng metal sa ilalim.

Bago namin talagang idikit ang mga piraso sa panel, nililinis namin ito sa alkohol. Habang ikinakabit namin ang mga LED, kailangan nating tiyakin na inilalagay namin ang mga ito sa tamang lugar pati na rin sa tamang direksyon. Ang mga maliit na arrow sa LED strip ay nagpapahiwatig ng direksyon, kung saan ang data ay naglalakbay sa pamamagitan ng strip.

Tulad ng nakikita mo sa ikalimang larawan, ang aming linya ng data ay nagmula sa kaliwang sulok sa itaas ng panel, dumaan sa unang strip hanggang sa kanang bahagi, kaysa bumalik sa simula ng sumusunod na strip sa kaliwa at iba pa. Kaya't ang lahat ng aming mga arrow ay kailangang magturo sa kanang bahagi.

Painitin natin ang ating soldering ion at maglagay ng lata sa mga tanso na tanso, pati na rin sa aming kawad. Ang mga linya ng data ay konektado tulad ng inilarawan ko lamang, habang simpleng isinabit namin ang plus at minus pads ng strip hanggang kahanay.

Matapos mai-wire ang mga piraso, ginagamit namin ang aming kutsilyo upang maingat na maiangat ang mga dulo ng bawat strip habang hinahawakan ang LED, kaya't itinuturo pa rin nila ang paitaas. Pagkatapos ay naglalagay kami ng isang mainit na pandikit sa ilalim upang ma-insulate ang aming mga joint ng paghihinang.

Matapos ito ay tapos na at, nagdagdag kami ng ilang mga header pin sa mga wire na papunta sa PCB. Ang mga wire ay dapat na tungkol sa 16cm ang haba. Upang maging mas sigurado, na ang metal panel ay walang kakulangan sa anumang bagay, gumagamit kami ng isang Multimeter upang masukat ang paglaban sa pagitan ng lahat ng mga pin. Kung nagpapakita ito ng anumang higit sa 1kOhm, maayos ang lahat.

Ngayon ay maaari nating itong maiugnay sa isang Arduino, magpatakbo ng isang strandtest at masiyahan sa mga kulay.

Hakbang 5: Gumawa ng isang Mabilis na Gabay

Gumawa ng isang Gabay sa Magaan
Gumawa ng isang Gabay sa Magaan
Gumawa ng isang Gabay sa Magaan
Gumawa ng isang Gabay sa Magaan
Gumawa ng isang Gabay sa Magaan
Gumawa ng isang Gabay sa Magaan
Gumawa ng isang Gabay sa Magaan
Gumawa ng isang Gabay sa Magaan

Kung inilalagay namin ang aming pinangunahang panel sa likod mismo ng milky acrylic, maaari itong maging medyo nakakalito upang sabihin sa hiwalay ng indibidwal na LED. Ito ay gagawing mas mahirap ring basahin ang aming orasan kaysa sa dati.

Upang malutas ang isyung ito, gagawa kami ng aming sarili ng kaunting gabay sa ilaw. Para sa mga ito ay pinutol lamang namin ang isa pang piraso ng MDF, na may parehong laki tulad ng front panel. Pagkatapos ay nagdagdag kami ng isa pang template dito at drill labing walong 3, 5mm na mga butas para sa mga LED, pati na rin ang apat na 4, 5 mm na mga butas para sa mga tornilyo dito. Pagkatapos ay mai-clamp namin ito pababa sa front panel at gumamit ng ilang papel de liha upang ihanay ang dalawa.

Tulad ng nakikita mo sa huling larawan, ang ilaw ay lilitaw na mas nakatuon ngayon.

Hakbang 6: Gawin ang Button Frame

Gawin ang Button Frame
Gawin ang Button Frame
Gawin ang Button Frame
Gawin ang Button Frame
Gawin ang Button Frame
Gawin ang Button Frame

Ang huling bahagi ng enclosure, na gagawin namin, ay ang frame ng pindutan.

Kami, na muli, ay gupitin ang isang piraso ng MDF sa tamang sukat at magdagdag ng isang template dito, pagkatapos ay i-drill namin ang lahat ng kinakailangang mga butas at gamitin ang aming nakita na nakakakita, upang putulin ang gitnang seksyon.

Ang aming frame ay dapat na hawakan ang 4 na mga pindutan ng touch, ang light sensor at ang aming maliit na speaker sa lugar. Bago namin maikabit ang mga ito sa frame, pinutol namin ang ilang mas maliit na mga piraso ng takip mula sa MDF. Pagkatapos ay maiinit namin ang aming mga bahagi sa mga takip at nagdagdag ng mga wire sa kanila.

Ang mga power pad ng touch button ay nakakabit nang kahanay, habang ang bawat linya ng output ay nakakakuha ng isang indibidwal na kawad. Ito rin ay isang magandang sandali upang masubukan kung lahat sila ay gumagana. Tulad ng kailangan ng light sensor ng 5 Volts sa isang gilid, maaari lamang nating mai-hook ito sa mga pindutan ng alarma VCC pad at maghinang ng isang kawad sa kabilang binti.

Matapos maihanda ang mga panel, pinutol namin ang mga gilid ng frame, upang magkaroon ng silid para sa kanila at sa kanilang mga wire.

Pagkatapos ay alisin namin ang dust ng kahoy mula sa lahat ng mga piraso ng isang vacuum cleaner at takpan ang mga ito sa balot ng vinyl.

Ginagamit namin ang katumpakan na kutsilyo upang alisin ang mga piraso ng vinyl, direkta sa itaas ng mga sensitibong lugar ng aming mga touch module. Sa pamamagitan ng ilang dobleng panig na tape, maaari naming mailakip ang aming sariling mga pindutan sa MDF. Ginawa ko ang aking mga pindutan mula sa rubber foam, na nagbibigay sa kanila ng maganda, malambot na pagkakayari, ngunit maaari mong gamitin ang anumang materyal na hindi metal na gusto mo.

Sa frame ginagamit namin ang aming kutsilyo upang magbakante nang kaunti ng MDF muli, Na nagbibigay sa amin ng isang masalimuot na ibabaw para sa hotglue. Pagkatapos ay sa wakas ay maaari naming idikit ang mga bahagi sa mga gilid ng aming frame.

Hakbang 7: Solder ang Pangunahing PCB

Solder ang Pangunahing PCB
Solder ang Pangunahing PCB
Solder ang Pangunahing PCB
Solder ang Pangunahing PCB
Solder ang Pangunahing PCB
Solder ang Pangunahing PCB

Hinahayaan nating iwan ang frame tulad ng ngayon at magpatuloy sa PCB. Maaari mong makita ang layout ng PCB sa unang larawan.

Nagsisimula kami sa pamamagitan ng paglalagay ng mga bahagi na may pinakamababang profile sa circuit board. Ang pinakamaliit na mga bahagi ay ang mga tulay ng kawad, na naalala ko nang medyo huli na, kaya nagsimula ako sa mga resistors. Inihihinang namin ang aming mga bahagi sa lugar at magpatuloy sa susunod na mas mataas na hanay ng mga bahagi.

Susunod na mayroon kaming aming mga babaeng pin ng header. Upang makatipid ng ilang puwang at ma-plug ang aming mga electronics mula sa gilid na mai-mount namin ang mga iyon sa isang 90 degree na anggulo.

Ang mga transistor ay hindi talaga umaangkop sa 2, 54mm hole spacing ng aming PCB, kaya ginagamit namin ang aming mga pliers upang maingat na yumuko ang kanilang mga binti sa hugis, na ipinakita sa pangalawang larawan. Una naming hinihinang ang isa sa kanilang mga binti sa lugar at pinaikot ang PCB. Pagkatapos ay naiinit muli namin ang magkasanib na paghihinang at ginagamit ang aming daliri o isang pares ng pliers upang maayos na iposisyon ang sangkap. Ngayon ay maaari naming panghinang ang iba pang dalawang mga binti sa lugar.

Matapos ang lahat ng maliliit na sangkap ay hinihinang namin ang aming Arduino at ang aming real time module na orasan sa lugar. Ang module ng RTC ay hindi umaangkop nang maayos sa butas ng butas, kaya't sasaklawin lamang namin ang gilid, na mayroong 7 mga pad na panghinang na may mga pin ng header. Bukod dito inilalagay namin ang ilang tape sa ilalim nito, upang maiwasan ang anumang mga maikling circuit.

Tulad ng lahat ng aming mga bahagi ay na-solder sa lugar, oras na ngayon upang gawin ang mga koneksyon sa kabilang panig ng pisara. Para sa mga ito ay ilalabas namin ang aming hindi insulated na kawad. Maaaring magamit ang isang pares ng pliers, upang maituwid ito. Pagkatapos ay pinuputol namin ang kawad sa mas maliit na mga piraso at hinihinang ito sa PCB.

Upang makagawa ng isang koneksyon pinainit namin ang isang magkasanib na magkasanib at ipinasok ang kawad. Pagkatapos ay itinatago namin ang soldering ion dito, hanggang sa maabot ang tamang temperatura at isinasara ito ng solder at nakakakuha kami ng isang pinagsamang, katulad ng sa larawan. Kung hindi namin pinainit ang kawad, maaari tayong magtapos sa isang malamig na kasukasuan, na magkamukha sa iba pang halimbawa at hindi maayos ang pag-uugali. Maaari naming gamitin ang aming wire cutter, upang itulak ang kawad pababa habang naghahihinang at siguraduhin na ito ay nakalatag nang patag sa PCB. Sa mas mahabang mga landas ng koneksyon, hinihinang namin ito sa isang solong pad tuwing 5 hanggang 6 na butas hanggang sa maabot namin ang isang sulok o ang susunod na sangkap.

Sa isang sulok ay pinutol namin ang kawad sa itaas ng unang kalahati ng isang soldering pad at hinihinang ang dulo nito. Pagkatapos ay kukuha kami ng isang bagong piraso ng kawad at magpatuloy mula doon sa isang tamang anggulo.

Ang paggawa ng mga blangko na koneksyon sa kawad ay medyo nakakalito at nangangailangan ng ilang kasanayan, kaya kung ginagawa mo ito sa kauna-unahang pagkakataon, tiyak na hindi masamang ideya na gawin ito sa isang scrap PCB, bago subukang gawin ito sa totoong.

Pagkatapos naming maghinang, susuriing muli namin ang mga koneksyon at tiyaking hindi kami nakagawa ng anumang mga maikling circuit. Pagkatapos ay mailalagay natin ang PCB sa loob ng frame ng pindutan at gamitin ito bilang isang sanggunian para sa kinakailangang haba ng wire wire. Pagkatapos ay pinuputol namin ang mga wire sa tamang haba at nagdagdag ng mga male header pin sa kanila.

Ang lahat ng mga 5V at koneksyon sa lupa ng mga pindutan ng ugnayan ay magkakasama sa isang konektor ng 2pin, Ang 4 na mga output na kuryente ay nakakakuha ng isang 4pin na konektor at ang linya ng ilaw na sensor pati na rin ang dalawang mga wire ng nagsasalita na pinagsama sa isang tatlong konektor na pin. Huwag kalimutang markahan ang isang gilid ng bawat socket at konektor na may isang pantulis, o ilang tape, upang hindi mo sinasadyang i-plug ang mga ito sa maling paraan.

Hakbang 8: Magtipon ng Clock

Magtipon ng Clock
Magtipon ng Clock
Magtipon ng Clock
Magtipon ng Clock
Magtipon ng Clock
Magtipon ng Clock
Magtipon ng Clock
Magtipon ng Clock

Pagkatapos nito ay bumalik ako sa harap na panel at maingat na naglapat ng isang sticker, na gawa sa transparent laser printer foil, bilang isang panghuling ugnay.

Kahit na maingat kong inilapat ito, hindi ako nakakuha ng isang libreng resulta ng bubble, na sa kasamaang palad ay malinaw na nakikita sa masusing pagsisiyasat. Ang foil ay hindi rin nakadikit sa mga sulok nang napakahusay, kaya't hindi ko talaga magrekomenda ang solusyon na ito.

Marahil ay maaaring magawa ito sa isang mas mahusay na sticker, o, kung mahusay ka sa pagguhit, maaari mong idagdag ang mga numero sa isang sharie.

Ngayon ay mayroon kaming lahat ng mga bahagi at maaaring tipunin ang aming orasan.

Nagsisimula kami sa pamamagitan ng pagsasama ng gabay ng ilaw at ng harap na panel. Matapos ang lahat ng 4 bolts ay nasa, ihanay namin ang dalawang mga panel at pagkatapos ay higpitan ang mga ito. Ang isang pares ng mga mani sa paglaon ay dumating ang light panel, kung saan kailangan nating tingnan ang direksyon. Ang cable ay dapat na nasa itaas.

Ang pangatlong piraso, ay ang frame ng pindutan. Isaisip na, kapag tumitingin mula sa harap na bahagi, ang speaker ay dapat na nasa kanang bahagi ng orasan. Hilahin ang cable ng iyong led panel sa gitna ng frame, bago mo ito ayusin sa lugar.

Ngayon ay inilalagay namin ang front asside asside at magpatuloy sa back panel. Sa larawan, maaari mo ring makita ang aking magandang ginawa sa sarili na 90 degree mini USB Adapter. Naka-link ako sa iyo ng wastong adapter, kaya't hindi mo haharapin ang ganitong uri ng gulo. Maaari mo lamang mai-plug ang iyong adapter at patakbuhin ang cable sa pamamagitan ng isang butas sa likurang panel.

Kinukuha namin ang aming M3 screws at ang aming PCB spacers, upang ayusin ang maliit na window. Mahalaga na maingat na higpitan ang mga turnilyo, dahil hindi namin nais na mapinsala ang aming acrylic. Pagkatapos ay kukuha kami ng aming PCB, isaksak ang aming adapter at i-tornilyo ito sa mga spacer. Ang bahagi ng bahagi ay dapat na nakaharap sa window, habang ang USB port ng Arduino ay nakaharap sa ilalim ng orasan.

Pagkatapos ay mai-plug namin ang lahat ng mga konektor mula sa harap na pagpupulong, habang pinapanatili ang isip sa polarity at maingat na pinipiga ang lahat ng mga wire sa orasan. Pagkatapos ay maaari nating isara ito sa likod ng panel at higpitan ang 4 na natitirang mga lock nut.

Sa huli, nais mong magkaroon ng isang washer sa bawat panig ng bawat panel, habang ang gabay na ilaw ay nakalagay nang direkta sa likod ng front panel. Mayroon kaming isang kulay ng nuwes sa pagitan ng gabay ng ilaw at ng humantong panel at dalawa pa, na pinaghihiwalay ito mula sa frame ng pindutan. Maaari mo ring makita iyon sa huling larawan.

Tulad ng ginamit kong maikling bolts na may haba na 40mm, mayroon lamang akong 3 mga mani na pinapanatili ang back panel at ang frame na magkahiwalay. Gamit ang tamang 45 mm bolts, magdagdag ka ng isa pang kulay ng nuwes dito, pati na rin ang isa o dalawang sobrang mga washer. Sa pagtatapos ng pagpupulong mayroon kaming lock nut, upang ang lahat ay manatili sa lugar.

Hakbang 9: I-upload ang Code at I-calibrate ang Light Sensor

I-upload ang Code at I-calibrate ang Light Sensor
I-upload ang Code at I-calibrate ang Light Sensor
I-upload ang Code at I-calibrate ang Light Sensor
I-upload ang Code at I-calibrate ang Light Sensor
I-upload ang Code at I-calibrate ang Light Sensor
I-upload ang Code at I-calibrate ang Light Sensor

Oras upang mai-upload ang aming code.

Una naming nai-download ang lahat ng kinakailangang mga file at i-unzip ang mga ito. Pagkatapos ay buksan namin ang aming folder ng mga library ng Arduino at i-drop dito ang lahat ng mga bagong aklatan.

Ngayon ay binubuksan namin ang sketch ng calibration ng light sensor, na makakapagbigay sa amin ng maliwanag at madilim na mga halaga para sa awtomatikong pag-andar ng orasan. Ina-upload namin ito, buksan ang serial monitor at sundin ang mga tagubilin sa screen.

Matapos na tapos na buksan namin ang mga binary na orasan ng aktwal na code at palitan ang dalawang halaga sa mga sinusukat lamang namin.

Isinasara namin ang lahat ng iba pang mga bintana, i-upload ang code sa aming orasan at tapos na kami.

Oras upang maglaro kasama ang aming bagong gadget.

Hakbang 10: Isang Mabilis na Panimula sa Binary System

Isang Mabilis na Panimula sa Binary System
Isang Mabilis na Panimula sa Binary System
Isang Mabilis na Panimula sa Binary System
Isang Mabilis na Panimula sa Binary System
Isang Mabilis na Panimula sa Binary System
Isang Mabilis na Panimula sa Binary System
Isang Mabilis na Panimula sa Binary System
Isang Mabilis na Panimula sa Binary System

Bago tayo magpatuloy nais kong sagutin ang isang tanong na malamang na nawala sa isip mo, "Paano sa mundo mo nababasa ang orasan na ito?"

Sa gayon, para sa mga ito nais kong bigyan ka ng isang maikling pagpapakilala sa binary system.

Pamilyar tayong lahat sa decimal System, kung saan ang bawat digit ay maaaring magkaroon ng 10 magkakaibang mga estado, mula 0 hanggang 9. Sa binary ang bawat digit ay maaaring magkaroon lamang ng dalawang mga estado, alinman sa 1 o 0 na dahilan kung bakit maaari mong gamitin ang isang bagay na kasing simple ng isang humantong sa ipakita ang isang binary number.

Upang maipakita ang mga numero na grater kaysa sa 9 sa decimal, nagdagdag kami ng higit pang mga digit. Ang bawat digit ay may isang tiyak na multiplier. Ang unang digit mula sa kanan ay mayroong multiplier ng 1 ang susunod ay 10 at ang susunod ay 100. Sa bawat bagong digit ang multiplier ay sampung beses na kasinglaki ng isa sa digit dati. Kaya't alam natin na ang bilang dalawa ay naglagay ng isang digit sa kaliwa, kumakatawan sa bilang 20. Habang ang dalawang digit sa kaliwa, kumakatawan ito sa 200.

Sa binary system ang bawat digit ay mayroong din isang multiplier. Gayunpaman, dahil ang bawat digit ay maaaring magkaroon lamang ng dalawang magkakaibang estado, ang bawat bagong multiplier ay dalawang beses na mas malaki sa dating isa. Oh at nga pala, ang mga binary digit ay tinatawag na Bits. Tingnan natin ang ating unang halimbawa, kung maglalagay tayo ng 1 sa pinakamababang posisyon ito ay isang simpleng 1, ngunit kung ilalagay natin ito sa susunod na mas mataas na posisyon, kung saan ang ating multiplier ay 2, kinakatawan nito ang bilang 2 sa binary.

Paano ang tungkol sa bahagyang mas nakakalito na halimbawa sa ilalim ng larawan. Ang pangatlo at ang unang mga piraso ay nasa. Upang makuha ang decimal number na kinakatawan dito, idaragdag lamang namin ang mga halaga ng dalawang piraso. Kaya't ang 4 * 1 + 1 * 1 o 4 + 1 ay nagbibigay sa atin ng bilang 5.

Ang 8 bit ay tinukoy bilang isang byte, kaya't tingnan natin kung anong numero ang makukuha natin kung pinupunan natin ang isang buong byte ng mga isa.1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 na 255 na kung saan ay ang pinakamataas na halaga na maaaring magkaroon ng isang byte.

Sa pamamagitan ng paraan, habang sa decimal system ang digit na may pinakamataas na multiplier ay laging nauuna, mayroon kang dalawang paraan ng pagsulat ng isang numero pababa sa binary. Ang dalawang pamamaraan na iyon ay tinatawag na hindi gaanong makabuluhang byte muna (LSB) at pinaka-makabuluhang byte muna (MSB). Kung nais mong basahin ang isang binary number, dapat mong malaman kung alin sa dalawang mga format ang ginagamit. Dahil mas malapit ito sa decimal system, ginagamit ng aming binary na orasan ang variant ng MSB.

Hayaan bumalik sa aming halimbawa ng totoong mundo. Tulad ng naka-highlight sa ikaanim na larawan, ang aming orasan ay may 4 na piraso upang ipakita ang oras. Kaysa sa mayroon kaming 6 na piraso para sa minuto at din 6 na piraso para sa pangalawa. Dagdag dito higit pa mayroon kaming solong am / pm na bit.

Sige, sabihin mo sa akin kung anong oras na ito sa ika-6 na larawan, kaysa lumaktaw sa huling larawan.. ….

sa seksyon ng oras mayroon kaming 2 + 1 na kung saan ay 3 at ang pm bit ay nasa gayon gabi na. Susunod na minuto ng 32 + 8, iyon ay 40. Para sa mga segundo mayroon kaming 8 + 4 + 2 na 14. Kung gayon ay 3:40:14 ng hapon o 15:40:14.

Binabati kita, natutunan mo lamang na basahin ang isang binary na orasan. Siyempre kailangan ng masanay at sa simula kailangan mong idagdag ang mga numero nang magkasama, sa tuwing nais mong malaman kung anong oras na ito, ngunit katulad ng isang analog na orasan nang walang dial, masanay ka sa mga pattern ng LED oras

At iyon ang bahagi ng kung ano ang tungkol sa proyektong ito, pagkuha ng isang bagay bilang abstract sa binary system sa totoong mundo at mas kilalanin ito.

Hakbang 11: Paggamit ng Binary Alarm Clock

Gamit ang Binary Alarm Clock
Gamit ang Binary Alarm Clock
Gamit ang Binary Alarm Clock
Gamit ang Binary Alarm Clock
Gamit ang Binary Alarm Clock
Gamit ang Binary Alarm Clock

Ngayon sa wakas ay nais naming maglaro sa paligid ng orasan, kaya't tingnan muna natin ang mga kontrol.

Maaaring makilala ang software sa pagitan ng isang solong tapikin, isang dobleng tapikin at isang mahabang tapikin. Kaya't ang bawat pindutan ay maaaring magamit para sa maraming mga pagkilos.

Ang isang double tap sa pataas o pababang pindutan ay nagbabago ng mode ng kulay ng LED. Maaari kang pumili sa pagitan ng iba't ibang mga static at fading color mode pati na rin isang mode ng temperatura. Kung ikaw ay nasa isa sa mga static na mode ng kulay, ang paghawak sa pataas o pababang pindutan ay nagbabago ng kulay. Sa isang fading mode, binabago ng isang solong tap ang bilis ng mga animasyon.

Upang maitakda ang dimmer mode, doble mong i-tap ang ok na pindutan. Ipinapahiwatig ng led panel ang set mode sa pamamagitan ng pagpikit ng maraming beses.

  • Ang isang oras ay nangangahulugang walang dimmer.
  • Dalawang beses na nangangahulugang ang ningning ay kinokontrol ng light sensor.
  • Tatlong beses at ang LED ay awtomatikong patayin pagkatapos ng 10 segundo ng hindi aktibo.
  • Apat na beses at ang parehong dimmer mode ay pinagsama.

Ang mahabang pagpindot sa pindutan ng ok ay magdadala sa iyo sa mode ng setting ng oras, kung saan maaari mong gamitin ang pataas at pababang mga arrow upang baguhin ang numero. Ang isang solong pag-tap sa ok na pindutan ay magdadala sa iyo mula sa mga oras hanggang sa minuto, isa pang tapikin at maaari mong itakda ang mga segundo. Pagkatapos nito, ang isang huling tapikin ay nakakatipid ng bagong oras. Kung accedentialy mong ipasok ang mode ng setting ng oras, maaari ka lamang maghintay ng 10 segundo at awtomatikong iwanan ito ng orasan.

Tulad ng sa ok button, ang matagal na pagpindot sa pindutan ng alarma ay nagbibigay-daan sa iyong itakda ang alarma. Ang pag-tap ng dalawang beses sa pindutan ng alarma ay nagpapagana o nag-deactivate ng alarma.

Kung ang orasan ay nagri-ring, i-tap mo ang pindutan ng alarma, upang matulog ito ng 5 minuto o hawakan ito, upang i-deactivate ang pag-disarmahan ng alarma.

Ito ang lahat ng mga pagpapaandar sa ngayon na mayroon ang orasan. Maaari akong magdagdag ng higit pa sa hinaharap na maaari mong makuha, kung na-download mo ang pinakabagong bersyon ng firmware.

Hakbang 12: Pag-unawa sa Code (opsyonal)

Pag-unawa sa Code (opsyonal)
Pag-unawa sa Code (opsyonal)

Alam ko na maraming tao ang hindi gustung-gusto ang pag-program. Sa kabutihang palad para sa mga taong iyon, sa tabi ng walang kaalaman sa pag-program ay kinakailangan upang mabuo at magamit ang binary na orasan na ito. Kaya't kung wala kang pakialam sa panig ng programa, maaari mo lamang laktawan ang hakbang na ito.

Gayunpaman, kung interesado ka sa bahagi ng pag-coding, nais kong bigyan ka ng isang pangkalahatang pangkalahatang ideya ng programa.

Ang pagpapaliwanag ng bawat maliit na detalye ng code ng mga orasan ay magiging isang Maituturo sa sarili, kaya't gagawin kong simple sa pamamagitan ng pagpapaliwanag ng programa sa isang oriented na paraan.

Kung sakaling hindi mo alam kung ano ang ibig sabihin nito, ang object oriented programming (OOP) ay isang konsepto ng karamihan sa mga modernong wika ng programa tulad ng C ++. Pinapayagan kang mag-ayos ng iba't ibang mga pag-andar at variable sa tinatawag na mga klase. Ang isang klase ay isang template mula sa kung saan maaari kang lumikha ng isa o maraming mga bagay. Ang bawat isa sa mga bagay na ito ay nakakakuha ng isang Pangalan at sarili nitong hanay ng mga variable.

Halimbawa, ang code ng orasan ay gumagamit ng isang pares ng mga bagay na MultiTouch Button tulad ng alarm Button. Iyon ay mga bagay mula sa klase ng MultiTouch Button, na bahagi ng aking library ng Button. Ang cool na bagay tungkol sa mga bagay na iyon ay, na maaari kang makipag-ugnay sa kanila na katulad ng mga totoong bagay sa mundo. Halimbawa, maaari nating suriin, kung ang pindutan ng alarma ay doble na na-tap sa pamamagitan ng pagtawag sa alarma Button.wasDoubleTapped (). Bukod dito, ang pagpapatupad ng pagpapaandar na ito ay mahusay na nakatago sa isang iba't ibang mga file at hindi namin kailangang mag-alala tungkol sa paglabag nito, sa pamamagitan ng pagbabago ng anupaman sa aming code. Ang isang mabilis na pagpasok sa mundo ng object oriented na programa, ay maaaring matagpuan sa website ng Adafruit.

Tulad ng nakikita mo sa graphic sa itaas, ang programa ng mga orasan ay mayroong isang iba't ibang mga object.

Pinag-usapan lamang namin ang tungkol sa mga bagay na pindutan, na maaaring bigyang kahulugan ang mga signal ng input bilang isang tap, isang dobleng tap o isang mahabang pindutin.

Ang jukebox, tulad ng ipahiwatig ng pangalan, ay maaaring gumawa ng ingay. Mayroon itong maraming mga melodies, na maaaring i-play sa pamamagitan ng isang maliit na speaker.

Namamahala ang setting ng binaryClock ng oras at setting ng alarma, pati na rin ang panonood ng alarma. Bukod dito ay nakakakuha ng oras mula sa module ng rtc at binago ito sa isang binary buffer ng impormasyon para sa ledPanel.

Inilalagay ng colorController ang lahat ng mga pagpapaandar ng epekto ng kulay at nagbibigay ng colorBuffer para sa ledPanel. Sine-save din nito ang estado sa Arduinos EEProm.

Pinangangalagaan ng dimmer ang ningning ng mga orasan. Mayroon itong iba't ibang mga mode na maaaring mag-ikot ng gumagamit. Ang kasalukuyang mode ay nai-save din sa EEProm.

Namamahala ang ledPanel ng iba't ibang mga buffer para sa halaga ng kulay, halaga ng ningning at estado ng binary ng bawat LED. Kailan man tinawag ang function na pushToStrip (), inilalagay nito ang mga iyon at ipinapadala sila sa led strip.

Ang lahat ng mga bagay ay "konektado" sa pamamagitan ng pangunahing (ang file na may mga pag-andar at pag-andar ng loop), nagsasama lamang ito ng isang pag-andar upang maisagawa ang 3 mahahalagang gawain.

  1. Pagbibigay ng kahulugan sa pag-input ng gumagamit - Nakuha nito ang pag-input mula sa mga bagay na 4 na pindutan at inilalagay ang mga ito sa pamamagitan ng isang lohika. Sinusuri ng lohika na ito ang kasalukuyang estado ng orasan upang matukoy, kung ang orasan ay nasa normal, setting ng oras o mode ng pag-ring at tumatawag sa iba't ibang mga pag-andar mula sa iba pang mga bagay nang naaayon.
  2. Pamamahala ng komunikasyon sa pagitan ng mga bagay - Patuloy na tinatanong nito ang object ng binaryClock, kung mayroon itong bagong magagamit na impormasyon o kung ang alarma ayRinging (). Kung mayroon itong bagong Impormasyon, nakakakuha ito ng informationBuffer mula sa binaryClock at ipinapadala ito sa ledPanel object. Kung ang orasan ay nagri-ring nagsisimula ang jukebox.
  3. Pag-update ng mga bagay - Ang bawat isa sa mga bagay ng programa ay may pamamaraang pag-update, na ginagamit para sa mga bagay tulad ng pag-check ng mga input o pagbabago ng mga kulay ng LED. Ang mga iyon ay kailangang tawaging paulit-ulit sa pagpapaandar ng loop upang gumana nang maayos ang orasan.

Iyon ay dapat magbigay sa iyo ng isang pangkalahatang pag-unawa sa kung paano gumana ang mga indibidwal na piraso ng code. Kung mayroon kang mas tiyak na mga katanungan, maaari mo lamang akong tanungin.

Tulad ng aking Code ay tiyak na malayo mula sa perpekto, higit ko itong pagbutihin sa hinaharap, kaya't maaaring magbago ang ilang mga pag-andar. Ang cool na bagay tungkol sa OOP ay, na gagana pa rin ito sa isang katulad na pamamaraan at maaari mo pa ring gamitin ang graphic upang maunawaan ito.

Hakbang 13: Pangwakas na Mga Salita

Pangwakas na Salita
Pangwakas na Salita

Natutuwa ako na patuloy kang nagbasa hanggang sa puntong ito. Nangangahulugan iyon na ang aking proyekto ay hindi masyadong mainip:).

Naglagay ako ng isang toneladang trabaho sa maliit na orasan na ito at mas maraming trabaho sa lahat ng mga dokumentasyon at video, upang gawing madali para sa iyo, na bumuo ng iyong sariling Binary alarm Clock. Inaasahan kong sulit ang aking pagsisikap at mai-hook kita ng isang mahusay na ideya para sa iyong susunod na proyekto sa katapusan ng linggo o hindi bababa sa, magbigay sa iyo ng ilang inspirasyon.

Gusto kong marinig kung ano ang iniisip mo tungkol sa orasan sa mga komento sa ibaba:).

Kahit na sinubukan kong takpan ang bawat detalye, maaaring napalampas ko ang isang bagay o dalawa. Kaya huwag mag-atubiling magtanong, kung may natitirang mga katanungan.

Tulad ng dati, maraming salamat sa pagbabasa at masayang paggawa.

LED Contest 2017
LED Contest 2017
LED Contest 2017
LED Contest 2017

Runner Up sa LED Contest 2017

Inirerekumendang: