Sadržaj:

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

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

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

Ko želi nasmijana lica i svijeće kada možete imati interaktivnu bundevu za Noć vještica? Igrajte svoju omiljenu igru slaganja blokova na rešetku 8x16 urezanu na licu tikve, osvijetljenu LED diodama i koristeći stabljiku kao kontroler. Ovo je umjereno napredan projekt i zahtijeva iskustvo lemljenja i programiranja u Arduino okruženju. Radit ćete s organskim tvarima i svim njegovim svojstvima, pa će mjerenja možda morati biti prilagođena tako da odgovaraju bundevi koju koristite.

Korak 1: Potrebni materijali

Potrebni materijali
Potrebni materijali
Potrebni materijali
Potrebni materijali

Za izradu vlastitog Pumpktrisa potrebno vam je sljedeće: Komponente

  • 128 žutih LED dioda od 5 mm (koristio sam ih od Mousera) Kupite dodatno za pokrivanje grešaka ili testova. Dobio sam 140. Jantar najviše liči na plamen koji bi bio unutar tradicionalnog džek-o-fenjera, ali možete koristiti bilo koju boju koju želite.
  • Arduino mikrokontroler
  • Termoskupljajuće cijevi (11 stopa ili 256 1/2 "dugih komada)
  • Arkadni joystick sa uklonjivom ručkom (ovaj iz 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čicu džojstika)
  • 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 na kraju, ali ne najmanje važno, trebat će vam 1 bundeva. Potreban vam je samo jedan, ali preporučujem dva kako biste dobili jedan koji možete koristiti za vježbanje bušenja i rezanja. Vaša LED matrica će pokriti područje približno 4 "široko i 8" visoko, 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 magija u tome? Ne mogu govoriti o tehnikama rezbarenja potrebnim na bundevi od pjene. Alati i potrošni materijal

  • Lemilica
  • Solder
  • Rezači žice
  • Strojevi za skidanje žice
  • Električna bušilica
  • Nožna pila
  • X-Acto nož
  • Svrdlo 13/64"
  • Svrdlo od 1-1/8 "(koristio sam Forstner bit, ali bi i pipalo moglo raditi)
  • 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 je napravljena 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 skinite 1/4" sa svakog kraja. Preostalih 16 izrežite na komade od 12 "i ogolite im 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 pomoću šila probušite rupu nešto manjeg promjera od LED-a na svakom raskrižju. 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 vodič-okrenuta prema vama na svakoj. Provjerite još jednom, jer ako pogrešite, matrica neće raditi. Zakačite svaki anodni kabel na otprilike 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 nazad 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. Kada dobijete set od osam LED dioda povezanih jedna s drugom, 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 najlakši za pristupiti, budući da radite samo s jednim po jednom. Nakon što je svih osam redova lemljeno, vrijeme je da spojite kolone i napravite matricu. Umetnite sve LED nizove u šablon koji ste napravili. Neka duga žica ostane ista Odrežite i kalajte katodni vod svake LED u prvom stupu umn, baš kao što si ti napravio za izradu niza. Uzmite još jedan žičani lanac i ponovite postupak lemljenja na LED diode, samo što ga ovaj put povezujete pod uglom od 90 stepeni sa prvim setom žica koji ste uradili. Dugu žicu držite na istoj strani matrice. Dok ispunjavate svaku kolonu, uklonite je iz šablona sa jezgrom od pjene i preklopite je tako da omogućite pristup sljedećoj koloni. Kada završite, imat ćete 64 LED diode spojene u 8 redova i 8 stupaca. Nažalost, morate ponoviti postupak za drugu matricu. Ako vam je potrebna pauza, 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 bit će kontrolirani s dva Mini 8x8 LED Matrix ruksaka iz Adafruit -a. Svaki kontroler omogućuje vam da pogonite 64 LED diode sa samo dvije žice s Arduina, a možete povezati i više kontrolera zajedno na te 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. Uključite matricu u matičnu ploču i povežite 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 biblioteke Adafruit GFX i instalirajte ih na svoj računar kopiranjem svake u fasciklu "biblioteke" u mapi sa skicama Arduino na vašem računaru. 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 pokrenuti ili djelomično ukloniti kako biste uspostavili kontakt i omogućili da svi redovi i stupci zasvijetle. Ponovite postupak s drugim LED ruksakom, ali ovaj put ćete mu morati postaviti novu adresu lemljenjem kratkospojnika preko jastučića A0 na ruksaku. Ponovo pokrenite kôd "matrix8x8", ali promijenite red "matrix.begin (0x70)" u "matrix.begin (0x71)" tako da se kôd obraća novom LED ruksaku.

Korak 4: Povezivanje upravljačke palice

Povezivanje džojstika
Povezivanje džojstika
Povezivanje džojstika
Povezivanje džojstika

Vaš džojstik bi trebao imati četiri prekidača sa po dva terminala. Kada pomaknete džojstik 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 ". Okrenite drugi kraj sve četiri žice zajedno i lemite ih na žicu od 12". Ovo je zajednička osnova za sva četiri prekidača. Lemite žicu od 12 "na preostali priključak svakog prekidača, 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č (aktivira se kada pritisnete prema dolje) na analogni pin 2 na Arduinu.
  • Spojite desni prekidač (aktiviran kada pritisnete lijevo) na analogni pin 3 na Arduinu.
  • Priključite 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 sa 4 piksela, i svaki sa četiri moguće rotacije. Sve ovo 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 Da biste pratili komad koji se trenutno igra, program održava varijablu activePiece. Ovo je indeks aktivnog oblika na najvišoj razini niza. Takođe čuva varijablu rotacije koja sadrži indeks trenutne rotacije. Promenljiva xOffset prati koliko je levo ili desno (0-7) svaki komad, a yOffset prati koliko je dole (0-15) ploča pala. Da bi nacrtao aktivni dio, 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 bajtova za praćenje fiksnih komada, pri čemu svaki bajt predstavlja red. Na primjer, niz ispod bi predstavljao oblik L koji sjedi u sredini donja dva reda (kako je označeno 1s u zadnja 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 novu poziciju u odnosu na niz fiksnih komada. Ako nema sudara, potez je dozvoljen i matrica se ponovo iscrtava. Ako se otkrije sudar pri pokušaju pomicanja ulijevo, udesno ili rotiranja, radnja je zabranjena. Ako se prilikom pokušaja ispuštanja figure otkrije sudar, figura postaje fiksirana i dodaje se u niz fiksnih piksela. Automatsko ispuštanje komada Tempo igre kontroliraju varijable gravityTrigger i stepCounter. Svaka petlja programa povećava stepCounter, i svaki put kada stepCounter dosegne broj pohranjen u gravityTrigger, ispušta aktivni komad za jedan nivo. 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 kada je aktivni komad fiksiran na mrežu, program provjerava ima li punih bajtova/redova (B11111111). Ako ih pronađe, trepće ih i uključuje tri puta, zatim ih uklanja i ispušta gornje redove kako bi popunio prazninu. Rješavanje problema Ako komadići ne padaju odozgo prema dolje, već idu s jedne na drugu stranu, promijenite vrijednost prenesena u redove "matrixTop.setRotation (1);" i/ili "matrixBottom.setRotation (1);" u petlji "setup ()". Ako komadići počinju u pogrešnoj matrici, promijenite fizičku lokaciju svake matrice ili obrnite adrese deklarirane u "matrixTop.begin (0x70);" i "matrixBottom.begin (0x71);" linije petlje "setup ()". Ako neki redovi 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 vaše LED matrice
Povezivanje vaše LED matrice
Povezivanje LED matrice
Povezivanje LED matrice

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

Mogli biste svaku žicu pojedinačno priključiti u zaglavlja na matrix naprtnjači, 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 matriksnom ruksaku (numeriranje pinova počinje u gornjem lijevom kutu dok gledate dolje na ruksak sa 4-pinskim napajanjem/masom/podacima/satom na vrhu). Kolone 1-4 spajaju se na pinove 5-8. Numeracija pinova 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 uradili 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 uključeni u ispravne pinove ruksaka. Ugradnja LED matrice u šablon sa jezgrom od pjene koji ste napravili za montažu može olakšati testiranje cijelog sistema.

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. Izrezana bundeva ima ograničen rok trajanja, a ako je prvo izrežete, a zatim potrošite 2 dana na elektroniku, izgubili ste dva dana zabavne igre.

Pronađite najravniju 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 prostora da biste tamo mogli raditi. Nećete rezati vrh kao na tradicionalnoj bundevi jer to treba ostaviti netaknuto za joystick. Bundeva 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. Odštampajte ovo (ili ga napravite vlastitim razmakom), izrežite ivice i zalijepite ga s prednje strane 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 za papir i upotrijebite 13/64 "bit 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 koje su spolja udaljene pola inča spoje iznutra i da će biti teško ubaciti LED diode. Umjesto toga pokušajte držati sve rupe paralelne. Kada su sve rupe izbušene, upotrijebite svoj X-Acto nož da izrežete 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. Savladajte 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

Montiranje stabljike na joystick
Montiranje stabljike na joystick
Montiranje stabljike na joystick
Montiranje stabljike na joystick
Montiranje stabljike na joystick
Montiranje stabljike na joystick
Montiranje stabljike na joystick
Montiranje 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. Uvjerite se da je prednja strana joystick je četvrtast s prednjom stranom bundeve-kada svirate, želite gurati lijevo i desno da biste pomicali komade, a ne pod kutom. Kad je centrirano i četvrtasto, čavlom ili čačkalicom probušite rupe u unutrašnjosti bundeva 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 sidra od 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 kugle koji će biti zamijenjen drškom. Ako je vaš joystick drugačiji, koristite matice i vijke bilo koje veličine. Pronađite središte stabljike i izbušite rupu od 13/64 "(iste veličine koju ste slučajno koristili za LED rupe) otprilike jedan inč ravno u stabljiku. Ovo bi bio dobar korak za testiranje vaše bundeve za vježbanje, kako biste bili sigurni da je vijak dobro pričvršćen u rupu. Odrežite glavu nožnom testerom od 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 van. Pričvrstite spojnu maticu od 6 mm na vratilo joystick -a, ali još nemojte montirati joystick u bundevu.

Korak 9: Postavljanje LED dioda i džojstika

Postavljanje LED dioda i džojstika
Postavljanje LED dioda i džojstika

Sa unutrašnje strane bundeve umetnite LED diode red po red u njihove rupe sve dok im baze ne budu u ravnini s unutarnjom površinom bundeve. Kad su svi na svom mjestu, upotrijebite bambusov ražnjić da ih gurnete 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. Ovo će spriječiti da barem malo vlage prodre u nju. Pričvrstite joystick sa 1/2 vijcima u sidra za suhozid. Vijci koji su isporučeni sa sidrima bit će predugi i probijati će se kroz bundevu.

Korak 10: Igranje igre

Igranje igre
Igranje igre

Stavite zdjelu ili plastičnu posudu za skladištenje 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, bilo bežično ili s kabelom ukrašenim da izgleda poput vinove loze. Umjesto igre, mogli biste prikazati pomične poruke na svom džek-o-fenjeru. Možda ćete htjeti montirati matrice bočno (16 širokih do 8 visokih), ili čak upotrijebiti samo jednu matricu. Neizbježno raspadanje Vaša bundeva će 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.

Takmičenje za ukrase za Noć vještica
Takmičenje za ukrase za Noć vještica
Takmičenje za ukrase za Noć vještica
Takmičenje za ukrase za Noć vještica

Druga nagrada na takmičenju ukrasa za Noć vještica

Preporučuje se: