Indholdsfortegnelse:

Pumpktris - Tetris Pumpkin: 10 trin (med billeder)
Pumpktris - Tetris Pumpkin: 10 trin (med billeder)

Video: Pumpktris - Tetris Pumpkin: 10 trin (med billeder)

Video: Pumpktris - Tetris Pumpkin: 10 trin (med billeder)
Video: Pumpktris 2024, Juli
Anonim
Pumpktris - Tetris græskar
Pumpktris - Tetris græskar

Hvem vil have grinende ansigter og lys, når du kan have et interaktivt græskar denne Halloween? Spil dit yndlingsblok-stablingsspil på et 8x16 gitter, der er hugget ind i græskarren, oplyst af lysdioder og bruger stammen som en controller. Dette er et moderat avanceret projekt og kræver erfaring med lodning og programmering i Arduino -miljøet. Du arbejder med organisk stof og alle dets iboende finesser, så målinger skal muligvis tilpasses til det græskar, du bruger.

Trin 1: Nødvendige materialer

Nødvendige materialer
Nødvendige materialer
Nødvendige materialer
Nødvendige materialer

For at bygge din egen Pumpktris skal du bruge følgende: Komponenter

  • 128 5 mm gule lysdioder (jeg brugte disse fra Mouser) Køb noget ekstra til at dække fejl eller tests. Jeg fik 140. Rav ligner mest flammen, der ville være inde i en traditionel jack-o-lantern, men du er fri til at bruge enhver farve, du kan lide.
  • Arduino mikrokontroller
  • 1/16 "varmekrympeslange (11 fod eller 256 1/2" lange stykker)
  • Arcade joystick med aftageligt håndtag (dette fra SparkFun fungerede godt for mig)
  • 4 #6 nylon gipsankre Dette er ikke den slags med skifterne, men den slags der ligner skruer med dybe gevind
  • 4 halvtommers lange skruer af samme størrelse og type, der fulgte med gipsvægsankre. Dem, der følger med ankre, vil være for lange.
  • 6 mm x 50 mm bolt (eller hvilken størrelse, der matcher holderen til dit joystickhåndtag)
  • 6 mm koblingsmøtrik (eller hvilken størrelse der er nødvendig for at matche ovenstående bolt) En koblingsmøtrik ligner en almindelig møtrik, men er cirka en tomme lang og bruges til at forbinde to bolte eller stykker gevindstang.

Og sidst men ikke mindst skal du bruge 1 græskar. Du har kun brug for en, men jeg anbefaler to, så du har en, du kan bruge til at øve boring og skæring. Din LED -matrix vil dække et område, der er cirka 4 "bredt og 8" højt, så du vil have et græskar med et område, der er så glat og fladt som muligt, så din matrix ikke vikles for langt rundt. Du kan bruge et skumgræskar, men hvor er magien i det? Jeg kan ikke tale med de udskæringsteknikker, der er nødvendige på et skumgræskar. Værktøjer og forbrugsvarer

  • Loddekolbe
  • Lodde
  • Trådskærere
  • Wire strippere
  • El -boremaskine
  • Hacksav
  • X-Acto kniv
  • 13/64 "bor
  • 1-1/8 "bor (jeg brugte en Forstner bit, men en spadebit kan også fungere)
  • 1/4 "skumkerntavle

Trin 2: Opbygning af en LED -matrix

Bygger en LED -matrix
Bygger en LED -matrix
Bygger en LED -matrix
Bygger en LED -matrix
Bygger en LED -matrix
Bygger en LED -matrix

Hver matrix er lavet af 64 lysdioder og 128 stykker tråd. Det er nemmest at skære og fjerne alle ledninger til hver matrix på forhånd. Skær 112 i 2,5 "stykker og fjern 1/4" fra hver ende. Skær de resterende 16 i 12 "stykker, og fjern begge ender. Jo mere konsekvent du kan få dine trådlængder, jo lettere bliver det at bygge og installere.

Du starter med at bygge seksten otte-segment daisy-kæder af ledninger-hver med 7 korte og 1 lange ledninger. Drej hver ende sammen med det næste stykke og loddetin. For at forbinde ledningerne til lysdioderne skal du bruge en jig til at holde LED'erne. Tegn et 8x8 gitter med en halv tommer afstand på et stykke 1/4 "tykt skumkerntavle, og brug derefter en syl til at stikke et hul, der er lidt mindre i diameter end LED'en ved hvert kryds. Du har 64 huller, når du er færdig. I den øverste hullerække skal du indsætte 8 lysdioder. Skumkernen strækker sig, så den passer til lysdioderne og holder dem stramt. Juster lysdioderne, så det længere ben-anodebladet-vender mod dig på hver. Dobbelttjek, for hvis du får en forkert, fungerer matrixen ikke. Klip hver anodeledning til ca. 1/4 "lang, og tin den med loddetin for at gøre det lettere at forbinde ledningerne. Skær 8 stykker varmekrympende rør i 1/2 "segmenter. Skub et stykke rør over den første ledningsforbindelse, skub det tilbage, så det ikke påvirkes af loddetens varme, og lod derefter trådforbindelsen til LED-anoden. Skub slangen ned over forbindelsen, når den er afkølet. Fortsæt til den næste LED, gentag syv gange mere med at glide på et stykke slange, lodde forbindelsen og derefter sænke slangen over leddet. Når du har en sæt med otte lysdioder, der alle er forbundet med hinanden, fjern dem fra jiggen og gentag igen i syv rækker, og sørg for at foretage alle forbindelser til anodledningen på hver LED. Du kan bruge den række af jiggen, der er lettest at nå, da du kun arbejder med en ad gangen. Efter at alle otte rækker er loddet, er det tid til at slutte sig til kolonnerne og lave en matrix. Indsæt alle LED -strengene i jiggen, du har lavet. Hold den lange ledning på samme side af hver snor. Klip og tin katodeledningen på hver LED i den første kol umn, ligesom du gjorde for at bygge strengen. Tag en anden trådkæde og gentag processen med at lodde den til lysdioderne, kun denne gang forbinder du den ved 90 grader til det første sæt ledninger, du lavede. Hold den lange ledning på samme side af matrixen. Når du fuldender hver kolonne, skal du fjerne den fra skumkernejiggen og folde den af vejen for at give adgang til den næste kolonne. Når du er færdig, har du 64 lysdioder forbundet i 8 rækker og 8 kolonner. Desværre skal du gentage processen igen for den anden matrix. Hvis du har brug for en pause, skal du springe til trin 3, 4 og 5 for at arbejde med koden og derefter vende tilbage til dette.

Trin 3: Styring af lysdioderne

Styring af lysdioderne
Styring af lysdioderne
Styring af lysdioderne
Styring af lysdioderne
Styring af lysdioderne
Styring af lysdioderne
Styring af lysdioderne
Styring af lysdioderne

De LED -matricer, du har lavet, styres af to Mini 8x8 LED Matrix -rygsække fra Adafruit. Hver controller giver dig mulighed for at køre 64 lysdioder med kun to ledninger fra Arduino, og du kan kæde flere controllere sammen på de samme to ledninger. Følg anvisningerne, der følger med LED Matrix-rygsækken til lodning på 4-bens power/data/clock header. I stedet for at lodde på den LED -matrix, der følger med, lod du derefter to rækker kvindelige overskrifter til rygsækken. Sæt den medfølgende mini LED -matrix i headers. Sæt matrixen i et brødbræt, og tilslut den som følger:

  • Tilslut CLK pin på rygsækken til analog pin 5 på Arduino.
  • Tilslut DAT -pin til analog pin 4 på Arduino.
  • Tilslut GND til jordstiften på Arduino.
  • Tilslut VCC+ til 5v strøm.

Download Adafruit LED -rygsækbiblioteket og Adafruit GFX -bibliotekerne, og installer dem på din computer ved at kopiere hver til mappen "biblioteker" i din computers Arduino -skitsemappe. Upload filen "matrix8x8" til din Arduino, og kontroller, at LED -rygsækken fungerer. Stifterne på LED -matricen får muligvis ikke god kontakt i de kvindelige overskrifter, så du skal muligvis vrikke eller delvist fjerne den for at få kontakt og lade alle rækker og kolonner lyse. Gentag processen med den anden LED -rygsæk, men denne gang skal du indstille en ny adresse til den ved at lodde en jumper hen over A0 -puderne på rygsækken. Kør "matrix8x8" -koden igen, men skift linjen "matrix.begin (0x70)" til "matrix.begin (0x71)", så koden adresserer den nye LED -rygsæk.

Trin 4: Tilslutning af joysticket

Tilslutning af joysticket
Tilslutning af joysticket
Tilslutning af joysticket
Tilslutning af joysticket

Dit joystick skal have fire kontakter med hver to terminaler. Når du flytter dit joystick til højre, udløser det kontakten til venstre, når du flytter det nedad, udløser det kontakten på toppen osv. På en terminal på hver switch loddes en 3 "ledning. Vrid den anden ende af alle fire af disse ledninger sammen og lod dem til en 12" wire. Dette er fælles for alle fire kontakter. Lod en 12 "ledning til den resterende terminal på hver switch, og tilslut dem derefter som følger:

  • Tilslut den nederste kontakt (aktiveret, når du skubber op) til analog pin 0 på Arduino.
  • Tilslut den venstre kontakt (aktiveret, når du skubber til højre) til den analoge pin 1 på Arduino.
  • Tilslut den øverste kontakt (aktiveret, når du trykker ned) til analog pin 2 på Arduino.
  • Tilslut højre kontakt (aktiveret, når du skubber til venstre) til analog pin 3 på Arduino.
  • Tilslut den fælles jordledning til jordstiften på Arduino.

Trin 5: Programmering af spillet

Programmering af spillet
Programmering af spillet

Download den vedhæftede Pumpktris.ino.zip, pak den ud, og åbn filen i Arduino -udviklingsmiljøet. Kompilér og upload det til din Arduino. Du skulle nu kunne spille på den mini LED -matrix, du konfigurerede i det foregående trin. Jeg har forsøgt at kommentere koden så meget som muligt, men her er en generel oversigt over hovedprocesserne: Beskrivelse af figurerne Der er syv tetrominoer, hver med 4 pixels, og hver med fire mulige rotationer. Vi gemmer alt dette i et multidimensionelt array: den første dimension består af de syv former, den anden dimension indeholder de fire rotationer for hver form, den tredje indeholder fire pixelbeskrivelser, der hver består af en X- og Y-koordinat. For eksempel beskriver dette "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}}}

Sporing af det aktive stykke For at holde styr på det stykke, der aktuelt spilles, opretholder programmet en variabel i activePiece. Dette er indekset for den aktive form i arrayets højeste niveau. Det bevarer også en rotationsvariabel, der indeholder indekset for den aktuelle rotation. En xOffset-variabel sporer, hvor langt venstre eller højre (0-7) hvert stykke er, og yOffset sporer, hvor langt ned (0-15) brættet det er faldet. For at tegne det aktive stykke tilføjer programmet X- og Y -forskydningsværdierne til X- og Y -koordinaterne for hver pixel trukket fra den aktuelle rotations af det valgte stykke. stykker, hvor hver byte repræsenterer en række. F.eks. Ville arrayet nedenfor repræsentere en L -form, der sidder i midten af de nederste to rækker (som angivet med 1'erne i de sidste to bytes): byte sampleGrid [16] = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00100000, B00111000}; Kollisionsdetektion Når der gøres et forsøg på at flytte det aktive stykke, kontrollerer programmet først den nye position i forhold til arrayet med faste stykker. Hvis der ikke er nogen kollisioner, er flytningen tilladt, og matricen tegnes om. Hvis der opdages en kollision, mens du forsøger at flytte til venstre, højre eller rotere, er handlingen forbudt. Hvis der opdages en kollision, mens du forsøger at tabe et stykke, bliver stykket fast i sin position og tilføjes til matrixen med faste pixels. Dropping Pieces Automatic Spilets tempo styres af gravityTrigger og stepCounter -variablerne. Hver loop i programmet øger stepCounter, og hver gang stepCounter når tællingen, der er gemt i gravityTrigger, sænker det det aktive stykke et niveau. Efterhånden som spillet skrider frem, reduceres gravityTrigger, så det aktive stykke falder oftere og oftere, indtil det endelig falder i hver loop af programmet. Hver gang et aktivt stykke er fastgjort til nettet, kontrollerer programmet for fuld byte/rækker (B11111111). Hvis den finder nogen, blinker den af og på tre gange, fjerner dem derefter og taber rækker ovenfor for at udfylde hullet. Fejlfinding Hvis brikkerne ikke falder fra top til bund, men i stedet går fra side til side, skal du ændre værdi overført i linjerne "matrixTop.setRotation (1);" og/eller "matrixBottom.setRotation (1);" i "setup ()" loop. Hvis brikkerne starter i den forkerte matrix, skal du skifte den fysiske placering af hver matrix eller vende adresserne, der er angivet i "matrixTop.begin (0x70);" og "matrixBottom.begin (0x71);" linjer i "setup ()" loop. Hvis nogle rækker eller kolonner ikke lyser, skal du vrikke med mini LED -matricen i hunoverskrifterne. De får muligvis ikke god kontakt.

Trin 6: Tilslutning af din LED -matrix

Tilslutning af din LED -matrix
Tilslutning af din LED -matrix
Tilslutning af din LED -matrix
Tilslutning af din LED -matrix
Tilslutning af din LED -matrix
Tilslutning af din LED -matrix

Når alle koder og kontroller er blevet verificeret til at fungere med mini LED -matricerne, er det tid til at tilslutte de store LED -matricer, du lodde selv.

Du kan tilslutte hver ledning til headerne på matrix -rygsækken individuelt, men du vil sandsynligvis gøre en masse til- og frakobling, så det kan blive et rigtigt besvær. I stedet vil du lodde hver ledning på en hanrørstrimmel og sætte den i matrix -rygsækken. Jeg monterede headerstrimlerne på et stykke prototypebord, så jeg kunne tilslutte og tage alle 16 ben ud af stikkontakten. Rækker 1-4 forbindes til stifter 1-4 på matrix-rygsækken (nummernummer starter øverst til venstre, mens du kigger ned på rygsækken med de 4-benede power/ground/data/clock pins ovenpå). Kolonne 1-4 forbindes til stifter 5-8. Pin -nummereringen vikles rundt, så pin 9 er nederst til højre. Rækker 5-8 forbindes til ben 12-9, og kolonner 5-8 forbindes til stifter 16-13. Se diagrammet for mere klarhed. Slut hver matrix til en rygsæk, og kør det samme "matrix8x8" -program, som du gjorde for mini LED -matricerne i trin 4. Hvis hver fungerer, kan du indlæse spilprogrammet. Hvis det ikke virker, skal du kontrollere, at rækkerne og kolonnerne i den store LED -matrix er sat i de rigtige stifter på rygsækken. Montering af LED-matrixen i den skumkerne-jig, du lavede til montering, kan gøre det lettere at teste hele systemet.

Trin 7: Skæring af græskar

Udskæring af græskar
Udskæring af græskar
Udskæring af græskar
Udskæring af græskar
Udskæring af græskar
Udskæring af græskar

Skær ikke på græskar, før al din elektronik fungerer. Et udskåret græskar har en begrænset holdbarhed, og hvis du hugger det først og derefter bruger 2 dage på elektronikken, er det to dages sjov, du har mistet.

Find den fladeste side på græskarret, så dit LED -panel ikke vikles for langt rundt, og skær derefter en åbning på siden modsat det. Vær generøs; du får brug for plads til at få hænderne derinde til at arbejde. Du kommer ikke til at skære toppen som på et traditionelt græskar, fordi det skal efterlades intakt til joysticket. Pumpkin goo og elektronik er ikke de bedste venner, så rengør indersiden godt. For den flotteste Pumpktris vil du have, at dit LED-lysnet er lige og godt afstemt med græskarret. En PDF er vedhæftet med 8x16 mellemrum, en halv tomme fra hinanden. Udskriv dette (eller lav dit eget med din egen afstand), klip rundt om kanterne og tap det på forsiden af græskaret. Vær sikker på at det er lige op og ned. Med et søm, tandstikker eller andet lignende værktøj stikker du et hul i midten af hver LED, der er markeret på papiret. Det anbefales ikke at bore direkte gennem papiret, fordi det sandsynligvis vil flytte sig eller rive. Når alle pilothullerne er stukket, skal du fjerne papirskabelonen og bruge en 13/64 "bit i din boremaskine til at bore hvert hul. Juster ikke boret vinkelret på græskarets overflade! Hvis du gør dette, skal krumning af græskar kan få huller, der er en halv tomme fra hinanden på ydersiden til at mødes på indersiden, og det vil være svært at indsætte lysdioderne. Prøv i stedet at holde alle hullerne parallelle. Når alle hullerne er boret, Brug din X-Acto-kniv til at skære en firkantet "pixel" rundt om hvert hul. Vinkl kniven mod midten af hvert hul, og lad ca. 1/8 "være mellem pixels. Jeg foreslår, at du køber et græskar og bruger det til at perfektionere din teknik til boring og pixeludskæring. Behersk det der, før du tager en chance for at ødelægge det perfekte græskar, du fandt til det færdige produkt.

Trin 8: Montering af stilken på joysticket

Montering af stilken på joysticket
Montering af stilken på joysticket
Montering af stilken på joysticket
Montering af stilken på joysticket
Montering af stilken på joysticket
Montering af stilken på joysticket
Montering af stilken på joysticket
Montering af stilken på joysticket

Nu tilpasser du stammen til at blive brugt som et joystick til at styre spillet.

Skær stammen af så tæt på bunden som muligt. Hvis snittet ikke er glat og rent, skal du bruge en slibeblok til at flade det. Bor et 1-1/8 "hul lige gennem bunden af stilken og ind i græskaret. Skru joystickets kugle ud, og juster akslen med midten af hullet fra indersiden af græskaret. Sørg for, at forsiden af joysticket joysticket er firkantet med græskarens forside-når du spiller, vil du skubbe til venstre og højre for at flytte stykker, ikke i en vinkel. Når det er centreret og firkantet, skal du bruge en søm eller tandstikker til at stikke huller ind i indersiden af græskarret over monteringshullerne i joystickbasen. Fjern joysticket. Med dine trådskærere skærer du de ekspanderende spidser af gipsvægsankrene, så de er kortere end tykkelsen af græskarets hud. Skru disse forkortede, snubnose gipsvægsankre ind i de pilothuller, du lavede. Detaljerne i den næste del afhænger af det joystick, du har købt. Det, jeg brugte fra SparkFun, havde en 6 mm fastgørelse til kuglehåndtaget, der erstattes af stammen. Hvis dit joystick er anderledes, brug møtrikker og bolte uanset størrelse. Find den midten af stammen og bor et 13/64 "hul (den samme størrelse, du brugte til LED -hullerne, tilfældigt) ca. en tomme lige ind i stilken. Dette ville være et godt skridt at teste på dit øvelsesgræskar for at sikre, at bolten skrues godt fast i hullet. Skær hovedet af en 6 mm x 50 mm bolt med en hacksav. Læg epoxy eller trælim på gevindene nær skruens afskårne ende, og skru det fast i stilken. Du vil have en tomme eller deromkring af stammen og en tomme udenfor. Skru 6 mm koblingsmøtrikken på joystickskaftet, men monter ikke joysticket i græskaret endnu.

Trin 9: LED og joystickplacering

Placering af LED og joystick
Placering af LED og joystick

Fra indersiden af græskaret skal LED'erne indsættes række for række i deres huller, indtil deres baser flugter med græskarens indre overflade. Når alle er på plads, skal du bruge et bambusspyd til at skubbe dem dybere mod forsiden. Jeg forlod deres forkant sidde omkring 1/4 "til 3/8" under ydersiden. Hvis de er for langt under overfladen, vil lyset spilde ind i græskarets kød, og hver pixel vil være mindre tydelig.

Tilføj et lag plastfolie til toppen af joysticket, mens selve skaftet stikker igennem. Dette forhindrer i det mindste noget fugt i at trænge ind i det. Fastgør joysticket med 1/2 skruer i gipsvægsankre. Skruerne, der fulgte med ankre, vil være for lange og ville stikke igennem græskaret.

Trin 10: Spil spillet

At spille spillet
At spille spillet

Læg en skål eller en plastikbeholder til mad i bunden af græskarret for at forhindre, at dinglende elektronik berører bunden. Sæt joysticket i din Arduino, LED -rygsækkene i Arduino og LED -matricerne i rygsækkene. Tilslut en strømkilde til din Arduino. Spil dig nu nogle Pumpktris! Ideer til yderligere udforskning I stedet for at montere joysticket på toppen af græskaret med lysdioderne, kan du bruge et fjernt græskar, enten trådløst eller med et kabel dekoreret til at ligne en vinstok. I stedet for et spil kan du vise rullende meddelelser på din jack-o-lantern. Du vil måske montere matricerne sidelæns (16 bredde ved 8 høje) eller endda kun bruge en matrix. Det uundgåelige henfald Dit græskar vil i sidste ende begynde at rådne og spire skimmel og svamp. Dette kan være farligt for dit helbred og kan føre til fejl i din elektronik. Det er bedst at trække al din elektronik ud, når du ser nogen vækst på eller i græskarret, så du kan genbruge dem senere uden at kræve en Haz-Mat-oprydning.

Halloween dekorations konkurrence
Halloween dekorations konkurrence
Halloween dekorations konkurrence
Halloween dekorations konkurrence

Anden pris i Halloween -dekorationskonkurrencen

Anbefalede: