INHOUDSOPGAWE:

Pumpktris - die Tetris -pampoen: 10 stappe (met foto's)
Pumpktris - die Tetris -pampoen: 10 stappe (met foto's)

Video: Pumpktris - die Tetris -pampoen: 10 stappe (met foto's)

Video: Pumpktris - die Tetris -pampoen: 10 stappe (met foto's)
Video: Дневник хранящий жуткие тайны. Переход. Джеральд Даррелл. Мистика. Ужасы 2024, Julie
Anonim
Pumpktris - die Tetris -pampoen
Pumpktris - die Tetris -pampoen

Wie wil glimlaggende gesigte en kerse hê as jy hierdie Halloween 'n interaktiewe pampoen kan hê? Speel jou gunsteling blokstapelspel op 'n 8x16 rooster wat in die gesig van die kalebas gesny is, verlig deur LED's en gebruik die stam as 'n kontroleerder. Dit is 'n matig gevorderde projek en vereis ondervinding in soldeer en programmering in die Arduino -omgewing. U werk met organiese materiaal en al die inherente eienskappe daarvan, dus metings moet moontlik aangepas word by die pampoen wat u gebruik.

Stap 1: Vereiste materiaal

Vereiste materiaal
Vereiste materiaal
Vereiste materiaal
Vereiste materiaal

Om u eie Pumpktris te bou, benodig u die volgende: Komponente

  • 128 5 mm amber LED's (ek het dit van Mouser gebruik) Koop ekstra om foute of toetse te dek. Ek het 140. Amber lyk die meeste na die vlam wat in 'n tradisionele jack-o-lantern sou wees, maar jy is vry om enige kleur te gebruik wat jy wil.
  • Arduino mikrobeheerder
  • 1/16 "krimpbuis (11 voet of 256 1/2" lang stukke)
  • Arcade -joystick met 'n verwyderbare handvatsel (hierdie van SparkFun het goed vir my gewerk)
  • 4 #6 nylon gipsankers Dit is nie die soort met die skakelaars nie, maar die soort wat soos skroewe met diep drade lyk
  • 4 half duim lang skroewe van dieselfde grootte en tipe wat by die gipsankers kom. Die wat saam met die ankers kom, sal te lank wees.
  • 6 mm x 50 mm bout (of watter grootte ook al die pas by die joystick -handvatsel)
  • 6 mm koppelmoer (of watter grootte ook al wat nodig is om by die bout hierbo te pas) 'n Koppelmoer lyk soos 'n gewone moer, maar is ongeveer 'n sentimeter lank en word gebruik om twee boute of stukke draadstang vas te maak.

En laastens het u 1 pampoen nodig. U benodig net een, maar ek beveel twee aan, sodat u een kan gebruik om te boor en sny. Jou LED -matriks gaan 'n oppervlakte van ongeveer 4 "breed by 8" lank dek, so jy wil 'n pampoen hê met 'n so groot en gladde grootte as moontlik, sodat jou matriks nie te ver draai nie. Jy kan 'n skuimpampoen gebruik, maar waar is die magie daarin? Ek kan nie praat met die snytegnieke wat nodig is vir 'n skuimpampoen nie. Gereedskap en verbruiksgoedere

  • Soldeerbout
  • Soldeer
  • Draadknipper
  • Draadstroppers
  • Kragboor
  • Ystersaag
  • X-Acto mes
  • 13/64 "boorpunt
  • 1-1/8 "boorpunt (ek het 'n Forstner-boor gebruik, maar 'n graafboor kan ook werk)
  • 1/4 "skuimkernbord

Stap 2: Bou 'n LED -matriks

Bou 'n LED -matriks
Bou 'n LED -matriks
Bou 'n LED -matriks
Bou 'n LED -matriks
Bou 'n LED -matriks
Bou 'n LED -matriks

Elke matriks bestaan uit 64 LED's en 128 stukke draad. Dit is die maklikste om voor die tyd al die drade vir elke matriks af te sny en te stroop. Sny 112 in 2,5 "stukke en verwyder 1/4" van elke kant. Sny die oorblywende 16 in 12 "stukke en strook albei kante. Hoe meer konsekwent jy jou draadlengtes kan kry, hoe makliker sal dit wees om te bou en te installeer.

U begin met die bou van sestien agt-segment daisy-kettings van drade-elk met 7 kort en 1 lang draad. Draai elke punt saam met die volgende stuk en soldeer. Om die drade aan die LED's te koppel, benodig u 'n mal om die LED's vas te hou. Teken 'n 8x8 rooster met 'n halwe duim afstand op 'n stuk 1/4 "dik skuimkernbord, gebruik dan 'n aak om 'n gat effens kleiner in deursnee as die LED by elke kruising te maak. U sal 64 gate hê wanneer jy is klaar. Plaas 8 LED's in die boonste ry gate. Die skuimkern strek om by die LED's te pas en hou dit styf vas. Rig die LED's in lyn sodat die langer been-die anodekabel-op elke kant na jou toe wys. Kontroleer dit weer, want as u 'n fout kry, werk die matriks nie. Knip elke anode tot ongeveer 1/4 "lank en maak dit met soldeersel vas om dit makliker te maak om die drade aan te sluit. Sny 8 stukke krimpbuis in segmente van 1/2 ". Skuif 'n stuk buis oor die eerste draadverbinding, druk dit terug sodat dit nie deur die hitte van die soldeer beïnvloed word nie, soldeer dan die draadverbinding met die LED-anode. Skuif die buis oor die verbinding nadat dit afgekoel is. Gaan voort na die volgende LED, herhaal nog sewe keer die proses om op 'n stuk buis te gly, soldeer die verbinding en laat sak die buis oor die las. As u 'n stel van agt LED's wat almal met mekaar verbind is, verwyder dit uit die mal en herhaal nog sewe rye, maak seker dat alle verbindings met die anodekabel van elke LED gemaak is. U kan die ry van die mal wat die maklikste bereik is, gebruik, aangesien u slegs een op 'n slag werk. Nadat al agt rye gesoldeer is, is dit tyd om by die kolomme aan te sluit en 'n matriks te maak. Plaas al die LED -snare in die mal wat u gemaak het. Hou die lang draad op dieselfde kant van elke tou. Sny en trek die katodeleiding van elke LED in die eerste kol Uhm, net soos jy gedoen het om die tou te bou. Neem nog 'n draadketting en herhaal die soldeerproses aan die LED's, maar hierdie keer verbind u dit 90 grade met die eerste stel drade wat u gedoen het. Hou die lang draad aan dieselfde kant van die matriks. As u elke kolom voltooi, verwyder dit van die skuimkern-mal en vou dit uit die pad om toegang tot die volgende kolom te bied. As u klaar is, het u 64 LED's in 8 rye en 8 kolomme. Ongelukkig moet u die proses weer herhaal vir die tweede matriks. As u 'n blaaskans nodig het, gaan dan na stap 3, 4 en 5 om aan die kode te werk, en kom dan terug.

Stap 3: Beheer van die LED's

Die beheer van die LED's
Die beheer van die LED's
Die beheer van die LED's
Die beheer van die LED's
Die beheer van die LED's
Die beheer van die LED's
Die beheer van die LED's
Die beheer van die LED's

Die LED -matrikse wat u gemaak het, word beheer deur twee Mini 8x8 LED Matrix -rugsakke van Adafruit. Met elke kontroleerder kan u 64 LED's met slegs twee drade van die Arduino bestuur, en u kan verskeie beheerders aan dieselfde twee drade aanmekaar koppel. Volg die aanwysings by die LED Matrix-rugsak om te soldeer op die 4-pins krag/data/klokopskrif. In plaas van soldeer op die LED -matriks, soldeer dan twee rye vroulike koppe aan die rugsak. Koppel die meegeleverde mini LED -matriks in die kopstukke. Koppel die matriks in 'n broodbord en koppel dit soos volg:

  • Koppel die CLK -pen op die rugsak aan die analoog pen 5 op die Arduino.
  • Koppel die DAT -pen aan die analoog pen 4 op die Arduino.
  • Koppel GND aan die grondpen op die Arduino.
  • Koppel VCC+ aan 5V krag.

Laai die Adafruit LED -rugsakbiblioteek en Adafruit GFX -biblioteke af en installeer dit op u rekenaar deur elkeen na die "biblioteke" -gids van die Arduino -sketsmap van u rekenaar te kopieer. Laai die "matrix8x8" -lêer op na u Arduino en verifieer dat die LED -rugsak werk. Die penne van die LED -matriks maak moontlik nie goeie kontak met die vroulike opskrifte nie, dus moet u dit moontlik wikkel of gedeeltelik verwyder om kontak te maak en alle rye en kolomme te laat brand. Herhaal die proses met die tweede LED -rugsak, maar hierdie keer moet u 'n nuwe adres daarvoor instel deur 'n trui oor die A0 -pads op die rugsak te soldeer. Begin die "matrix8x8" -kode weer, maar verander die reël "matrix.begin (0x70)" na "matrix.begin (0x71)" sodat die kode die nuwe LED -rugsak aanspreek.

Stap 4: Verbind die joystick

Verbind die joystick
Verbind die joystick
Verbind die joystick
Verbind die joystick

Jou joystick moet vier skakelaars hê met elk twee terminale. As u u joystick na regs skuif, aktiveer die skakelaar aan die linkerkant, as u dit afskuif, skakel die skakelaar bo -aan, ensovoorts. Soldeer 'n 3 "draad op een aansluiting van elke skakelaar. Draai die ander kant van al vier hierdie drade saam en soldeer dit aan 'n 12" draad. Dit is die gemene saak vir al vier skakelaars. Soldeer 'n 12 "draad aan die oorblywende aansluiting van elke skakelaar, en koppel dit dan soos volg:

  • Koppel die onderste skakelaar (geaktiveer as u omhoog druk) aan die analoog pen 0 op die Arduino.
  • Koppel die linker skakelaar (geaktiveer as u regs druk) aan die analoog pen 1 op die Arduino.
  • Koppel die boonste skakelaar (geaktiveer as u afdruk) aan die analoog pen 2 op die Arduino.
  • Koppel die regterskakelaar (geaktiveer as u na links druk) op analoog pen 3 op die Arduino.
  • Koppel die gewone aarddraad aan die grondpen op die Arduino.

Stap 5: Die programmering van die spel

Die programmering van die spel
Die programmering van die spel

Laai die aangehegte Pumpktris.ino.zip af, pak dit uit en maak die lêer oop in die Arduino -ontwikkelingsomgewing. Stel dit op en laai dit op na u Arduino. U behoort nou te kan speel op die mini LED -matriks wat u in die vorige stap opgestel het. Ek het probeer om soveel as moontlik kommentaar te lewer op die kode, maar hier is 'n algemene oorsig van die belangrikste prosesse: die vorms beskryf. Daar is sewe tetromino's, elk met 4 pixels, en elk met vier moontlike rotasies. Ons stoor dit alles in 'n multi-dimensionele skikking: die eerste dimensie wat bestaan uit die sewe vorms, die tweede dimensie met die vier rotasies vir elke vorm, die derde met vier pixelbeskrywings wat elk uit 'n X- en Y-koördinaat bestaan. Dit beskryf byvoorbeeld die "T" -vorm:/ * T */ {/ * hoek 0 */ {{0, 1}, {1, 1}, {2, 1}, {1, 2}},/ * hoek 90 */ {{1, 0}, {1, 1}, {2, 1}, {1, 2}},/ * hoek 180 */ {{1, 0}, {0, 1}, {1, 1}, {2, 1}}, / * hoek 270 * / {{1, 0}, {0, 1}, {1, 1}, {1, 2}}}

Volg die aktiewe stuk Om tred te hou met die stuk wat tans speel, het die program 'n activePiece -veranderlike. Dit is die indeks van die aktiewe vorm op die hoogste vlak van die skikking. Dit hou ook 'n rotasie veranderlike wat die indeks van die huidige rotasie bevat. 'N Veranderlike xOffset volg hoe ver links of regs (0-7) elke stuk is, en yOffset volg hoe ver (0-15) die bord geval het. Om die aktiewe stuk te teken, voeg die program die X- en Y -offsetwaardes by tot die X- en Y -koördinate van elke pixel wat uit die huidige rotasie van die geselekteerde stuk getrek word. stukke, met elke greep 'n ry voor. Die skikking hieronder verteenwoordig byvoorbeeld 'n L -vorm wat in die middel van die onderste twee rye sit (soos aangedui deur die 1s in die laaste twee grepe): byte sampleGrid [16] = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00100000, B00111000}; Botsingsopsporing As 'n poging aangewend word om die aktiewe stuk te skuif, kontroleer die program eers die nuwe posisie teen die reeks vaste stukke. As daar geen botsings is nie, word die beweging toegelaat en die matriks word weer geteken. As 'n botsing bespeur word terwyl u probeer om links, regs of om te draai, is die aksie verbied. As 'n botsing bespeur word tydens 'n poging om 'n stuk te laat val, word die stuk vas in sy posisie en word dit bygevoeg tot die reeks vaste pixels. Stukke outomaties laat val Die tempo van die spel word beheer deur die gravityTrigger- en stepCounter -veranderlikes. Elke lus van die program verhoog stepCounter, en elke keer as stepCounter die telling bereik wat in gravityTrigger gestoor is, laat dit die aktiewe stuk een vlak val. Namate die spel vorder, word gravityTrigger verminder, sodat die aktiewe stuk meer en meer val totdat dit uiteindelik in elke lus van die program val. Elke keer as 'n aktiewe stuk op die rooster vasgemaak word, kyk die program na volledige grepe/rye (B11111111). As dit gevind word, knip dit dit drie keer af en verwyder dit dan en laat die rye hierbo val om die gaping te vul. waarde deurgegee in die reëls "matrixTop.setRotation (1);" en/of "matrixBottom.setRotation (1);" in die "setup ()" lus. As die stukke in die verkeerde matriks begin, verander die fisiese ligging van elke matriks of keer die adresse om wat in die "matrixTop.begin (0x70) verklaar word;" en "matrixBottom.begin (0x71);" lyne van die "setup ()" lus. As sommige rye of kolomme nie brand nie, draai deur die mini LED -matriks in die vroulike opskrifte. Hulle maak dalk nie goeie kontak nie.

Stap 6: Koppel u LED -matriks

Koppel u LED -matriks
Koppel u LED -matriks
Koppel u LED -matriks
Koppel u LED -matriks
Koppel u LED -matriks
Koppel u LED -matriks

As al die kode en kontroles bevestig is dat dit met die mini LED -matrikse werk, is dit tyd om die groot LED -matrikse wat u self gesoldeer het, aan te sluit.

U kan elke draad afsonderlik in die koppe van die matriksrugsak aansluit, maar u sal waarskynlik baie in- en uitkoppel, sodat dit 'n groot probleem kan wees. In plaas daarvan wil u elke draad aan 'n manlike kopstrook soldeer en dit in die matriksrugsak aansluit. Ek het die kopstroke op 'n stuk prototipe bord gemonteer sodat ek al 16 penne aanmekaar kon koppel. Rye 1-4 word verbind met penne 1-4 op die matriksrugsak (die nommer van die pen begin links bo terwyl jy op die rugsak afkyk met die 4-pen krag/grond/data/klokpenne bo-op). Kolomme 1-4 sluit aan by penne 5-8. Die pen nommer draai om sodat pen 9 regs onder is. Rye 5-8 word verbind met penne 12-9, en kolomme 5-8 word verbind met penne 16-13. Sien die diagram vir meer duidelikheid. Koppel elke matriks in 'n rugsak en voer dieselfde "matrix8x8" -program uit as wat u gedoen het vir die mini LED -matrikse in stap 4. As elkeen werk, kan u die spelprogram laai. As dit nie werk nie, kyk of die rye en kolomme van die groot LED -matriks in die regte penne van die rugsak geplaas is. Deur die LED-matriks te monteer in die skuimkern-mal wat u gemaak het vir montering, kan dit makliker wees om die hele stelsel te toets.

Stap 7: Sny die pampoen

Kerf die pampoen
Kerf die pampoen
Kerf die pampoen
Kerf die pampoen
Kerf die pampoen
Kerf die pampoen

Moenie die pampoen sny totdat al u elektronika werk nie. 'N Gesnyde pampoen het 'n beperkte rakleeftyd, en as u dit eers sny en dan 2 dae aan die elektronika spandeer, is dit twee dae se pret wat u verloor het.

Soek die platste kant van die pampoen sodat u LED -paneel nie te ver omhul nie en sny 'n opening aan die teenoorgestelde kant. Wees vrygewig; jy gaan ruimte nodig hê om jou hande daar te kry om te werk. U gaan die bokant nie sny soos op 'n tradisionele pampoen nie, want dit moet ongeskonde vir die joystick gelaat word. Pumpkin goo en elektronika is nie die beste vriende nie, dus maak die binnekant goed skoon. Vir die mooiste Pumpktris wil u hê dat u rooster van LED's reguit en in lyn is met die pampoen. 'N PDF is aangeheg met 'n afstand van 8 x 16, 'n half duim uitmekaar. Druk dit af (of maak u eie met u eie afstand), sny om die kante en plak dit op die voorkant van die pampoen. Maak seker dat dit reguit op en af is. Met 'n spyker, tandestokkie of ander soortgelyke gereedskap, steek 'n proefgat in die middel van elke LED wat op die papier gemerk is. Dit word nie aanbeveel om direk deur die papier te boor nie, want dit sal waarskynlik skuif of skeur. Sodra al die proefgate gesteek is, verwyder die papiersjabloon en gebruik 'n 13/64 "-boretjie in u boormasjien om elke gat te boor. Moenie die boor loodreg op die oppervlak van die pampoen pas nie. As u dit doen, moet die kromming van die pampoen kan veroorsaak dat gate wat aan die buitekant 'n halwe duim uitmekaar is, aan die binnekant bymekaarkom, en dit sal moeilik wees om die LED's in te sit. Probeer eerder om al die gate ewewydig te hou. As al die gate geboor is, Gebruik jou X-Acto-mes om 'n vierkantige "pixel" om elke gat te sny. Hoek die mes in die middel van elke gat en laat ongeveer 1/8 "tussen die pixels. Ek stel voor dat u 'n oefenpampoen koop en dit gebruik om u boor- en pixelgrafiektegniek te vervolmaak. Bemeester dit daar voordat u die kans waag om die perfekte pampoen wat u vir die finale produk gevind het, te verwoes.

Stap 8: Monteer die steel aan die joystick

Montering van die steel op die joystick
Montering van die steel op die joystick
Montering van die steel op die joystick
Montering van die steel op die joystick
Montering van die steel op die joystick
Montering van die steel op die joystick
Montering van die steel op die joystick
Montering van die steel op die joystick

Nou pas u die steel aan om as 'n joystick gebruik te word om die spel te beheer.

Sny die stingel so na as moontlik aan die basis af. As die snit glad en skoon is, gebruik dit 'n skuurblok om dit plat te maak. Boor 'n 1-1/8 "gat reguit deur die basis van die stam en in die pampoen. Skroef die bal van die joystick los en pas die as met die middel van die gat van die binnekant van die pampoen af. Maak seker dat die voorkant van die pampoen die joystick is vierkantig met die voorkant van die pampoen; as u speel, wil u na links en regs druk om stukke te skuif, nie skuins nie. As dit in die middel en vierkantig is, gebruik 'n spyker of tandestokkie om gate in die binnekant te steek die pampoen bokant die monteergate in die joystick -basis. Verwyder die joystick. Sny met die draadsnyers die uitbreidingspunte van die gipsankers af sodat hulle korter is as die dikte van die pampoen se vel. Skroef hierdie verkorte, snubnose gipsankers vas in die pilootgate wat u gemaak het. Die besonderhede van die volgende deel sal afhang van die joystick wat u gekoop het. Die een wat ek van SparkFun gebruik het, het 'n 6 mm -bevestiging vir die balhandvatsel wat deur die steel vervang word. As u joystick anders is, gebruik die grootte van die moere en boute. Soek die in die middel van die stingel en boor 'n 13/64 "gat (dieselfde grootte as wat u toevallig vir die LED -gate gebruik het) ongeveer 'n duim reguit in die steel. Dit is 'n goeie stap om die oefenpampoen te toets om seker te maak dat die bout styf in die gat vasskroef. Sny die kop van 'n bout van 6 x 50 mm af met 'n ystersaag. Plaas epoksie- of houtgom op die drade naby die snykant van die skroef en skroef dit in die stingel vas. U wil ongeveer 'n sentimeter daarvan in die stam en 'n sentimeter buite hê. Skroef die 6 mm -koppelmoer op die joystick -as vas, maar moenie die joystick nog in die pampoen monteer nie.

Stap 9: LED en joystick -plasing

LED en joystick -plasing
LED en joystick -plasing

Aan die binnekant van die pampoen, steek die LED's ry vir ry in hul gate totdat die basisse gelyk is aan die binneste oppervlak van die pampoen. As alles op hul plek is, gebruik 'n bamboespen om dieper na die voorkant te stoot. Ek het hul voorkant ongeveer 1/4 tot 3/8 duim onder die buitekant laat sit. As hulle te ver onder die oppervlak is, stort die lig in die pampoen se vlees en elke pixel is minder duidelik.

Voeg 'n laag plastiekfolie bo -op die joystick, terwyl die as self deurdring. Dit voorkom dat ten minste 'n bietjie vog daarin beland. Bevestig die joystick met 1/2 skroewe in die gipsankers. Die skroewe wat by die ankers kom, sal te lank wees en deur die pampoen steek.

Stap 10: Speel die spel

Speel die spel
Speel die spel

Plaas 'n bak of plastiekhouer aan die onderkant van die pampoen om te verhoed dat elektroniese elektronika aan die onderkant raak. Steek die joystick in u Arduino, die LED -rugsakke in die Arduino en die LED -matrikse in die rugsakke. Koppel 'n kragbron aan jou Arduino. Speel nou 'n paar Pumpktris! Idees vir verdere verkenning In plaas daarvan om die joystick aan die bokant van die pampoen met die LED's te monteer, kan u 'n afgeleë pampoen, draadloos of met 'n kabel wat soos 'n wingerdstok lyk, gebruik. In plaas van 'n speletjie, kan u blaai-boodskappe op u jack-o-lantern vertoon. Miskien wil u die matrikse sywaarts monteer (16 breed by 8 hoog), of selfs net een matriks gebruik. Dit kan gevaarlik wees vir u gesondheid en kan lei tot foute in u elektronika. Dit is die beste om al u elektronika uit te haal sodra u groei op of in die pampoen sien, sodat u dit later weer kan gebruik sonder dat u 'n Haz-Mat-opruiming nodig het.

Halloween -versieringswedstryd
Halloween -versieringswedstryd
Halloween -versieringswedstryd
Halloween -versieringswedstryd

Tweede prys in die Halloween -versieringswedstryd

Aanbeveel: