Turinys:

LED matricos gyvenimo žaidimas 32 X 32: 8 žingsniai
LED matricos gyvenimo žaidimas 32 X 32: 8 žingsniai

Video: LED matricos gyvenimo žaidimas 32 X 32: 8 žingsniai

Video: LED matricos gyvenimo žaidimas 32 X 32: 8 žingsniai
Video: Dark Ring или Elden Souls ► 3 Прохождение Elden Ring 2024, Lapkritis
Anonim
LED matricos gyvenimo žaidimas 32 X 32
LED matricos gyvenimo žaidimas 32 X 32

Mane įkvėpė „Jptrsn's 16 x16 Game of Life“, bet galų gale jis buvo keturis kartus didesnis. „Arduino“lentose radau „MAX7219 Dot Matrix Module 4-in-1“ekraną „Bangood.com“už 3,50 svaro, kai jie atvyko. gana sunku juos atskirti ir panaudoti 16x16 tinklelyje, kaip planavau, todėl nusprendžiau padaryti 32x32 tinklelį. Būtent tada viskas pasidarė sudėtinga, nes negalima tik padidinti kodo.

1 žingsnis: dalys

Aš gavau savo dalis iš „BangGood“, bet jas galite įsigyti bet kur. 1. „Arduino Nano“(~ £ 2) 2. 4 1x4 LED matricos (~ £ 3.50 x 4) arba ieškokite kelių pakuočių, kurios kartais yra pigesnės 3. Kai kurie laidai 4. USB mikro lizdas (<£ 1) 5. A USB maitinimo šaltinis (<£ 5) 6. 6 colių x 6 colių /15 cm x 15 cm dėžutės nuotraukų rėmelis (~ 4 svarai) iš vietinės amatų parduotuvės

2 žingsnis: įrankiai

1. Karštas klijų pistoletas

2. Lituoklis

3. Vielos nuėmikliai

4. Aštrus peilis

3 žingsnis: „Breadboard“kūrimas

Duonos lentos kūrimas
Duonos lentos kūrimas

Vieną dalyką, kurį sužinojau, yra tai, kad nano (ir tikriausiai kiti „Arduinos“) negali suteikti pakankamai energijos, kad galėtų paleisti visas 4 matricas, neišdegindamas maitinimo šaltinio! būti įspėtam

Kai atvyko mano lentos, įvesties gale buvo tik smeigtukai, o išvesties kaiščiai buvo laisvi maiše arba vienu atveju įstrigo po ekranu, sutrumpindami kaiščius. Pasirodo, kad tai netinka šiems ekranams (gerą darbą nusipirkau 6). Turėsite lituoti išvesties kaiščius ant dviejų LED matricų, jei jos nėra jūsų.

Išdėstymas yra gana paprastas, galite susieti dvi matricas, kad sudarytumėte dvi grandines, tiesiog prijungdami išvesties kaiščius prie atitinkamų įvesties kaiščių. Negalite jų visų susieti grandine vienu metu, nes „LedControl“bibliotekoje vienu metu yra tik 8 ekranai.

Tada prijunkite „DataIn“prie 12 kaiščio, įkelkite (arba CS) prie 11 kaiščio ir laikrodį (arba CLK) prie 10 kaiščio, o kitoje grandinėje - 5, 4 ir 3. Arba galite pasirinkti bet kokius skaitmeninius kaiščius, kuriuos norite, tiesiog nepamirškite pakeisti kodą, kuris atspindėtų jūsų pasirinkimą. Tada pridėkite USB lizdą prie duonos lentos. Tada prijunkite v+ ir įžemintus kaiščius prie duonos lentos bėgelių. Tada jums reikia prijungti maitinimo laidus iš 2 grandinių prie +ve ir įžeminti ir surišti „Arduino“įžeminimą. Baigę programuoti plokštę, galite susieti „Arduino vin“su „v+“ir daugiau niekada neprijungti „Aurdino“USB.

4 žingsnis: kodas

Iš pradžių maniau, kad viskas, ką turiu padaryti, yra paimti esamą kodą ir padidinti jį iki 32x32, bet tai šiek tiek apgaulingiau. 1. Jums reikia dviejų „LedControl“, nes kiekvienas gali vairuoti tik 8 MAX7219s LedControl lc [2] = {LedControl (12, 10, 11, 8), LedControl (5, 3, 4, 8)}; 2. „Nano“nepakanka atminties, kad būtų galima išsaugoti 2 pilnus 32 x 32 baitų masyvus, kad būtų išlaikyta plokštės būsena. (Galiausiai, visą laiką, kai interviu rašiau gyvenimo žaidimo kodą ant lentos, pasiteisina.) Taigi, mes apibrėžiame lentos masyvus kaip 32x4 ir kiekvienos ląstelės būseną kaip bitą išsaugoti masyvo baitais.

5 žingsnis: sudėkite viską kartu

Pirmiausia išbandykite kodą ir lentų išdėstymą, kaip tikėtasi, naudodami „testPattern“metodą, kad nubrėžtumėte įstrižainį skersinį ant lentų. Jei tai neatrodo gerai, tada kažkas negerai su jūsų inicijuotų lentų ir (arba) kaiščių tvarka. Tada patikrinkite viską naudodami sklandytuvo metodą, kuris sukuria sklandytuvą, kuris juda per ekraną. Vėlgi, jei tai neveikia, patikrinkite kaiščių tvarką ir tt Galiausiai, nustatykite pagrindinį metodą „atsitiktinai“, nustatykite NUMITR, kiek kartų jis turėtų pakartoti prieš iš naujo nustatydamas.

6 žingsnis: įrėminkite

Įrėminkite
Įrėminkite

Dabar viską sudėkite į rėmą. Pirma, karštai klijuokite matricas į 32x32 rėmelį. Nepamirškite įsitikinti, kad įvesties galas yra toje pačioje pusėje (arba pakeiskite paieškos kodą „gridToCell“, kad antrosios plokštės būtų apverstos). Pridėkite maitinimo lizdą ir jungiklį ant 5v linijos ir viską prijunkite.

7 žingsnis: rėmo problemos

Pasirodo, kad jums reikia didesnio rėmo nei mano turimas 6x6. Taigi, kai turėsiu galimybę nueiti į parduotuvę, turėsiu sugrįžti ir užbaigti.

8 žingsnis:

Rekomenduojamas: