Kazalo:

Pumpktris - buča Tetris: 10 korakov (s slikami)
Pumpktris - buča Tetris: 10 korakov (s slikami)

Video: Pumpktris - buča Tetris: 10 korakov (s slikami)

Video: Pumpktris - buča Tetris: 10 korakov (s slikami)
Video: Pumpktris (Tetris) on Arduino Uno 2024, Julij
Anonim
Pumpktris - buča Tetris
Pumpktris - buča Tetris

Kdo želi nasmejane obraze in sveče, ko si lahko na noč čarovnic privoščite interaktivno bučo? Igrajte svojo najljubšo igro zlaganja blokov na mreži 8x16, ki je vklesana v obraz buče, osvetljena z LED diodami in uporablja steblo kot krmilnik. To je zmerno napreden projekt in zahteva izkušnje s spajkanjem in programiranjem v okolju Arduino. Delali boste z organsko snovjo in vsemi njenimi lastnostmi, zato bo morda treba prilagoditi meritve, da bodo ustrezale buči, ki jo uporabljate.

1. korak: Potrebni materiali

Potrebni materiali
Potrebni materiali
Potrebni materiali
Potrebni materiali

Za izdelavo lastnega Pumpktrisa boste potrebovali naslednje: Komponente

  • 128 5 mm oranžnih LED diod (uporabil sem jih pri Mouserju) Kupite nekaj dodatnega, da pokrijete vse napake ali teste. Dobil sem 140. Amber je najbolj podoben plamenu, ki bi bil znotraj tradicionalne jack-o-lantern, vendar lahko uporabite poljubno barvo.
  • Arduino mikrokrmilnik
  • 1/16 "toplotno skrčljive cevi (11 čevljev ali 256 1/2" dolgih kosov)
  • Arkadna krmilna palica z odstranljivim ročajem (ta iz SparkFuna mi je dobro deloval)
  • 4 #6 najlonska sidra iz suhozidov iz najlona To niso vrste s preklopniki, ampak takšne, ki izgledajo kot vijaki z globokimi navoji
  • 4 pol palca dolgi vijaki enake velikosti in tipa, ki so priloženi sidrom za suhozid. Tisti, ki prihajajo s sidri, bodo predolgi.
  • Vijak 6 mm x 50 mm (ali kakršne koli velikosti, ki ustreza nosilcu za ročaj krmilne palice)
  • 6 -milimetrska sklopna matica (ali katera koli druga velikost, ki je potrebna za ujemanje z zgornjim vijakom) Spojna matica je videti kot običajna matica, vendar je dolga približno 1 cm in se uporablja za spajanje dveh vijakov ali kosov navojne palice.

In nenazadnje boste potrebovali 1 bučo. Potrebujete samo eno, vendar priporočam dve, da boste imeli eno, s katero boste lahko vadili vrtanje in rezanje. Vaša LED matrika bo pokrivala območje približno 4 "široko in 8" visoko, zato želite bučo s čim bolj gladko in ravno površino, da se vaša matrika ne ovije preveč. Lahko bi uporabili penasto bučo, a kje je v tem čarobnost? Ne morem govoriti o tehnikah rezbarjenja, potrebnih za penasto bučo. Orodja in potrošni material

  • Spajkalnik
  • Spajkanje
  • Rezalniki žice
  • Odstranjevalci žice
  • Električni vrtalnik
  • Ročna žaga
  • Nož X-Acto
  • Sveder 13/64"
  • 1-1/8-palčni sveder (uporabil sem Forstnerjev bit, vendar bi lahko deloval tudi pik)
  • 1/4 "penasta jedrna plošča

2. korak: Izdelava LED matrike

Izdelava LED matrike
Izdelava LED matrike
Izdelava LED matrike
Izdelava LED matrike
Izdelava LED matrike
Izdelava LED matrike

Vsaka matrika je izdelana iz 64 LED in 128 kosov žice. Najlažje je vnaprej odrezati in odstraniti vse žice za vsako matriko. 112 razrežite na 2,5 -palčne kose in jim odstranite 1/4 palca z vsakega konca. Preostalih 16 razrežite na 12 -palčne kose in odstranite oba konca. Bolj ko boste dosegli enakomerno dolžino žice, lažje jo boste zgradili in namestili.

Začeli boste z izdelavo šestnajstih osem-segmentnih verižic marjetice-vsaka s 7 kratkimi in 1 dolgo žico. Zavijte vsak konec skupaj z naslednjim kosom in spajkajte. Za priključitev žic na LED -lučke potrebujete vtičnico za držanje LED -jev. Narišite mrežo 8x8 s polovičnim razmikom na kosu 1/4 "debele plošče iz penastega jedra, nato pa s šilom na vsakem križišču prebodite luknjo nekoliko manjšega premera od LED. Ko boste imeli 64 lukenj, ko končali ste. V zgornjo vrsto lukenj vstavite 8 LED diod. Penasto jedro se bo raztegnilo tako, da se prilega LED in jih bo trdno držalo. LED diode poravnajte tako, da bo daljša noga-anodni kabel-obrnjena proti vam na vsaki. Dvakrat preverite, ker če se zmotite, matrika ne bo delovala. Pripnite vsak anodni kabel na približno 1/4 "dolžine in ga kosite s spajkanjem, da olajšate povezavo žic. 8 kosov toplotno skrčljive cevi razrežite na 1/2 "segmente. Kos cevi potegnite čez prvo žično povezavo, jo potisnite nazaj, da nanjo ne vpliva toplota spajkanja, nato pa spajkajte žično povezavo na LED anodo. Ko se ohladi, potisnite cev navzdol po priključku. Nadaljujte do naslednje LED diode in še sedemkrat ponovite postopek drsenja po kosu cevi, spajkanje povezave in nato spuščanje cevi čez spoj. Ko imate sklop osmih LED, ki so med seboj povezani, jih odstranite iz sestavljanke in ponovite še sedem vrstic, pri čemer pazite, da vse povezave povežete z anodno žico vsake LED. Uporabite lahko katero koli vrsto sestavljanke, ki je najlažje dosegljiva, ker delate le z eno naenkrat. Ko je vseh osem vrstic spajkanih, je čas, da se povežete s stolpci in naredite matrico. Vstavite vse LED svetilke v vložek, ki ste ga naredili. Naj bo dolga žica enaka Odrežite in kosite katodni vod vsake LED v prvem stolpcu umn, tako kot si ti naredil niz. Vzemite drugo žično verigo in ponovite postopek spajkanja na LED diode, le da jo tokrat povežete pri 90 stopinjah s prvim naborom žic, ki ste jih naredili. Dolgo žico hranite na isti strani matrice. Ko dokončate vsak stolpec, ga odstranite iz vložka iz penastega jedra in ga prepognite, da zagotovite dostop do naslednjega stolpca. Ko končate, boste imeli 64 LED v 8 vrsticah in 8 stolpcih. Na žalost morate postopek znova ponoviti za drugo matriko. Če potrebujete odmor, pojdite na korake 3, 4 in 5, da delate na kodi, nato se vrnite na to.

3. korak: Upravljanje LED

Upravljanje LED
Upravljanje LED
Upravljanje LED
Upravljanje LED
Upravljanje LED
Upravljanje LED
Upravljanje LED
Upravljanje LED

LED matrice, ki ste jih izdelali, bosta nadzorovana z dvema mini nahrbtnikoma LED 8x8 LED iz Adafruit. Vsak krmilnik vam omogoča, da poganjate 64 LED z dvema žicama iz Arduina, na iste iste žice pa lahko povežete več krmilnikov skupaj. Sledite navodilom, ki so priložena LED matričnemu nahrbtniku za spajkanje na 4-pinski glavi napajanja/podatkov/ure. Nato namesto spajkanja na LED matriko, ki je priložena, spajkajte dve vrsti ženskih glav v nahrbtnik. Priloženo mini LED matrico priključite v glave. Priključite matriko v ploščo in jo povežite na naslednji način:

  • Priključite pin CLK na nahrbtniku na analogni pin 5 na Arduinu.
  • Priključite pin DAT na analogni pin 4 na Arduinu.
  • Priključite GND na ozemljitveni zatič na Arduinu.
  • VCC+ priključite na napajanje 5 V.

Prenesite knjižnico Adafruit LED Backpack in knjižnice Adafruit GFX ter jih namestite v računalnik tako, da jih kopirate v mapo "libraries" v mapi za skice Arduino v vašem računalniku. Naložite datoteko "matrix8x8" v svoj Arduino in preverite, ali LED nahrbtnik deluje. Zatiči matrike LED morda ne bodo imeli dobrega stika v ženskih naslovih, zato jih boste morali premakniti ali delno odstraniti, da vzpostavite stik in omogočite osvetlitev vseh vrstic in stolpcev. Postopek ponovite z drugim LED nahrbtnikom, tokrat pa mu boste morali nastaviti nov naslov tako, da spajkate mostiček čez blazinice A0 na nahrbtniku. Znova zaženite kodo "matrix8x8", vendar vrstico "matrix.begin (0x70)" spremenite v "matrix.begin (0x71)", tako da koda naslavlja nov LED nahrbtnik.

4. korak: Priključitev igralne palice

Priključitev igralne palice
Priključitev igralne palice
Priključitev igralne palice
Priključitev igralne palice

Krmilna palica mora imeti štiri stikala z dvema priključkoma. Ko premaknete krmilno palčko v desno, sproži stikalo na levi strani, ko jo premaknete navzdol, sproži stikalo na vrhu itd. Na en priključek vsakega stikala spajkajte 3 "žico. Drugi konec vseh štirih teh žic zvijte skupaj in jih spajkajte na 12" žico. To je skupna osnova za vsa štiri stikala. Spajkajte 12 -palčno žico na preostali priključek vsakega stikala, nato pa jih povežite na naslednji način:

  • Spodnje stikalo (aktivirano, ko pritisnete navzgor) priključite na analogni pin 0 na Arduinu.
  • Levo stikalo (aktivirano, ko pritisnete desno) priključite na analogni zatič 1 na Arduinu.
  • Priključite zgornje stikalo (aktivirano, ko pritisnete navzdol) na analogni pin 2 na Arduinu.
  • Desno stikalo (aktivirano, ko pritisnete levo) priključite na analogni pin 3 na Arduinu.
  • Skupno ozemljitveno žico priključite na ozemljitveni zatič na Arduinu.

5. korak: Programiranje igre

Programiranje igre
Programiranje igre

Prenesite priloženi Pumpktris.ino.zip, ga razpakirajte in odprite datoteko v razvojnem okolju Arduino. Sestavite in naložite v svoj Arduino. Zdaj bi morali igrati na mini LED matriki, ki ste jo nastavili v prejšnjem koraku. Kodo sem poskušal čim bolj komentirati, a tukaj je splošen pregled glavnih procesov: Opisovanje oblik Obstaja sedem tetrominov, vsak s 4 piksli in vsak s štirimi možnimi rotacijami. Vse to shranimo v večdimenzionalno matriko: prva dimenzija je sestavljena iz sedmih oblik, druga dimenzija vsebuje štiri rotacije za vsako obliko, tretja vsebuje štiri opise slikovnih pik, od katerih je vsaka sestavljena iz koordinate X in Y. To na primer opisuje obliko "T":/ * T */ {/ * kot 0 */ {{0, 1}, {1, 1}, {2, 1}, {1, 2}},/ * kot 90 */ {{1, 0}, {1, 1}, {2, 1}, {1, 2}},/ * kot 180 */ {{1, 0}, {0, 1}, {1, 1}, {2, 1}}, / * kot 270 * / {{1, 0}, {0, 1}, {1, 1}, {1, 2}}}

Sledenje aktivnemu kosu Za sledenje delu, ki je trenutno v igri, program vzdržuje spremenljivko activePiece. To je indeks aktivne oblike na najvišji ravni matrike. Hrani tudi spremenljivko vrtenja, ki vsebuje indeks trenutne rotacije. Spremenljivka xOffset sledi, kako levo ali desno (0-7) je vsak kos, yOffset pa, kako daleč navzdol (0-15) je plošča padla. Za risanje aktivnega kosa program doda vrednosti zamikov X in Y koordinatama X in Y vsake slikovne pike, izvlečene iz trenutne rotacije izbranega kosa. kosov, pri čemer vsak bajt predstavlja vrstico. Spodnja matrika bi na primer predstavljala obliko L, ki sedi v središču spodnjih dveh vrstic (kot označuje 1 v zadnjih dveh bajtih): byte sampleGrid [16] = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00100000, B00111000}; Zaznavanje trka Ko poskusite premakniti aktivni kos, program najprej preveri nov položaj glede na niz fiksnih kosov. Če ni trkov, je premik dovoljen in matrika se ponovno nariše. Če je pri poskusu premikanja levo, desno ali vrtenje zaznano trčenje, je dejanje prepovedano. Če med poskusom spuščanja kosa odkrijemo trk, se del fiksira na svojem mestu in se doda nizu fiksnih slikovnih pik. Samodejno spuščanje kosov Tempo igre nadzirajo spremenljivke gravityTrigger in stepCounter. Vsaka zanka programa poveča stepCounter in vsakič, ko stepCounter doseže število, shranjeno v gravityTrigger, aktivni kos spusti za eno raven. Ko igra napreduje, se gravityTrigger zmanjšuje, tako da aktivni del pada vse pogosteje, dokler na koncu ne pade v vsako zanko programa. Vsakič, ko je aktivni kos pritrjen na mrežo, program preveri polne bajte/vrstice (B11111111). Če jih najde, jih trikrat utripa, nato jih odstrani in spusti zgornje vrstice, da zapolni vrzel. vrednost, podana v vrsticah "matrixTop.setRotation (1);" in/ali "matrixBottom.setRotation (1);" v zanki "setup ()". Če se kosi začnejo v napačni matrici, preklopite fizično lokacijo vsake matrike ali obrnite naslove, navedene v "matrixTop.begin (0x70);" in "matrixBottom.begin (0x71);" vrstice zanke "setup ()". Če nekatere vrstice ali stolpci ne svetijo, pomikajte matrico mini LED v ženskih naslovih. Morda ne vzpostavljajo dobrih stikov.

6. korak: Priključitev LED matrike

Priključitev LED matrike
Priključitev LED matrike
Priključitev LED matrike
Priključitev LED matrike
Priključitev LED matrike
Priključitev LED matrike

Ko se preveri, da vse kode in kontrole delujejo z mini LED matricami, je čas, da priključite velike LED matrice, ki ste jih spajkali sami.

Vsako žico bi lahko priključili v glave na matričnem nahrbtniku posebej, vendar boste verjetno veliko delali pri priklapljanju in odklapljanju, tako da bo to lahko prava težava. Namesto tega želite vsako žico spajkati na moški trak glave in jo priključiti v matrični nahrbtnik. Trakove glave sem namestil na kos plošče za izdelavo prototipov, tako da sem lahko vseh 16 zatičev priključil in odklopil skupaj. Vrstice 1-4 se povežejo z zatiči 1-4 na matričnem nahrbtniku (oštevilčenje pinov se začne zgoraj levo, ko gledate navzdol na nahrbtnik s 4-polnimi zatiči za napajanje/ozemljitev/podatke/uro na vrhu). Stolpci 1-4 se povežejo z zatiči 5-8. Oštevilčenje zatičev se ovije tako, da je nožica 9 spodaj desno. Vrstice 5-8 se povežejo z zatiči 12-9, stolpci 5-8 pa za zatiče 16-13. Za večjo jasnost si oglejte diagram. Priključite vsako matriko v nahrbtnik in zaženite isti program "matrix8x8", ki ste ga naredili za mini LED matrice v 4. koraku. Če vsaka deluje, lahko naložite program za igre. Če ne deluje, preverite, ali so vrstice in stolpci velike LED matrice priključeni na pravilne zatiče nahrbtnika. Z namestitvijo LED matrike v vložek iz penastega jedra, ki ste ga izdelali za sestavljanje, lahko olajšate preskus celotnega sistema.

7. korak: Rezanje buče

Rezbarenje buče
Rezbarenje buče
Rezbarenje buče
Rezbarenje buče
Rezbarenje buče
Rezbarenje buče

Ne izrezujte bučk, dokler vsa vaša elektronika ne deluje. Izklesana buča ima omejen rok trajanja, in če jo najprej izrežete in nato 2 dni porabite za elektroniko, ste izgubili dva dni zabave pri igranju iger.

Poiščite najravnejšo stran buče, da se LED plošča ne ovije preveč, nato pa izrežite odprtino na strani nasproti nje. Bodite radodarni; za delo boste potrebovali prostor. Ne boste odrezali vrha kot na tradicionalni buči, ker to morate za krmilno palčko pustiti nedotaknjeno. Buče in elektronika nista najboljša prijatelja, zato notranjost dobro očistite. Za najlepši Pumpktris želite, da je vaša LED mreža ravna in dobro poravnana z bučo. PDF je priložen z razmikom 8x16, narazen pol centimetra. Natisnite to (ali pa jo naredite sami s svojim razmikom), razrežite robove in jo prilepite na sprednjo stran buče. Prepričajte se, da je naravnost navzgor in navzdol. Z žebljem, zobotrebcem ali drugim podobnim orodjem v sredino vsake LED, označene na papirju, zabodite pilotsko luknjo. Vrtanje neposredno skozi papir ni priporočljivo, ker se lahko premika ali raztrga. Ko so vse pilotne luknje preluknjane, odstranite papirnato šablono in uporabite 13/64 "bit v svojem vrtalniku, da izvrtate vsako luknjo. Svedra ne poravnajte pravokotno na sprednjo stran buče! Če to storite, ukrivljenost buče lahko povzroči, da se na notranji strani na zunanji strani razmikajo pol centimetra narazen, zato bo LED diode težko vstaviti. Namesto tega poskušajte vse luknje držati vzporedno. Ko so vse luknje izvrtane, z nožem X-Acto izrežite kvadratni "piksel" okoli vsake luknje. Nagnite nož proti sredini vsake luknje in pustite približno 1/8 "med piksli. Predlagam, da kupite bučo za vadbo in jo uporabite za izpopolnjevanje tehnike vrtanja in rezanja pikslov. Obvladajte ga tam, preden izkoristite priložnost, da uničite popolno bučo, ki ste jo našli za končni izdelek.

8. korak: Namestitev stebla na igralno palico

Pritrditev stebla na igralno palico
Pritrditev stebla na igralno palico
Pritrditev stebla na igralno palico
Pritrditev stebla na igralno palico
Pritrditev stebla na igralno palico
Pritrditev stebla na igralno palico
Pritrditev stebla na igralno palico
Pritrditev stebla na igralno palico

Zdaj boste steblo prilagodili za uporabo kot igralno palico za nadzor igre.

Odrežite steblo čim bližje dnu. Če rez ni gladek in čist, ga poravnajte z brusnim blokom. Izvrtajte luknjo 1-1/8 "naravnost skozi dno stebla in v bučo. Odvijte kroglico krmilne palice in gred poravnajte s središčem luknje z notranje strani buče. Prepričajte se, da je sprednji del krmilna palica je kvadratna s sprednjo stranjo buče-ko igrate, želite potiskati levo in desno, da premikate koščke, ne pod kotom. Ko je centrirana in kvadratna, z žebljem ali zobotrebcem zabodite luknje v notranjost bučo nad pritrdilnimi luknjami na podstavku krmilne palice. Odstranite krmilno palico. S svojimi rezalniki za žice odrežite razširljive konice sidra za suhozid, tako da so krajše od debeline bučne kože. v pilotne luknje, ki ste jih naredili. Podrobnosti o naslednjem delu bodo odvisne od igralne palice, ki ste jo kupili. Tisti, ki sem ga uporabil pri SparkFunu, je imel 6 -milimetrski nastavek za ročaj kroglice, ki ga bo zamenjalo steblo. Če je krmilna palica drugačna, uporabite matice in vijake katere koli velikosti. Poiščite sredino stebla in izvrtajte luknjo 13/64 "(enako velikost, ki ste jo naključno uporabili za luknje za LED) približno centimeter naravnost v steblo. To bi bil dober korak, da preizkusite svojo vadbeno bučo, da se prepričate, da so vijaki tesno priviti v luknjo. Z nožno žago odrežite glavo vijaka 6 mm x 50 mm. Epoksi ali lepilo za les nanesite na niti blizu odrezanega konca vijaka in ga privijte v steblo. Želite kakšen centimeter tega v steblu in centimeter zunaj. Privijte 6 -milimetrsko spojno matico na gred krmilne palice, vendar krmilne palice še ne namestite v bučo.

9. korak: Namestitev LED in igralne palice

Namestitev LED in igralne palice
Namestitev LED in igralne palice

Z notranje strani buče vstavite LED zaporedoma vrstice v njihove luknje, dokler se njihova podlaga ne poravna z notranjo površino buče. Ko so vsi na svojem mestu, jih z bambusovim nabodalom potisnite globlje spredaj. Sprednji rob sem pustil sedeti približno 1/4 "do 3/8" pod zunanjo površino. Če so predaleč pod površjem, se bo svetloba razlila v bučno meso in vsak piksel bo manj ločen.

Na vrh krmilne palice dodajte plast plastične folije, pri tem pa naj gredi sama gred. To bo preprečilo, da bi vanj prodrla vsaj nekaj vlage. Krmilno palico z 1/2 vijaki pritrdite na sidra za suhozid. Vijaki, ki so priloženi sidrom, bodo predolgi in bodo štrleli skozi bučo.

10. korak: Igranje igre

Igranje igre
Igranje igre

Na dno buče postavite posodo ali plastično posodo za shranjevanje hrane, da se vsa viseča elektronika ne dotakne dna. Priključite krmilno palčko v svoj Arduino, LED nahrbtnike v Arduino in LED matrice v nahrbtnike. Priključite vir napajanja v svoj Arduino. Zdaj si zaigrajte Pumpktris! Ideje za nadaljnje raziskovanje Namesto, da bi na vrhu buče z LED diodami namestili igralno palico, bi lahko uporabili oddaljeno bučo, bodisi brezžično ali s kablom, okrašenim kot trta. Namesto igre bi lahko na jack-o-lanterni prikazali drsna sporočila. Morda boste matrice namestili vstran (16 širokih do 8 visoko) ali celo uporabili samo eno matrico. To je lahko nevarno za vaše zdravje in lahko povzroči napake v vaši elektroniki. Najbolje je, da vso svojo elektroniko izvlečete, ko opazite kakršno koli rast na buči ali v njej, da jih boste pozneje lahko ponovno uporabili, ne da bi morali očistiti Haz-Mat.

Natečaj za okraske za noč čarovnic
Natečaj za okraske za noč čarovnic
Natečaj za okraske za noč čarovnic
Natečaj za okraske za noč čarovnic

Druga nagrada na natečaju za okraske za noč čarovnic

Priporočena: