Sadržaj:

Pumpktris - bundeva Tetris: 10 koraka (sa slikama)
Pumpktris - bundeva Tetris: 10 koraka (sa slikama)

Video: Pumpktris - bundeva Tetris: 10 koraka (sa slikama)

Video: Pumpktris - bundeva Tetris: 10 koraka (sa slikama)
Video: SCP-261 Пан-мерное Торговый и эксперимент Войти 261 объявление Де + полный + 2024, Srpanj
Anonim
Pumpktris - Tetris bundeva
Pumpktris - Tetris bundeva

Tko želi nasmijana lica i svijeće kada možete imati interaktivnu bundevu za ovu Noć vještica? Igrajte svoju omiljenu igru slaganja blokova na rešetku 8x16 urezanu u lice tikve, osvijetljenu LED diodama i koristeći stabljiku kao upravljač. Ovo je umjereno napredan projekt i zahtijeva iskustvo lemljenja i programiranja u Arduino okruženju. Radit ćete s organskom tvari i svim njezinim svojstvima, pa će mjerenja možda morati prilagoditi kako bi odgovarala bundevi koju koristite.

Korak 1: Potrebni materijali

Potrebni materijali
Potrebni materijali
Potrebni materijali
Potrebni materijali

Za izradu vlastitog Pumpktrisa trebat će vam sljedeće: Komponente

  • 128 5 -mm žute LED diode (koristio sam ih od Mousera) Kupite dodatno za pokrivanje grešaka ili testova. Dobio sam 140. Jantar najviše sliči plamenu koji bi bio unutar tradicionalnog jack-o-lanterna, ali možete koristiti bilo koju boju koja vam se sviđa.
  • Arduino mikrokontroler
  • Termoskupljajuće cijevi (11 stopa ili dugački komadi 256 1/2 ")
  • Arkadni joystick sa uklonjivom ručkom (ovaj sa SparkFuna mi je dobro funkcionirao)
  • 4 #6 najlonska sidra od suhozida Ovo nije vrsta s prekidačima, već ona koja izgleda kao vijci s dubokim navojem
  • 4 vijka dugačka pola inča iste veličine i tipa koji su isporučeni sa sidrima za suhozid. Oni koji dolaze sa sidrima bit će predugi.
  • Vijak 6 mm x 50 mm (ili bilo koje veličine koja odgovara nosaču za vašu ručku upravljačke palice)
  • Spojna matica od 6 mm (ili bilo koje druge veličine koja je potrebna da se podudara s gornjim vijkom) Spojna matica izgleda kao obična matica, ali je duga oko 1 cm i koristi se za spajanje dva vijka ili komada navojne šipke.

I za kraj, trebat će vam 1 bundeva. Potreban vam je samo jedan, ali preporučujem dva tako da imate jedan koji možete koristiti za vježbanje bušenja i rezanja. Vaša LED matrica pokrivat će površinu široku približno 4 "i visoku 8", pa želite bundevu s površinom što je moguće glatkijom i ravnijom kako se vaša matrica ne bi previše omotala. Mogla bi vam koristiti pjenasta bundeva, ali gdje je čarolija u tome? Ne mogu govoriti o tehnikama rezbarenja potrebnim na bundevi od pjene. Alati i potrošni materijal

  • Lemilica
  • Lem
  • Rezači žice
  • Skidači žica
  • Bušilica
  • Pila za metal
  • Nož X-Acto
  • Svrdlo 13/64"
  • Svrdlo od 1-1/8 "(koristio sam Forstner bit, ali bi moglo djelovati i pipasto pilo)
  • 1/4 "ploča od pjene

Korak 2: Izgradnja LED matrice

Izgradnja LED matrice
Izgradnja LED matrice
Izgradnja LED matrice
Izgradnja LED matrice
Izgradnja LED matrice
Izgradnja LED matrice

Svaka matrica izrađena je od 64 LED diode i 128 komada žice. Najlakše je unaprijed odrezati i ogoliti sve žice za svaku matricu. Izrežite 112 na 2,5 "komade i odvojite 1/4" sa svakog kraja. Preostalih 16 izrežite na 12 "dijelove i ogolite oba kraja. Što konzistentnije odredite duljinu žice, lakše ćete je izgraditi i instalirati.

Započet ćete izgradnjom šesnaest lanaca od osam segmenata žica-svaki sa 7 kratkih i 1 dugačkom žicom. Okrenite svaki kraj zajedno sa sljedećim komadom i lemite. Za spajanje žica na LED diode trebat će vam spojnica za držanje LED dioda. Nacrtajte rešetku 8x8 s razmakom od pola inča na komadu 1/4 "debele ploče sa jezgrom od pjene, a zatim šilom probušite rupu nešto manjeg promjera od LED-a na svakom križanju. Imat ćete 64 rupe kada gotovi ste. U gornji red rupa umetnite 8 LED dioda. Jezgra od pjene će se rastegnuti kako bi pristajala LED diodama i čvrsto će ih držati. Poravnajte LED diode tako da je duža noga-anodni vod-okrenuta prema vama na svakoj. Dvaput provjerite jer ako nešto pogriješite matrica neće raditi. Pričvrstite svaki anodni kabel duljine oko 1/4 "i zalijepite ga lemljenjem radi lakšeg spajanja žica. Izrežite 8 komada termoskupljajuće cijevi na segmente od 1/2 ". Gurnite komad cijevi preko prve žičane veze, gurnite je unatrag tako da na nju ne djeluje toplina lemljenja, a zatim lemite žičanu vezu na LED anodu. Gurnite cijev prema dolje preko priključka nakon što se ohladi. Nastavite do sljedeće LED diode, ponavljajući još sedam puta postupak klizanja po komadu cijevi, lemljenje veze, a zatim spuštanje cijevi preko spoja. Kad dobijete set od osam LED dioda međusobno spojenih, uklonite ih iz šablona i ponovite još sedam redova, pazeći da sve veze povežete na anodni vod svake LED diode. Možete koristiti bilo koji red spojnice koji je najjednostavniji za pristup, budući da radite samo s jednim odjednom. Nakon što je svih osam redaka lemljeno, vrijeme je da spojite stupce i napravite matricu. Umetnite sve LED nizove u šablon koji ste napravili. Neka duga žica ostane na istom mjestu sa svake strane žice. Izrežite i kosite katodni vod svake LED u prvom stupu umn, baš kao što si ti napravio za izgradnju niza. Uzmite još jedan žičani lanac i ponovite postupak lemljenja na LED diode, samo što ga ovaj put povezujete pod 90 stupnjeva s prvim setom žica koje ste napravili. Dugu žicu držite na istoj strani matrice. Kad ispunite svaki stupac, uklonite ga iz šablona s jezgrom od pjene i preklopite ga tako da omogućite pristup sljedećem stupcu. Kad završite, imat ćete 64 LED diode spojene u 8 redaka i 8 stupaca. Nažalost, morate ponoviti postupak za drugu matricu. Ako vam je potreban odmor, prijeđite na korake 3, 4 i 5 da biste radili na kodu, a zatim se vratite na ovo.

Korak 3: Upravljanje LED diodama

Upravljanje LED diodama
Upravljanje LED diodama
Upravljanje LED diodama
Upravljanje LED diodama
Upravljanje LED diodama
Upravljanje LED diodama
Upravljanje LED diodama
Upravljanje LED diodama

LED matrice koje ste napravili kontrolirat će dva Mini 8x8 LED Matrix ruksaka iz Adafruit -a. Svaki kontroler omogućuje vam pokretanje 64 LED diode sa samo dvije žice s Arduina, a možete povezati i više kontrolera zajedno na te iste dvije žice. Slijedite upute koje dolaze s LED Matrix ruksakom za lemljenje na 4-pinskom zaglavlju napajanja/podataka/sata. Zatim, umjesto lemljenja na LED matrici koja dolazi s njim, lemite dva reda ženskih zaglavlja u ruksak. Uključite uključenu mini LED matricu u zaglavlja. Priključite matricu u matičnu ploču i spojite je na sljedeći način:

  • Spojite CLK pin na ruksaku na analogni pin 5 na Arduinu.
  • Spojite DAT pin na analogni pin 4 na Arduinu.
  • Spojite GND na uzemljenje na Arduinu.
  • Priključite VCC+ na napajanje od 5 V.

Preuzmite biblioteku Adafruit LED ruksaka i knjižnice Adafruit GFX i instalirajte ih na svoje računalo kopiranjem svake u mapu "biblioteke" u mapi za skice Arduino na vašem računalu. Prenesite datoteku "matrix8x8" na svoj Arduino i provjerite radi li LED ruksak. Igle LED matrice možda neće dobro uspostaviti kontakt u ženskim zaglavljima, pa ćete ih možda morati pomaknuti ili djelomično ukloniti kako biste uspostavili kontakt i omogućili osvjetljenje svih redaka i stupaca. Ponovite postupak s drugim LED ruksakom, no ovaj put ćete mu morati postaviti novu adresu lemljenjem kratkospojnika preko jastučića A0 na ruksaku. Ponovno pokrenite kod "matrix8x8", ali promijenite redak "matrix.begin (0x70)" u "matrix.begin (0x71)" tako da se kôd obraća novom LED ruksaku.

Korak 4: Spajanje joysticka

Spajanje joysticka
Spajanje joysticka
Spajanje joysticka
Spajanje joysticka

Vaš joystick bi trebao imati četiri prekidača sa po dva terminala. Kad pomaknete joystick udesno, on aktivira prekidač s lijeve strane, kada ga pomaknete prema dolje, aktivira prekidač na vrhu itd. Na jedan priključak svakog prekidača zalemite žicu od 3 ". Drugi kraj sve četiri žice uvijte zajedno i lemite ih na žicu od 12". To je zajedničko tlo za sva četiri prekidača. Lemite 12 "žicu na preostali priključak svake sklopke, a zatim ih spojite na sljedeći način:

  • Spojite donji prekidač (aktiviran kada pritisnete prema gore) na analogni pin 0 na Arduinu.
  • Spojite lijevi prekidač (aktiviran kada pritisnete desno) na analogni pin 1 na Arduinu.
  • Spojite gornji prekidač (aktiviran kada pritisnete prema dolje) na analogni pin 2 na Arduinu.
  • Spojite desni prekidač (aktiviran kada pritisnete lijevo) na analogni pin 3 na Arduinu.
  • Spojite uobičajenu žicu za uzemljenje na pin za uzemljenje na Arduinu.

Korak 5: Programiranje igre

Programiranje igre
Programiranje igre

Preuzmite priloženi Pumpktris.ino.zip, raspakirajte ga i otvorite datoteku u razvojnom okruženju Arduino. Sastavite i prenesite na svoj Arduino. Sada biste trebali moći igrati na mini LED matrici koju ste postavili u prethodnom koraku. Pokušao sam komentirati kôd što je više moguće, ali evo općeg pregleda glavnih procesa: Opisivanje oblika Postoji sedam tetromina, svaki s 4 piksela i svaki s četiri moguće rotacije. Sve to spremamo u višedimenzionalni niz: prva dimenzija sastoji se od sedam oblika, druga dimenzija sadrži četiri rotacije za svaki oblik, treća sadrži četiri opisa piksela koji se svaki sastoji od X i Y koordinate. Na primjer, ovo opisuje oblik "T":/ * T */ {/ * kut 0 */ {{0, 1}, {1, 1}, {2, 1}, {1, 2}},/ * kut 90 */ {{1, 0}, {1, 1}, {2, 1}, {1, 2}},/ * kut 180 */ {{1, 0}, {0, 1}, {1, 1}, {2, 1}}, / * kut 270 * / {{1, 0}, {0, 1}, {1, 1}, {1, 2}}}

Praćenje aktivnog komada Kako bi pratio komad koji se trenutno igra, program održava varijablu activePiece. Ovo je indeks aktivnog oblika na najvišoj razini niza. Također čuva varijablu rotacije koja sadrži indeks trenutne rotacije. Varijabla xOffset prati koliko je lijevo ili desno (0-7) svaki komad, a yOffset prati koliko je dolje (0-15) ploča pala. Za iscrtavanje aktivnog dijela program dodaje vrijednosti pomaka X i Y koordinatama X i Y svakog piksela izvučenog iz trenutne rotacije odabranog komada. Praćenje fiksnih dijelova Program koristi niz od 16 bajta za praćenje fiksnih komada, pri čemu svaki bajt predstavlja redak. Na primjer, niz u nastavku predstavlja oblik L koji sjedi u središtu dva donja reda (što je označeno s 1 u posljednja dva bajta): byte sampleGrid [16] = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00100000, B00111000}; Otkrivanje sudara Kada se pokuša premjestiti aktivni komad, program prvo provjerava novi položaj u odnosu na niz fiksnih komada. Ako nema sudara, pomak je dopušten i matrica se ponovno iscrtava. Ako se prilikom pokušaja pomicanja ulijevo, udesno ili zakretanja otkrije sudar, radnja je zabranjena. Ako se prilikom pokušaja ispuštanja komada otkrije sudar, komad se fiksira u svom položaju i dodaje u niz fiksnih piksela. Automatsko ispuštanje komada Tempo igre kontroliraju varijable gravityTrigger i stepCounter. Svaka petlja programa povećava stepCounter i svaki put kad stepCounter dosegne broj pohranjen u gravityTriggeru, ispušta aktivni komad za jednu razinu. Kako igra napreduje, gravityTrigger se smanjuje tako da aktivni komad pada sve češće sve dok konačno ne padne u svakoj petlji programa. Svaki put kad je aktivni komad pričvršćen na mrežu, program provjerava ima li punih bajtova/redaka (B11111111). Ako ih pronađe, trepće ih i uključuje tri puta, zatim ih uklanja i ispušta gornje retke kako bi popunio prazninu. Rješavanje problema Ako komadići ne padaju odozgo prema dolje, nego idu s jedne na drugu stranu, promijenite vrijednost prenesena u retke "matrixTop.setRotation (1);" i/ili "matrixBottom.setRotation (1);" u petlji "setup ()". Ako komadići počinju u pogrešnoj matrici, promijenite fizičko mjesto svake matrice ili obrnite adrese deklarirane u "matrixTop.begin (0x70);" i "matrixBottom.begin (0x71);" redaka petlje "setup ()". Ako neki retci ili stupci ne svijetle, pomaknite mini LED matricu u ženskim zaglavljima. Možda ne ostvaruju dobar kontakt.

Korak 6: Povezivanje LED matrice

Povezivanje LED matrice
Povezivanje LED matrice
Povezivanje LED matrice
Povezivanje LED matrice
Povezivanje LED matrice
Povezivanje LED matrice

Kad se potvrdi da svi kodovi i kontrole rade s mini LED matricama, vrijeme je da priključite velike LED matrice koje ste sami lemili.

Mogli biste svaku žicu pojedinačno priključiti u zaglavlja matričnog ruksaka, ali vjerojatno ćete raditi puno uključivanja i isključivanja, pa bi to moglo biti prava gnjavaža. Umjesto toga, svaku žicu želite lemiti na mušku traku zaglavlja i priključiti je u matrični ruksak. Montirao sam trake zaglavlja na komad ploče za izradu prototipa kako bih mogao spojiti i odspojiti svih 16 pinova zajedno. Redovi 1-4 povezuju se s pinovima 1-4 na matričnom ruksaku (numeriranje pinova počinje u gornjem lijevom kutu dok gledate dolje na ruksak s 4-pinskim napajanjem/masom/podacima/satom na vrhu). Stupci 1-4 spajaju se na pinove 5-8. Numeriranje iglica obavija se tako da je pin 9 u donjem desnom kutu. Redovi 5-8 spajaju se na pinove 12-9, a stupci 5-8 na pinove 16-13. Za više jasnoće pogledajte dijagram. Uključite svaku matricu u ruksak i pokrenite isti program "matrix8x8" koji ste učinili za mini LED matrice u koraku 4. Ako svaka radi, tada možete učitati program za igru. Ako ne radi, provjerite jesu li redovi i stupci velike LED matrice umetnuti u ispravne igle ruksaka. Postavljanje LED matrice u šablon s jezgrom od pjene koju ste napravili za montažu može olakšati testiranje cijelog sustava.

Korak 7: Rezbarenje bundeve

Rezbarenje bundeve
Rezbarenje bundeve
Rezbarenje bundeve
Rezbarenje bundeve
Rezbarenje bundeve
Rezbarenje bundeve

Nemojte rezbarati bundevu dok vam sva elektronika ne proradi. Rezbarena bundeva ima ograničen rok trajanja, a ako je prvo izrežete, a zatim 2 dana provedete na elektronici, to su dva dana zabave u igri koja ste izgubili.

Pronađite ravnu stranu na bundevi kako se vaša LED ploča ne bi previše omotala, a zatim izrežite otvor na suprotnoj strani. Budite velikodušni; trebat će vam mjesta da biste dobili ruke za rad. Nećete rezati vrh kao na tradicionalnoj bundevi jer to treba ostaviti netaknuto za joystick. Pumpkin goo i elektronika nisu najbolji prijatelji, pa dobro očistite unutrašnjost. Za najljepši Pumpktris želite da vaša LED mreža bude ravna i dobro usklađena s bundevom. Priložen je PDF s razmakom 8x16, razmaknutim pola centimetra. Ispišite ovo (ili ga napravite vlastitim razmakom), izrežite ga po rubovima i zalijepite ljepljivom trakom na prednji dio bundeve. Budite sigurni da je ravno gore -dolje. Čavlom, čačkalicom ili drugim sličnim alatom probodite probnu rupu u središte svake LED oznake označene na papiru. Ne preporučuje se bušenje izravno kroz papir jer se vjerojatno pomiče ili pukne. Nakon što su sve probne rupe probušene, uklonite predložak papira i upotrijebite nastavak od 13/64 "u svojoj bušilici za bušenje svake rupe. Nemojte poravnati bušilicu okomito na lice bundeve! Ako to učinite, zakrivljenost bundeve može uzrokovati da se rupe s vanjske strane udaljene pola centimetra spoje iznutra i bit će teško umetnuti LED diode. Umjesto toga pokušajte držati sve rupe paralelne. Kad su sve rupe izbušene, nožem X-Acto izrežite kvadratni "piksel" oko svake rupe. Nagnite nož prema sredini svake rupe i ostavite otprilike 1/8 "između piksela. Predlažem da kupite bundevu za vježbanje i upotrijebite je za usavršavanje svoje tehnike bušenja i rezanja piksela. Svladajte ga tamo prije nego što iskoristite priliku da uništite savršenu bundevu koju ste pronašli za gotov proizvod.

Korak 8: Montiranje stabljike na joystick

Postavljanje stabljike na joystick
Postavljanje stabljike na joystick
Postavljanje stabljike na joystick
Postavljanje stabljike na joystick
Postavljanje stabljike na joystick
Postavljanje stabljike na joystick
Postavljanje stabljike na joystick
Postavljanje stabljike na joystick

Sada ćete prilagoditi stabljiku da se koristi kao joystick za kontrolu igre.

Odrežite stabljiku što je moguće bliže bazi. Ako rez nije gladak i čist, upotrijebite brusni blok da biste ga poravnali. Izbušite rupu promjera 1-1/8 "ravno kroz podnožje stabljike i u bundevu. Odvijte kuglicu upravljačke palice i poravnajte osovinu sa središtem rupe s unutarnje strane bundeve. Budite sigurni da je prednja strana joystick je četvrtast s prednjom stranom bundeve-kad svirate, želite gurati lijevo i desno da biste pomicali komade, a ne pod kutom. Kad je centriran i četvrtast, čavlom ili čačkalicom probušite rupe u unutrašnjosti bundeve iznad rupa za pričvršćivanje na podnožju joystick -a. Uklonite joystick. Svojim rezačima žice odrežite ekspandirajuće vrhove sidara za suhozid tako da budu kraći od debljine kože bundeve. Odvijte ova skraćena snubnose suhozida. u pilot rupe koje ste napravili. Detalji sljedećeg dijela ovisit će o upravljačkoj palici koju ste kupili. Ovaj koji sam koristio od SparkFuna imao je nastavak od 6 mm za ručku s kuglicom koji će biti zamijenjen ručkom. Ako je vaša joystick drugačiji, upotrijebite matice i vijke bilo koje veličine. Pronađite središte stabljike i izbušite rupu od 13/64 "(istu veličinu koju ste slučajno koristili za LED rupe) otprilike jedan centimetar ravno u stabljiku. Ovo bi bio dobar korak za testiranje vaše bundeve za vježbanje, kako biste bili sigurni da su vijci čvrsto pričvršćeni u rupu. Nožem za pilu odrežite glavu vijka 6 mm x 50 mm. Stavite epoksidno ljepilo ili ljepilo za drvo na niti blizu odrezanog kraja vijka i uvijte ga u držač. Želite otprilike jedan centimetar toga u stabljici i centimetar vani. Pričvrstite spojnu maticu od 6 mm na vratilo upravljačke palice, ali još nemojte montirati upravljačku palicu u bundevu.

Korak 9: Postavljanje LED -a i joystick -a

Postavljanje LED dioda i joystick
Postavljanje LED dioda i joystick

S unutarnje strane bundeve umetnite LED diode red po red u njihove rupe dok im baze ne budu u ravnini s unutarnjom površinom bundeve. Kad su svi na svom mjestu, pomoću bambusovog ražnja gurnite ih dublje prema naprijed. Ostavio sam njihov prednji rub oko 1/4 "do 3/8" ispod vanjske površine. Ako su predaleko ispod površine, svjetlost će se preliti u meso bundeve i svaki piksel će biti manje različit.

Dodajte sloj plastične folije na vrh upravljačke palice, pri čemu će sama osovina probiti. Tako ćete spriječiti da barem malo vlage prodre u nju. Pričvrstite upravljačku palicu s vijcima 1/2 u sidra za suhozid. Vijci koji su isporučeni sa sidrima bit će predugi i probiti će se kroz bundevu.

Korak 10: Igranje igre

Igranje igre
Igranje igre

Stavite zdjelu ili plastični spremnik za pohranu hrane na dno bundeve kako biste spriječili da bilo koja viseća elektronika dodiruje dno. Uključite joystick u svoj Arduino, LED ruksake u Arduino, a LED matrice u naprtnjače. Uključite izvor napajanja u svoj Arduino. Sada pustite sebi Pumpktris! Ideje za daljnje istraživanje Umjesto da postavite joystick na vrh bundeve sa LED diodama, mogli biste koristiti daljinsku bundevu, bežično ili s kabelom ukrašenim da izgleda poput vinove loze. Umjesto igre, mogli biste prikazati pomične poruke na svom jack-o-lanternu. Možda biste htjeli montirati matrice bočno (16 širokih do 8 visokih) ili čak upotrijebiti samo jednu matricu. Neizbježno raspadanje Vaša će bundeva na kraju početi truliti i nicati plijesan i gljivice. To bi moglo biti opasno po vaše zdravlje i moglo bi dovesti do problema u vašoj elektronici. Najbolje je izvaditi svu svoju elektroniku kada vidite bilo kakav rast na bundevi ili u njoj, kako biste je kasnije mogli ponovno koristiti bez potrebe za čišćenjem Haz-Mat-a.

Natjecanje za ukrase za Noć vještica
Natjecanje za ukrase za Noć vještica
Natjecanje za ukrase za Noć vještica
Natjecanje za ukrase za Noć vještica

Druga nagrada na natječaju za ukrase za Noć vještica

Preporučeni: