Innehållsförteckning:

Pumpktris - Tetrispumpan: 10 steg (med bilder)
Pumpktris - Tetrispumpan: 10 steg (med bilder)

Video: Pumpktris - Tetrispumpan: 10 steg (med bilder)

Video: Pumpktris - Tetrispumpan: 10 steg (med bilder)
Video: Pumpktris 2024, Juli
Anonim
Pumpktris - Tetrispumpan
Pumpktris - Tetrispumpan

Vem vill flinande ansikten och ljus när du kan ha en interaktiv pumpa denna Halloween? Spela ditt favoritblockstapelspel på ett 8x16 rutnät hugget i kalebassens ansikte, upplyst av lysdioder och använda stammen som en kontroller. Detta är ett måttligt avancerat projekt och kräver erfarenhet av lödning och programmering i Arduino -miljön. Du kommer att arbeta med organiskt material och alla dess inneboende egendomar, så måtten kan behöva anpassas för att passa pumpan du använder.

Steg 1: Obligatoriskt material

Nödvändigt material
Nödvändigt material
Nödvändigt material
Nödvändigt material

För att bygga din egen Pumpktris behöver du följande: Komponenter

  • 128 5 mm gula lysdioder (jag använde dessa från Mouser) Köp lite extra för att täcka eventuella misstag eller tester. Jag fick 140. Bärnsten liknar närmast flamman som skulle vara inne i en traditionell jack-o-lykta, men du är fri att använda vilken färg du vill.
  • Arduino mikrokontroller
  • 1/16 "värmekrympslang (11 fot eller 256 1/2" långa bitar)
  • Arcade -joystick med avtagbart handtag (den här från SparkFun fungerade bra för mig)
  • 4 #6 nylon gips ankare Detta är inte den typ med växlarna, men den typ som ser ut som skruvar med djupa gängor
  • 4 halvtums långa skruvar av samma storlek och typ som följde med gipsankarna. De som följer med ankarna blir för långa.
  • 6 mm x 50 mm bult (eller vilken storlek som passar fästet för ditt joystickhandtag)
  • 6 mm kopplingsmutter (eller vilken storlek som helst som behövs för att matcha ovanstående bult) En kopplingsmutter ser ut som en vanlig mutter, men är ungefär en tum lång och används för att fästa två bultar eller bitar av gängad stång.

Och sist men inte minst behöver du 1 pumpa. Du behöver bara en, men jag rekommenderar två så att du har en som du kan använda för att träna och borra. Din LED -matris kommer att täcka ett område som är ungefär 4 "brett och 8" högt, så du vill ha en pumpa med ett område som är så smidigt och plant som möjligt så att din matris inte lindas för långt runt. Du kan använda en skumpumpa, men var är magin i det? Jag kan inte prata med de ristningstekniker som behövs på en skumpumpa. Verktyg och förbrukningsvaror

  • Lödkolv
  • Löda
  • Avbitartång
  • Wire strippers
  • Borrmaskin
  • Bågfil
  • X-Acto kniv
  • 13/64 "borr
  • 1-1/8 "borr (jag använde en Forstner-bit, men en spadebit kan också fungera)
  • 1/4 "skumkärnbräda

Steg 2: Bygga en LED -matris

Bygga en LED -matris
Bygga en LED -matris
Bygga en LED -matris
Bygga en LED -matris
Bygga en LED -matris
Bygga en LED -matris

Varje matris är gjord av 64 lysdioder och 128 bitar av tråd. Det är lättast att klippa och ta bort alla trådar för varje matris i förväg. Skär 112 i 2,5 "bitar och ta bort 1/4" av varje ände. Skär de återstående 16 i 12 "bitar och ta bort båda ändarna. Ju mer konsekvent du kan få dina trådlängder, desto lättare blir det att bygga och installera.

Du börjar med att bygga sexton åttasegrade kedjor av trådar-var och en med 7 korta och 1 långa trådar. Vrid varje ände tillsammans med nästa bit och löd. För att ansluta ledningarna till lysdioderna behöver du en jigg för att hålla i lysdioderna. Rita ett 8x8 rutnät med halvtums avstånd på en bit av 1/4 "tjockt skumkärnbräda, använd sedan en syl för att peta ett hål som är något mindre i diameter än lysdioden vid varje korsning. Du har 64 hål när du är klar. I den översta hålraden sätter du in 8 lysdioder. Skumkärnan sträcker sig så att den passar lysdioderna och håller dem tätt. Rikta in lysdioderna så att det längre benet-anodledningen-är vänd mot dig på varje. Dubbelkolla, för om du får en fel kommer inte matrisen att fungera. Klipp varje anodkabel till ungefär 1/4 "lång, och tenn den med lödning för att göra det lättare att ansluta trådarna. Skär 8 bitar av värmekrympslang i 1/2 "segment. Skjut en slangbit över den första trådanslutningen, skjut tillbaka den så att den inte påverkas av värmen i lödet och löd sedan trådanslutningen till LED-anoden. Skjut slangen ner över anslutningen när den har svalnat. Fortsätt till nästa lysdiod, upprepa sju gånger processen med att glida på en slang, löd anslutningen och sänk sedan slangen över fogen. När du har en uppsättning med åtta lysdioder alla anslutna till varandra, ta bort dem från jiggen och upprepa igen för sju rader till, var noga med att göra alla anslutningar till anodkabeln på varje lysdiod. Du kan använda vilken rad i jiggen som är lättast att nå, eftersom du bara arbetar med en i taget. Efter att alla åtta raderna har lödts är det dags att gå med i kolumnerna och göra en matris. Sätt in alla LED -strängar i jiggen du gjort. Håll den långa tråden på samma Skär och tenn katodledningen för varje lysdiod i den första kolven umn, precis som du gjorde för att bygga strängen. Ta en annan trådkedja och upprepa processen med att lödda den till lysdioderna, bara den här gången ansluter du den vid 90 grader till den första uppsättningen ledningar du gjorde. Håll den långa tråden på samma sida av matrisen. När du slutför varje kolumn, ta bort den från skumkärnjiggen och vik den ur vägen för att ge åtkomst till nästa kolumn. När du är klar har du 64 lysdioder sammanfogade i 8 rader och 8 kolumner. Tyvärr måste du upprepa processen igen för den andra matrisen. Om du behöver en paus, hoppa till steg 3, 4 och 5 för att arbeta med koden, kom sedan tillbaka till detta.

Steg 3: Styrning av lysdioderna

Kontroll av lysdioderna
Kontroll av lysdioderna
Kontroll av lysdioderna
Kontroll av lysdioderna
Kontroll av lysdioderna
Kontroll av lysdioderna
Kontroll av lysdioderna
Kontroll av lysdioderna

LED -matriserna du har gjort kommer att styras av två Mini 8x8 LED Matrix -ryggsäckar från Adafruit. Varje styrenhet låter dig köra 64 lysdioder med endast två ledningar från Arduino, och du kan kedja flera kontroller tillsammans på samma två ledningar. Följ anvisningarna som medföljer LED Matrix-ryggsäcken för lödning på den 4-stifts ström/data/klockrubriken. Sedan, istället för att lödas på LED -matrisen som följer med, lödda du två rader med kvinnliga rubriker till ryggsäcken. Anslut den medföljande mini LED -matrisen till rubrikerna. Anslut matrisen till en brödbräda och anslut den enligt följande:

  • Anslut CLK -stift på ryggsäcken till analog stift 5 på Arduino.
  • Anslut DAT -stiftet till analog stift 4 på Arduino.
  • Anslut GND till jordstiftet på Arduino.
  • Anslut VCC+ till 5v ström.

Ladda ner Adafruit LED -ryggsäckbibliotek och Adafruit GFX -bibliotek och installera dem på din dator genom att kopiera varje till mappen "bibliotek" i datorns Arduino -skissmapp. Ladda upp "matrix8x8" -filen till din Arduino och kontrollera att LED -ryggsäcken fungerar. Stiften på LED -matrisen kanske inte ger bra kontakt i de kvinnliga rubrikerna, så du kan behöva vicka eller ta bort den delvis för att få kontakt och låta alla rader och kolumner lysa. Upprepa processen med den andra LED -ryggsäcken, men den här gången måste du ange en ny adress för den genom att lödda en bygel över A0 -kuddarna på ryggsäcken. Kör "matrix8x8" -koden igen, men ändra raden "matrix.begin (0x70)" till "matrix.begin (0x71)" så att koden adresserar den nya LED -ryggsäcken.

Steg 4: Anslutning av joysticken

Anslutning av joysticken
Anslutning av joysticken
Anslutning av joysticken
Anslutning av joysticken

Din joystick bör ha fyra switchar med två terminaler vardera. När du flyttar joysticken till höger utlöser den omkopplaren till vänster, när du flyttar den nedåt utlöser den omkopplaren överst osv. På en terminal på varje switch, löd en 3 "tråd. Vrid den andra änden av alla fyra av dessa trådar tillsammans och löd dem till en 12" wire. Detta är den gemensamma grunden för alla fyra omkopplare. Löd en 12 "-tråd till den återstående terminalen på varje switch och anslut sedan dem enligt följande:

  • Anslut den nedre omkopplaren (aktiverad när du trycker upp) till den analoga stift 0 på Arduino.
  • Anslut den vänstra omkopplaren (aktiverad när du trycker åt höger) till analog stift 1 på Arduino.
  • Anslut den övre omkopplaren (aktiverad när du trycker ner) till den analoga stift 2 på Arduino.
  • Anslut den högra strömbrytaren (aktiverad när du trycker åt vänster) till den analoga stift 3 på Arduino.
  • Anslut den gemensamma jordledningen till jordstiftet på Arduino.

Steg 5: Programmering av spelet

Programmering av spelet
Programmering av spelet

Ladda ner den bifogade Pumpktris.ino.zip, packa upp den och öppna filen i Arduino -utvecklingsmiljön. Kompilera och ladda upp den till din Arduino. Du bör nu kunna spela på mini LED -matrisen som du ställde in i föregående steg. Jag har försökt kommentera koden så mycket som möjligt, men här är en allmän översikt över huvudprocesserna: Beskriva formerna Det finns sju tetrominoer, var och en med 4 pixlar, och var och en med fyra möjliga rotationer. Vi lagrar allt detta i en flerdimensionell matris: den första dimensionen består av de sju formerna, den andra dimensionen innehåller de fyra rotationerna för varje form, den tredje innehåller fyra pixelbeskrivningar som var och en består av en X- och Y-koordinat. Till exempel beskriver detta "T" -formen:/ * T */ {/ * vinkel 0 */ {{0, 1}, {1, 1}, {2, 1}, {1, 2}},/ * vinkel 90 */ {{1, 0}, {1, 1}, {2, 1}, {1, 2}},/ * vinkel 180 */ {{1, 0}, {0, 1}, {1, 1}, {2, 1}}, / * vinkel 270 * / {{1, 0}, {0, 1}, {1, 1}, {1, 2}}}

Spåra det aktiva stycket För att hålla reda på det stycke som för närvarande spelas, behåller programmet en variabel för ActivePiece. Detta är indexet för den aktiva formen i gruppens högsta nivå. Det håller också en rotationsvariabel som innehåller indexet för den aktuella rotationen. En xOffset-variabel spårar hur långt vänster eller höger (0-7) varje bit är, och yOffset spårar hur långt ner (0-15) brädan den har fallit. För att rita det aktiva stycket lägger programmet till X- och Y -förskjutningsvärdena till X- och Y -koordinaterna för varje pixel som dras från den aktuella rotationen för det valda stycket. bitar, varvid varje byte representerar en rad. Till exempel skulle matrisen nedan representera en L -form som sitter i mitten av de två nedre raderna (som anges med 1: orna i de två sista byten): byte sampleGrid [16] = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00100000, B00111000}; Kollisionsdetektering När ett försök görs att flytta det aktiva stycket, kontrollerar programmet först den nya positionen mot uppsättningen fasta bitar. Om det inte finns några kollisioner är flytten tillåten och matrisen ritas om. Om en kollision upptäcks när du försöker flytta åt vänster, höger eller rotera, är åtgärden förbjuden. Om en kollision detekteras när du försöker tappa en bit, blir den fixerad i sin position och läggs till i uppsättningen fasta pixlar. Tappa bitar automatiskt Spelets takt styrs av gravitationTrigger och stepCounter -variablerna. Varje loop i programmet ökar stepCounter, och varje gång stepCounter når antalet som lagras i gravityTrigger, tappar det det aktiva stycket en nivå. När spelet fortskrider minskar gravityTrigger så att den aktiva biten sjunker allt oftare tills den slutligen tappar i varje loop av programmet. Varje gång en aktiv bit fixas till rutnätet söker programmet efter fullständiga byte/rader (B11111111). Om den hittar någon, blinkar den av och på tre gånger, tar sedan bort dem och tappar raderna ovan för att fylla luckan. Felsökning Om bitarna inte faller uppifrån och ner, utan istället går från sida till sida, ändra värde passerat i raderna "matrixTop.setRotation (1);" och/eller "matrixBottom.setRotation (1);" i "setup ()" -slingan. Om bitarna börjar i fel matris, byt den fysiska platsen för varje matris eller vänd adresserna som anges i "matrixTop.begin (0x70);" och "matrixBottom.begin (0x71);" rader i "setup ()" -slingan. Om vissa rader eller kolumner inte tänds, vrida mini -LED -matrisen i de kvinnliga rubrikerna. De kanske inte har bra kontakt.

Steg 6: Anslut din LED -matris

Ansluter din LED -matris
Ansluter din LED -matris
Ansluter din LED -matris
Ansluter din LED -matris
Ansluter din LED -matris
Ansluter din LED -matris

När alla koder och kontroller har verifierats för att fungera med mini LED -matriserna är det dags att koppla in de stora LED -matriserna du själv lödde.

Du kan ansluta varje kabel till rubrikerna på matrisryggsäcken individuellt, men du kommer förmodligen att plugga och koppla ur mycket, så det kan bli ett riktigt krångel. Istället vill du löda varje tråd på en hanremsa och ansluta den till matrisryggsäcken. Jag monterade rubrikremsorna på en prototypplatta så att jag kunde koppla ihop och dra ur alla 16 stiften. Raderna 1-4 ansluter till stiften 1-4 på matrisryggsäcken (nummernummer börjar längst upp till vänster när du tittar ner på ryggsäcken med 4-stifts ström/mark/data/klockstift ovanpå). Kolumnerna 1-4 ansluts till stiften 5-8. Stiftnumreringen sveper runt så att stift 9 är längst ner till höger. Rad 5-8 ansluter till stift 12-9 och kolumnerna 5-8 ansluter till stift 16-13. Se diagrammet för mer tydlighet. Anslut varje matris till en ryggsäck och kör samma "matrix8x8" -program som du gjorde för mini LED -matriserna i steg 4. Om varje fungerar kan du ladda ner spelprogrammet. Om det inte fungerar, kontrollera att raderna och kolumnerna i den stora LED -matrisen är anslutna till rätt stift på ryggsäcken. Att montera LED-matrisen i skumkärnjiggen du gjorde för montering kan göra det lättare att testa hela systemet.

Steg 7: Carving pumpan

Carving the Pumpkin
Carving the Pumpkin
Carving the Pumpkin
Carving the Pumpkin
Carving the Pumpkin
Carving the Pumpkin

Skär inte pumpan förrän all din elektronik fungerar. En ristad pumpa har en begränsad hållbarhet, och om du huggar den först och sedan spenderar 2 dagar på elektroniken är det två dagars spellek du har tappat.

Hitta den plattaste sidan på pumpan så att din LED -panel inte lindas för långt runt och skär sedan en öppning på sidan motsatt den. Var generös; du kommer att behöva utrymme för att få händerna där för att arbeta. Du kommer inte att skära toppen som på en traditionell pumpa eftersom det måste lämnas intakt för joysticken. Pumpa goo och elektronik är inte de bästa vännerna, så rengör insidan väl. För den snyggaste Pumpktris vill du att ditt nät av lysdioder ska vara rakt och väl anpassat till pumpan. En PDF bifogas med 8x16 mellanrum, en halv tum från varandra. Skriv ut detta (eller gör ditt eget med ditt eget avstånd), klipp runt kanterna och tejpa fast det på pumpans framsida. Var säker på att det är rakt upp och ner. Med en spik, tandpetare eller annat liknande verktyg, sticka ett pilothål i mitten av varje lysdiod markerad på papperet. Borrning direkt genom papperet rekommenderas inte eftersom det sannolikt kommer att röra sig eller riva. När alla pilothålen har petats, ta bort pappersmallen och använd en 13/64 "bit i din power drill för att borra varje hål. Rikta inte borren vinkelrätt mot pumpans yta! Om du gör detta, krökning av pumpan kan orsaka hål som är en halv tum från varandra på utsidan att mötas på insidan och det blir svårt att sätta in lysdioderna. Försök istället att hålla alla hål parallella. När alla hål är borrade, använd din X-Acto-kniv för att skära en fyrkantig "pixel" runt varje hål. Vinkla kniven mot mitten av varje hål och lämna cirka 1/8 "mellan pixlarna. Jag föreslår att du köper en träningspumpa och använder den för att perfekta din borr- och pixelristningsteknik. Behärska det där innan du tar en chans att förstöra den perfekta pumpan du hittade för den färdiga produkten.

Steg 8: Montera spindeln på styrspaken

Montering av spindeln på styrspaken
Montering av spindeln på styrspaken
Montering av spindeln på styrspaken
Montering av spindeln på styrspaken
Montering av spindeln på styrspaken
Montering av spindeln på styrspaken
Montering av spindeln på styrspaken
Montering av spindeln på styrspaken

Nu anpassar du stammen för att användas som en joystick för att styra spelet.

Klipp av skaftet så nära basen som möjligt. Om snittet inte är slätt och rent, använd ett slipblock för att platta ut det. Borra ett 1-1/8 "-hål rakt genom botten av skaftet och in i pumpan. Skruva bort styrspaken och rikta in axeln med hålets mitt från insidan av pumpan. Se till att framsidan av joysticken är fyrkantig med pumpans framsida-när du spelar vill du skjuta åt vänster och höger för att flytta bitar, inte i vinkel. När den är centrerad och fyrkantig, använd en spik eller tandpetare för att sticka hål inuti pumpan ovanför monteringshålen i joystickbasen. Ta bort joysticken. Med dina trådskärare skär du av de expanderande spetsarna av gipsankarna så att de är kortare än tjockleken på pumpans hud. Skruva dessa förkortade, snubnösa gipsankare i pilothålen du gjorde. Detaljerna i nästa del beror på joysticken du köpte. Den jag använde från SparkFun hade ett 6 mm fäste för bollhandtaget som kommer att ersättas av skaftet. Om din joystick är annorlunda, använd muttrar och bultar oavsett storlek. Hitta mitt på skaftet och borra ett 13/64 "hål (samma storlek som du använde för LED -hålen, av en slump) ungefär en tum rakt in i skaftet. Detta skulle vara ett bra steg att testa på din träningspumpa, för att se till att bulten skruvas fast i hålet. Skär av huvudet på en 6 mm x 50 mm bult med en bågfil. Lägg epoxi eller trälim på trådarna nära skruvets snittände och skruva fast det i skaftet. Du vill ha en tum eller så av det i stammen och en tum utanför. Skruva fast 6 mm kopplingsmutter på joystickaxeln, men montera inte joysticken i pumpan ännu.

Steg 9: Placering av LED och joystick

LED och joystickplacering
LED och joystickplacering

Från pumpans insida, sätt in lysdioderna rad för rad i sina hål tills deras baser är i linje med pumpans inre yta. När alla är på plats, använd ett bambuspett för att skjuta dem djupare framåt. Jag lämnade deras främre kant sittande ungefär 1/4 "till 3/8" under utsidan. Om de är för långt under ytan kommer ljuset att spillas in i pumpans kött och varje pixel kommer att vara mindre tydlig.

Lägg ett lager plastfolie på joystickens ovansida, medan själva axeln petar igenom. Detta kommer att hålla åtminstone lite fukt från att tränga in i det. Fäst joysticken med 1/2 skruvar i gipsets ankare. Skruvarna som följde med ankarna blir för långa och skulle sticka genom pumpan.

Steg 10: Spela spelet

Spelar spelet
Spelar spelet

Lägg en skål eller plastförvaringsbehållare i botten av pumpan för att förhindra att hängande elektronik berör botten. Koppla in joysticken i din Arduino, LED -ryggsäckarna i Arduino och LED -matriserna i ryggsäckarna. Anslut en strömkälla till din Arduino. Nu kan du spela lite Pumpktris! Idéer för vidare utforskning Istället för att montera joysticken på toppen av pumpan med lysdioderna kan du använda en fjärrpumpa, antingen trådlöst eller med en kabel dekorerad för att se ut som en vinstock. Istället för ett spel kan du visa rullande meddelanden på din jack-o-lantern. Du kanske vill montera matriserna i sidled (16 breda med 8 höga), eller till och med bara använda en matris. The Inevitable Decay Your pumpkin kommer så småningom att börja ruttna och sprida mögel och svamp. Detta kan vara farligt för din hälsa och kan leda till störningar i din elektronik. Det är bäst att dra ut all din elektronik när du ser någon tillväxt på eller i pumpan, så att du kan återanvända dem senare utan att behöva rengöra Haz-Mat.

Tävling för Halloween dekorationer
Tävling för Halloween dekorationer
Tävling för Halloween dekorationer
Tävling för Halloween dekorationer

Andra priset i Halloween -dekorationstävlingen

Rekommenderad: