Talaan ng mga Nilalaman:

LED Matrix Game of Life 32 X 32: 8 Mga Hakbang
LED Matrix Game of Life 32 X 32: 8 Mga Hakbang

Video: LED Matrix Game of Life 32 X 32: 8 Mga Hakbang

Video: LED Matrix Game of Life 32 X 32: 8 Mga Hakbang
Video: 1. Q light controller plus Getting started with QLC+. Fixtures and functions 2024, Nobyembre
Anonim
LED Matrix Game of Life 32 X 32
LED Matrix Game of Life 32 X 32

Naging inspirasyon ako ng Jptrsn's16 x16 Game of Life ngunit natapos na maging apat na beses na mas malaki. Natagpuan ko ang ilang MAX7219 Dot Matrix Module 4-in-1 Display Para sa mga board ng Arduino sa Bangood.com sa halagang £ 3.50 pagdating nila naging medyo mahirap upang paghiwalayin ang mga ito at gamitin ang mga ito sa isang 16x16 grid tulad ng plano ko, kaya't nagpasya akong gumawa ng isang 32x32 grid. Iyon ay kapag naging mahirap ang mga bagay, dahil hindi mo lamang mai-scale ang code.

Hakbang 1: Mga Bahagi

Nakuha ko ang aking mga bahagi mula sa BangGood ngunit maaari mong mapagkukunan ang mga ito kahit saan. 1. Isang Arduino Nano (~ £ 2) 2. 4 1x4 Led Matrixes (~ £ 3.50 x 4) o maghanap ng mga multipacks na kung minsan ay mas mura 3. Ilang wire 4. Isang USB micro socket (<£ 1) 5. Isang USB supply ng kuryente (<£ 5) 6. Isang 6 "x6" / 15cmx15cm Box frame ng larawan (~ £ 4) mula sa lokal na tindahan ng bapor

Hakbang 2: Mga tool

1. Mainit na baril ng pandikit

2. bakal na bakal

3. Mga striper ng wire

4. Matalim na kutsilyo

Hakbang 3: Breadboard Build

Bumuo ng Breadboard
Bumuo ng Breadboard

Ang isang bagay na natutunan ko sa puntong ito ay ang isang nano (at marahil iba pang Arduinos) ay hindi maaaring magbigay ng sapat na lakas upang patakbuhin ang lahat ng 4 ng mga matrix nang hindi sinusunog ang suplay ng kuryente! babalaan

Nang dumating ang aking mga board nakuha lamang nila ang mga pin sa input end at ang mga output pin ay maluwag sa bag, o sa isang kaso na jammed sa ilalim ng isang display na kinukulang ang mga pin. Ito ay hindi maganda para sa mga ipinapakitang ito (magandang trabaho na binili ko ng 6). Kakailanganin mong solder ang mga output pin sa dalawa sa mga LED matrix kung hindi sila nilagyan sa iyo.

Ang layout ay medyo prangka, maaari mong daisy kadena dalawa sa mga matrixes magkasama upang bumuo ng dalawang mga kadena sa pamamagitan lamang ng pagkonekta ng mga output pin sa mga tumutugma na input pin. Hindi mo mai-chain ang lahat ng mga ito sa isang run dahil ang LedControl library ay limitado sa 8 pagpapakita nang paisa-isa.

Pagkatapos plug ang DataIn sa pin 12, i-load (o CS) sa pin 11 at Clock (o CLK) upang i-pin 10 at para sa iba pang kadena sa 5, 4 & 3. Bilang kahalili, maaari kang pumili ng anumang mga digital na pin na nais mong tandaan lamang na baguhin ang code upang ipakita ang iyong pinili. Pagkatapos idagdag ang USB socket sa breadboard. Pagkatapos i-link ang v + at mga ground pin sa riles ng breadboard. Pagkatapos ay kailangan mong i-plug ang mga lead ng kuryente mula sa 2 chain hanggang sa + ve at ground at itali ang Arduino ground sa ground. Kapag natapos namin ang pag-program ng board maaari mong i-link ang Arduino vin sa v + at huwag na muling i-plug ang Aurdino USB.

Hakbang 4: Code

Sa una, naisip ko ang kailangan ko lang gawin ay kunin ang umiiral na code at sukatin ito para sa 32x32 ngunit ito ay isang maliit na tricker kaysa doon. 1. Kailangan mo ng dalawang LedControls dahil ang bawat isa ay maaari lamang magmaneho ng 8 MAX7219s LedControl lc [2] = {LedControl (12, 10, 11, 8), LedControl (5, 3, 4, 8)}; 2. Walang sapat na memorya sa isang Nano upang mag-imbak ng 2 buong 32x32 byte arrays upang mapanatili ang board board. (Panghuli, sa lahat ng mga oras na isinulat ko ang Game of Life code sa isang whiteboard sa mga panayam ay nagbabayad.) Kaya, tinukoy namin ang board arrays bilang 32x4 at iimbak ang estado ng bawat cell nang kaunti sa mga byte sa buong array.

Hakbang 5: Pagsasama-sama sa Lahat ng Ito

Una subukan ang code at ang layout ng mga board ay inaasahan sa pamamagitan ng paggamit ng "testPattern" na paraan upang gumuhit ng isang dayagonal na krus sa mga board. Kung hindi ito tumingin ng tama pagkatapos ay may isang bagay na mali sa pagkakasunud-sunod ng mga board at / o mga pin na iyong pinasimulan. Pagkatapos suriin ang mga bagay gamit ang glider na pamamaraan na lumilikha ng isang glider na gumagalaw sa buong screen. Muli kung hindi ito gumagana pagkatapos suriin ang pagkakasunud-sunod ng mga pin atbp Panghuli, itakda ang pangunahing pamamaraan upang maging "randomize", itakda ang NUMITR sa bilang ng beses na dapat itong ulitin bago i-reset.

Hakbang 6: I-frame Ito

I-frame Ito
I-frame Ito

Ngayon upang ilagay ang lahat sa isang frame. Una, mainit na pandikit ang mga matrix nang magkasama sa isang 32x32 na frame. Tandaan na tiyakin na ang input end ay nasa parehong panig para sa kanilang lahat (o baguhin ang lookup code sa "gridToCell" upang pahintulutan ang 2nd board na baligtad). Idagdag ang socket ng kuryente at isang switch sa linya ng 5v at magkasama ang lahat.

Hakbang 7: Mga Isyu sa Frame

Ito ay lumalabas na kailangan mo ng isang mas malaking frame kaysa sa 6x6 na mayroon ako. Kaya't kakailanganin kong bumalik upang matapos ito kapag nakakakuha ako ng pagkakataong makapunta sa tindahan.

Hakbang 8:

Inirerekumendang: