Talaan ng mga Nilalaman:

Space Invaders Clock (sa isang Budget!): 6 na Hakbang (na may Mga Larawan)
Space Invaders Clock (sa isang Budget!): 6 na Hakbang (na may Mga Larawan)

Video: Space Invaders Clock (sa isang Budget!): 6 na Hakbang (na may Mga Larawan)

Video: Space Invaders Clock (sa isang Budget!): 6 na Hakbang (na may Mga Larawan)
Video: Seiko Pogue Watch Restoration 2024, Hulyo
Anonim
Image
Image
Ipunin ang Mga Bahagi
Ipunin ang Mga Bahagi

Kamakailan nakita ko ang isang cool na pagbuo ng GeckoDiode at nais ko agad itong itayo. Ang Instructable ay Space Invaders Desktop Clock at inirerekumenda kong tingnan mo ito pagkatapos mabasa ito.

Ang proyekto ay halos nagawa lamang sa mga bahagi na nagmula sa Adafruit na may isang naka-print na enclosure na 3D, at facia ng cut ng laser. Ang pagdaragdag ng lahat ng bagay ang gastos ng pagbuo ay nagiging napakamahal! (mga £ 100 o higit pa). Ang problema ay kung hindi ka nagmamay-ari ng isang 3D printer kailangan mong magbayad upang mai-print ang iyong modelo, o bumili ng isang pangit na enclosure mula sa ebay na madalas ay napakaliit, masyadong makitid, maikli, o kabaligtaran.

Karamihan sa aking mga build ay kailangang gawin sa isang hobbyist na badyet at mga enclosure na palaging nagtatapos sa pagiging pinakamahal na bahagi. Kaya't nagpasya akong bumuo ng parehong orasan ngunit sa isang disenteng badyet.

Kung nasisiyahan ka sa pagtingin sa mga kakaibang orasan, tingnan ang aking Steampunk Voltmeter Clock, na gumagamit ng parehong mga materyales sa pagbuo para sa enclosure:-)

Hakbang 1: Ipunin ang Mga Bahagi

Upang magawa ang proyektong ito kakailanganin mo ang sumusunod. Isaisip ang mga materyales para sa enclosure magkakaroon ka NG ALAM ng left-overs na maaari mong gamitin sa iba pang mga proyekto (na ginagawang mas mura ang gastos sa hinaharap). Na-upload ko ang mga PDF ng mga bagay na kailangan mo kung nais mong suriin ang presyo atbp sa ebay.

Mga tool (ipinapalagay kong magkakaroon ka na ng mga ito)

  • Panghinang
  • Panghinang
  • Solder pump (kung nagkamali ka at kailangan mong alisin ang solder)
  • Mainit na glue GUN
  • Mainit na pandikit
  • Craft kutsilyo (a.k.a. stanley kutsilyo)
  • Ruler / pagsukat ng tape / Vernier caliper
  • Cordless drill + drill bits (1 mm hanggang 13 mm)
  • Rotary multi-tool na may cutting disc (a.k.a. Dremel)
  • Ang paglilinis ng likido tulad ng Isopropyl-alkohol (gumagana din ang murang aftershave)
  • Safety mask (ginamit kapag spray ng pagpipinta)

Electronics (Gastos ng electronics = £ 13.05)

Ang ilan sa mga ito ay libre ako. Ang mga lumang laruang elektroniko ay mayroong magagandang Mylar speaker sa loob kung pinaghiwalay mo sila. Habang naroroon ka marahil maaari kang makakuha ng isang DC bariles at isang pindutan din ng push.

  • Mga cable na Dupont / Jumper - £ 0.99
  • DS1307 Real time module module - £ 0.99 (Inirerekumenda kong makuha sa halip ang DS3231 kung saan magagamit)
  • Arduino nano + usb cable - £ 2.23
  • 8 Ohm Mylar speaker - £ 0.99
  • Pansamantalang pindutan ng push SPST - £ 1.49
  • 5.5mm DC bar socket - £ 1.26
  • 5v, 0.5A DC power supply - £ 2.83
  • MAX7219 Dot matrix display - £ 3.76

Enclosure (Gastos ng mga materyales sa enclosure = £ 17.19)

  • 60mm square drain pipe - £ 5.99 (magkakaroon ka ng ALAM sa natitirang ito para sa higit pang mga proyekto)
  • Pinta ng itim na spray - £ 4.85
  • Itim na PVC (foamboard) - £ 2.99
  • Super pandikit - £ 0.99
  • 60mm end cap - £ 2.37

Kabuuang gastos = £ 30.24:-) …….. hanggang ngayon ito ay katumbas ng 38 USD para sa anumang mga international reader.

Masaya ako sa pagtatrabaho sa PVC square pipe. Madali silang mag-drill, mag-cut, magpinta, at gumamit ako ng isa para sa aking orasan ng Steampunk.

Hakbang 2: Maghanda Ka ng Pipe ng Patuyuin

Maghanda ka ng Pipe ng Paalisin
Maghanda ka ng Pipe ng Paalisin

Markahan kung saan mo nais maglagay ng mga bagay

Napakadali nito. Wala akong nagamit na fancy. Una kong pinutol ang 2.5 m haba hanggang sa isang makatuwirang sukat para sa aking bench sa bahay (mga 30 cm) na may isang lagari sa hack. Kalaunan ay pinutol ko ito ng isang dremel upang gawing maganda at tuwid ang mga gilid. Pagkatapos ay pinahinga ko ang mga bahagi sa ibabaw ng tubo at gumamit ng isang permanenteng merkado upang markahan kung saan nais kong mag-drill at gupitin. Sinubaybayan ko ang labas ng LED matrix, at gumamit ng isang rotrary multi-tool upang i-cut ang isang square hole para magkasya itong flush. Gumamit ako ng isang digital caliper upang sukatin ang diameter ng push button at DC barrel upang maputol ang tamang mga butas sa laki sa likuran at itaas.

Gupitin ang isang bezel

Mayroon akong maraming PVC foam board na naglalagay mula sa mga nakaraang proyekto. Mahusay sila para sa mga mounting circuit sa mga enclosure, ginagamit ito sa paghahalo ng epoxy nang magkasama dito, at paggawa ng iba pang mga piraso at bob. Kumuha ng piraso ng laki ng A4 o A5 at gupitin ang isang parisukat na 5 mm na palibutan o bezel upang mai-frame ang LED matrix. Itatago nito ang anumang mga winky endge na iyong ginawa kapag pinuputol ang square hole para sa matrix. Para sa mga ito iginuhit ko ang isang maliit na template sa Inkscape at nai-print ito (nakalakip ang SVG File). Pagkatapos ay nai-tape ko ito gamit ang masking tape sa foamboard at maingat na ginupit ito sa isang kutsilyo. Mahirap makarating sa kanan, inirerekumenda kong i-cut muna ang loob saka sa labas.

Pintura lahat

Kapag ang lahat ng mga butas ay na-drill at pinutol, alisin ang anumang mga burred edge. Linisin ang mga ibabaw na may ilang mga wipe ng alkohol upang alisin ang anumang alikabok o polusyon (o ilang murang aftershave kung wala kang anumang IPA). Subukan at spray sa isang mahusay na maaliwalas na lugar at gumamit ng isang mask kung saan posible. Ginawa ko ito sa labas na may ilang karton sa sahig ngunit hindi ito perpekto, kahit na isang maliit na simoy ay maaaring maging sanhi ng paglipad ng pintura sa iyong mukha. Mag-ingat at magsuot ng proteksiyon na kagamitan kung posible.

Pagwilig ng tubo, bezel, at mga takip sa wakas upang ang lahat ay magkatulad na uri ng itim, pagkatapos ay umalis upang matuyo ng ilang oras.

Hakbang 3: I-program ang Arduino

Program ang Arduino
Program ang Arduino

Ang ilang impormasyon tungkol sa code

Credit sa GeckoDiode dahil kinuha ko ang kanyang code at binago ito upang gumana sa MAX7219 Chip. Ang bersyon ng Adafruit ay gumagamit ng I2C bus at ang MAX ay gumagamit ng SPI bus. Para sa mga ito ginamit ko ang MaxMatrix library, na aking na-download at na-install sa Arduino IDE. Kung nais mong malaman ang tungkol sa MaxMatrix at kung paano gumagana ang LED matrix sa punong-guro mayroong isang napakaikling tutorial sa HowToMechatronics.com. Ang LED matrix ay tanging binubuo ng isang solong kulay ng LED kaysa sa pagkakaroon ng isang multi-kulay na display.

Ang isang pagkabigo na mayroon ako ay na WALANG malinaw na kahulugan ng kung ano ang mga pagpapaandar para sa silid-aklatan at kung anong mga argumento ang kailangang maipasa sa bawat isa. Sa kabutihang palad ay nalaman ko kung ano ang ginawa sa pamamagitan ng pagsubok at error at sa huli hindi masyadong mahirap gawin itong gumana nang maayos. Ang unang bagay na dapat maunawaan ay kailangan mong tukuyin kung gaano karaming mga module ng 8x8 ang nasa iyong matrix. Sa aking code ay nakaimbak ito sa isang integer na tinatawag na "modules" tulad nito:

"int modules = 4;"

Ito ang NUMBER ng 8x8 module na na-link mo nang magkasama sa iyong display. Hindi ang bilang ng mga LED o kung anong pin ang ginagamit mo sa pagpapadala ng data. Ang susunod na dapat tandaan ay kung ang iyong "sprite" o kung ano man ang sumasakop sa lahat ng apat na matrices kung gayon ang byte array ay kailangang tukuyin tulad nito:

"byte text_start_bmp = {32, 8,… * ilang byte data *…};"

Isinasaad ng mga numero ang dami ng mga hilera at haligi sa matrix. Sa pagkakataong ito ang byte na nagngangalang "text_start_bmp" ay ipinapakita sa 32 haligi at 8 hilera. Ang mga numero ay ipinapakita lamang sa isang solong 8x8 matrix kaya ganito ang minutong numero 10:

"byte minute_ten_bmp = {8, 8,… * ilang byte data *…};"

Sinasakop ng mga mananakop ang dalawang matrice kaya ang byte ay bibigyan ng 16, 8 sa byte data.

Ang iba pang bagay na nakuha sa akin ay ang pagpoposisyon ng data ng sprite. Maaari mong hilingin sa Arduino na ipakita ang sprite sa ibang posisyon na X / Y sa matrix mula sa default na posisyon sa bahay. Ganito ang hitsura ng code para sa minutong zero:

"matrix.writeSprite (8, 0, minute_zero_bmp);"

Ang isang numero ay pagsasaayos ng X at ang isa pa ay Y. Hindi matandaan kung alin ang alin ngayon, ngunit kung nais mong idako ang sprite pataas o pababa ng 1 hilera o haligi na dagdagan mo lamang ang bilang na positibo o minus. Sapat na simple para sa 8x8 matrix ngunit kapag ang iyong sprite ay sumasakop sa higit sa isang matrix kailangan mong itakda ang posisyon sa bahay nang naaayon. Ang sprite na "POP" ay ipinapakita sa ibaba:

"matrix.writeSprite (16, 0, invader_pop_bmp);"

Pansinin ngayon kung paano ang posisyon sa bahay ay 16 hindi 8? Dito ipinapahiwatig ng code na ang sprite ay ipinakita mula kaliwa hanggang kanan mula sa posisyon na hilera / haligi 16. Isinasaalang-alang nito ang dalawang 8x8 na ipinapakita na isang solong display na 16x8 kahit na mayroong 4! Samakatuwid ito ay mahalagang mag-isip tungkol sa kung gaano karaming mga ipinapakita ang sprite ay ipapakita sa kabuuan at sukat ng byte array ng bawat sprite nang naaayon. Kung hindi, magkakaroon ka ng ilang mga kagiliw-giliw na sprite!

DS1307 RTC

Inaasahan na ang DS1307 ay gumagana ng maayos sa Adafruit RTClib.h library, hindi mo manu-manong maitakda ang oras na isang sakit lamang. Sumama lang ako dito dahil nangangahulugan ito ng mas kaunting code upang mabago. Itinatakda ng DS1307 ang oras gamit ang oras at petsa ang code ay naipon mula sa oras ng iyong computer. Sa halip alamin kung paano gamitin ang DS3231 library at itakda ito minsan para sa isa o dalawang minuto nang maaga sa hinaharap. Mayroon din itong mas kaunting "drift" kaya't pinapanatili nitong mas mahusay ang oras sa paglipas ng panahon. Ang parehong mga module ay gumagamit ng I2C bus at naniniwala ako na ang DS3231 ay maaaring magamit sa RTClib.h kung nagmamalasakit ka na magpatuloy sa paggamit nito.

I-upload ang code

Kapag nasisiyahan ka sa code i-upload ito sa Arduino. Inilakip ko ang aking Arduino sketch para sa iyong pagsasaalang-alang.

Hakbang 4: Pag-iipon ng Elektronika

Assembling Electronics
Assembling Electronics

Habang ang pag-upload ng code ay inirerekumenda ko ang pagkakaroon ng mga electronics na binuo gamit ang mga dupont / jumper wires sa isang breadboard muna kaya kapag na-upload mo ang code alam mong gumagana ang lahat ayon sa nilalayon. Pinapayagan kang mag-iron ng anumang mga isyu sa pagpapakita ng mga sprite atbp bago ka magsimula sa pagdikit at pagdikit. Sa aking code maaari mong makita na gumagamit ako ng mga digital na pin 4, 5, 6, 7, 9, ngunit maaari mong baguhin ang mga ito kung kinakailangan. Maaaring kailanganin mong maghinang mga kable sa pindutan, DC jack, at Speaker ngunit ang karamihan ay dapat maging madaling push fit style style.

Kapag masaya ka na ang electronics na gumagana tulad ng inilaan dapat mong isaalang-alang ang paghihinang ng mga koneksyon. Maaari mo itong gawin sa tanso na stripboard / veroboard, ngunit para sa maliit na halaga ng mga bahagi maaari kang direktang maghinang sa mga pin ng Arduino. Ito ay magiging hitsura ng isang pugad ng mga daga ngunit walang makakakita sa loob ng enclosure kapag naka-assemble pa rin ito, siguraduhin lamang na ang lahat ng mga bahagi ng metal ay pinaghiwalay, hindi mo nais ang anumang maikukulang sa kaso.

Ginawa ko ang push button na gumana kapag ang "main Button" na pin ay hinila pababa. Natagpuan ko na nakikilala ng Arduino ang maling pindutan ng push na pinindot kapag ang lumulutang na electronics ay tumira dito. Ang paggamit ng isang 10K pulldown risistor sa push button at itinakda ang pin sa "INPUT_PULLUP" ay nalutas ang problemang iyon para sa akin.

Nakalakip ang eskematiko sa PDF at-p.webp

Hakbang 5: I-mount ang Elektronika at Isara

I-mount ang Electronics at Close Up
I-mount ang Electronics at Close Up
I-mount ang Electronics at Close Up
I-mount ang Electronics at Close Up

Para sa aking orasan ay inimuntar ko ang mga electronics gamit ang mainit na pandikit, ngunit mag-ingat na huwag mag-apply nang labis (ang electronics ay hindi nais na pinainit ng masyadong mahaba). Gumamit ako ng isang maliit na patak ng sobrang pandikit na may tuldok sa paligid ng bezel at pinindot ito sa harap. Natapos ko ang enclosure sa pamamagitan ng pagtulak sa mga end cap sa bawat dulo. Siyempre maaari mong kola ang mga takip ng takip upang ganap na maipaloob ang pagpupulong, ngunit iniwan ko ang isang bahagi ng minahan na bukas upang ma-access ko pa rin ang USB port ng arduino upang i-reset ang petsa at oras sa hinaharap.

Hakbang 6: Masiyahan

Tangkilikin
Tangkilikin
Tangkilikin
Tangkilikin

Sa pangkalahatan nasiyahan ako sa paraan ng paglabas nito, isinasaalang-alang lamang ito sa ilang tubo ng kanal at pinturang spray. Sana magustuhan mo ito at ipaalam sa akin kung maaari mong maiisip ang anumang mga cool na pag-upgrade na maaaring idagdag. Gusto kong malaman kung ang sinuman ay maaaring gawing mas mura ito o kung may isa pang matipid na paraan ng paggawa ng isang enclosure maaari kong subukan sa aking susunod na proyekto.

Inirerekumendang: