Cuprins:

Pumpktris - dovleacul Tetris: 10 pași (cu imagini)
Pumpktris - dovleacul Tetris: 10 pași (cu imagini)

Video: Pumpktris - dovleacul Tetris: 10 pași (cu imagini)

Video: Pumpktris - dovleacul Tetris: 10 pași (cu imagini)
Video: Pumpktris (Tetris) on Arduino Uno 2024, Iulie
Anonim
Pumpktris - dovleacul Tetris
Pumpktris - dovleacul Tetris

Cine vrea fețe și lumânări rânjitoare când poți avea un dovleac interactiv în acest Halloween? Joacă jocul tău preferat de blocare pe o grilă de 8x16 sculptată în fața tărtăcuței, luminată de LED-uri și folosind tija ca controler. Acesta este un proiect moderat avansat și necesită experiență de lipire și programare în mediul Arduino. Veți lucra cu materie organică și toate ciudățenile sale inerente, astfel încât măsurătorile ar putea fi necesare pentru a se potrivi dovleac pe care îl utilizați.

Pasul 1: Materiale necesare

Materiale necesare
Materiale necesare
Materiale necesare
Materiale necesare

Pentru a vă construi propriul Pumpktris veți avea nevoie de următoarele: Componente

  • 128 LED-uri de chihlimbar de 5 mm (le-am folosit de la Mouser) Cumpărați ceva suplimentar pentru a acoperi orice greșeli sau teste. Am 140. Chihlimbarul seamănă cel mai mult cu flacăra care ar fi în interiorul unui felinar tradițional, dar ești liber să folosești orice culoare îți place.
  • Microcontroler Arduino
  • Tuburi termocontractabile de 1/16 "(bucăți lungi de 11 picioare sau 256 1/2")
  • Joystick arcade cu mâner detașabil (acesta de la SparkFun a funcționat bine pentru mine)
  • 4 # 6 ancore din nailon pentru gips-carton Nu este genul cu comutatoarele, ci genul care arată ca niște șuruburi cu fire adânci
  • 4 șuruburi lungi de jumătate de inci de aceeași dimensiune și tip care au venit cu ancorele de gips-carton. Cele care vin cu ancorele vor fi prea lungi.
  • Șurub de 6 mm x 50 mm (sau orice dimensiune se potrivește cu montura pentru mânerul joystick-ului)
  • Piulița de cuplare de 6 mm (sau orice dimensiune este necesară pentru a se potrivi cu șurubul de mai sus) O piuliță de cuplare arată ca o piuliță obișnuită, dar are o lungime de aproximativ un centimetru și este utilizată pentru a îmbina două șuruburi sau bucăți de tijă filetată.

Și nu în ultimul rând, veți avea nevoie de 1 dovleac. Aveți nevoie doar de unul, dar vă recomand două, astfel încât să aveți unul pe care să îl puteți folosi pentru a practica găurirea și tăierea. Matricea dvs. LED va acoperi o zonă de aproximativ 4 "lățime pe 8" înălțime, așa că doriți un dovleac cu o suprafață cât mai netedă și plană posibil, astfel încât matricea dvs. să nu se înfășoare prea mult. Ai putea folosi un dovleac din spumă, dar unde este magia în asta? Nu pot vorbi cu tehnicile de sculptură necesare pe un dovleac din spumă. Instrumente și consumabile

  • Ciocan de lipit
  • Solder
  • Freze de sârmă
  • Decapanti de sârmă
  • Burghiu electric
  • Ferăstrău
  • Cuțit X-Acto
  • Burghie de 13/64"
  • Burghiu de 1-1 / 8 "(am folosit un bit Forstner, dar ar putea funcționa și un bit)
  • Placă de miez de 1/4"

Pasul 2: Construirea unei matrice LED

Construirea unei matrice LED
Construirea unei matrice LED
Construirea unei matrice LED
Construirea unei matrice LED
Construirea unei matrice LED
Construirea unei matrice LED

Fiecare matrice este realizată din 64 de LED-uri și 128 de bucăți de sârmă. Este mai ușor să tăiați și să dezbrăcați toate firele pentru fiecare matrice înainte de timp. Tăiați 112 în bucăți de 2,5 "și îndepărtați 1/4" de fiecare capăt. Tăiați restul de 16 bucăți de 12 "și dezbrăcați ambele capete. Cu cât puteți obține lungimea firelor, cu atât va fi mai ușor să construiți și să instalați.

Veți începe prin construirea a șaisprezece lanțuri de margarete cu opt segmente, fiecare cu 7 fire scurte și 1 lungă. Răsuciți fiecare capăt împreună cu următoarea piesă și lipiți. Pentru a conecta firele la LED-uri, veți avea nevoie de un dispozitiv pentru a ține LED-urile. Desenați o grilă de 8x8 cu o distanță de jumătate de centimetru pe o bucată de placă groasă de 1/4 "cu spumă, apoi folosiți un vârf pentru a introduce o gaură puțin mai mică în diametru decât LED-ul la fiecare intersecție. Veți avea 64 de găuri când ați terminat. În rândul superior de găuri introduceți 8 LED-uri. Miezul din spumă se va întinde pentru a se potrivi cu LED-urile și le va ține strâns. Aliniați LED-urile astfel încât piciorul mai lung - cablul anodului - să fie orientat spre dvs. pe fiecare. Verificați de două ori, pentru că, dacă greșiți, matricea nu va funcționa. Prindeți fiecare cablu anodic de aproximativ 1/4 "și lăsați-l cu lipit pentru a facilita conectarea firelor. Tăiați 8 bucăți de tub termocontractibil în segmente de 1/2 ". Glisați o bucată de tub peste prima conexiune de sârmă, împingeți-o înapoi, astfel încât să nu fie afectată de căldura de lipit, apoi lipiți conexiunea de sârmă la anodul LED. Glisați tubul în jos peste conexiune odată ce s-a răcit. Continuați cu următorul LED, repetând încă de șapte ori procesul de alunecare pe o bucată de tub, lipind conexiunea, apoi coborând tubul peste articulație. Când aveți un set de opt LED-uri toate conectate între ele, scoateți-le din jig și repetați din nou pentru încă șapte rânduri, asigurându-vă că faceți toate conexiunile la cablul anodic al fiecărui LED. Puteți utiliza oricare rând al jigului care este cel mai ușor de atins, deoarece lucrați doar unul câte unul. După ce toate cele opt rânduri au fost lipite, este timpul să uniți coloanele și să faceți o matrice. Introduceți toate șirurile de LED-uri în jig-ul pe care l-ați făcut. Păstrați firul lung pe același laterală a fiecărui șir. Tăiați și făcuți firul catodic al fiecărui LED din prima col umn, la fel cum ai făcut-o pentru a construi șirul. Luați un alt lanț de sârmă și repetați procesul de lipire pe LED-uri, doar că de data aceasta îl conectați la 90 de grade la primul set de fire pe care l-ați făcut. Păstrați firul lung pe aceeași parte a matricei. Pe măsură ce completați fiecare coloană, scoateți-o din jigul cu miez de spumă și pliați-o din cale pentru a oferi acces la coloana următoare. Când ați terminat, veți avea 64 de LED-uri unite în 8 rânduri și 8 coloane. Din păcate, trebuie să repetați procesul din nou pentru a doua matrice. Dacă aveți nevoie de o pauză, treceți la pașii 3, 4 și 5 pentru a lucra la cod, apoi reveniți la acest lucru.

Pasul 3: Controlul LED-urilor

Controlul LED-urilor
Controlul LED-urilor
Controlul LED-urilor
Controlul LED-urilor
Controlul LED-urilor
Controlul LED-urilor
Controlul LED-urilor
Controlul LED-urilor

Matricile LED pe care le-ați realizat vor fi controlate de două rucsaci Mini Matrix LED 8x8 de la Adafruit. Fiecare controler vă permite să conduceți 64 de LED-uri cu doar două fire de la Arduino și puteți conecta mai multe controlere împreună pe aceleași două fire. Urmați instrucțiunile care vin cu rucsacul cu matrice LED pentru a lipi pe antetul de alimentare / date / ceas cu 4 pini. Apoi, în loc să lipiți pe matricea LED care vine cu acesta, lipiți două rânduri de anteturi feminine pe rucsac. Conectați mini matricea LED inclusă în anteturi. Conectați matricea la o placă de calcul și conectați-o după cum urmează:

  • Conectați pinul CLK din Rucsac la pinul analogic 5 de pe Arduino.
  • Conectați pinul DAT la pinul analogic 4 de pe Arduino.
  • Conectați GND la pinul de la sol de pe Arduino.
  • Conectați VCC + la puterea de 5v.

Descărcați biblioteca Adafruit LED Backpack și bibliotecile Adafruit GFX și instalați-le pe computerul dvs. copiind fiecare în folderul „biblioteci” din dosarul de schițe Arduino al computerului. Încărcați fișierul „matrix8x8” pe Arduino și verificați dacă rucsacul LED funcționează. Este posibil ca știfturile matricei LED să nu facă un contact bun în antetele feminine, deci este posibil să trebuiască să le mișcați sau să le eliminați parțial pentru a face contact și pentru a permite luminarea tuturor rândurilor și coloanelor. Repetați procesul cu cel de-al doilea rucsac cu LED-uri, dar de această dată va trebui să setați o nouă adresă pentru el prin lipirea unui jumper peste tampoanele A0 de pe rucsac. Rulați din nou codul "matrix8x8", dar schimbați linia "matrix.begin (0x70)" la "matrix.begin (0x71)", astfel încât codul să se adreseze noului rucsac LED.

Pasul 4: Conectarea joystick-ului

Conectarea joystick-ului
Conectarea joystick-ului
Conectarea joystick-ului
Conectarea joystick-ului

Joystick-ul dvs. ar trebui să aibă patru comutatoare cu două terminale fiecare. Când vă deplasați joystick-ul spre dreapta, acesta declanșează comutatorul din stânga, când îl mutați în jos, declanșează comutatorul de sus și așa mai departe. Pe un terminal al fiecărui comutator, lipiți un fir de 3 ". Răsuciți celălalt capăt al tuturor celor patru fire împreună și lipiți-le pe un fir de 12". Acesta este terenul comun pentru toate cele patru comutatoare. Lipiți un fir de 12 "la terminalul rămas al fiecărui comutator, apoi conectați-le după cum urmează:

  • Conectați comutatorul inferior (activat când apăsați în sus) la pinul analogic 0 de pe Arduino.
  • Conectați comutatorul din stânga (activat când apăsați spre dreapta) la pinul analogic 1 de pe Arduino.
  • Conectați comutatorul de sus (activat când apăsați în jos) la pinul analogic 2 de pe Arduino.
  • Conectați comutatorul din dreapta (activat când apăsați la stânga) la pinul analogic 3 de pe Arduino.
  • Conectați firul de masă comun la pinul de masă de pe Arduino.

Pasul 5: Programarea jocului

Programarea jocului
Programarea jocului

Descărcați Pumpktris.ino.zip atașat, dezarhivați-l și deschideți fișierul în mediul de dezvoltare Arduino. Compilați-l și încărcați-l pe Arduino. Acum ar trebui să puteți juca pe mini matricea LED pe care ați configurat-o în pasul anterior. Am încercat să comentez codul cât mai mult posibil, dar iată o prezentare generală a principalelor procese: Descrierea formelor Există șapte tetrominoși, fiecare cu 4 pixeli și fiecare cu patru rotații posibile. Stocăm toate acestea într-o matrice multidimensională: prima dimensiune constând din cele șapte forme, a doua dimensiune conținând cele patru rotații pentru fiecare formă, a treia conținând patru descrieri de pixeli care constau fiecare dintr-o coordonată X și Y. De exemplu, aceasta descrie forma „T”: / * T * / {/ * unghiul 0 * / {{0, 1}, {1, 1}, {2, 1}, {1, 2}}, / * unghiul 90 * / {{1, 0}, {1, 1}, {2, 1}, {1, 2}}, / * unghiul 180 * / {{1, 0}, {0, 1}, {1, 1}, {2, 1}}, / * unghi 270 * / {{1, 0}, {0, 1}, {1, 1}, {1, 2}}}

Urmărirea piesei active Pentru a urmări piesa aflată în joc, programul menține o variabilă activePiece. Acesta este indicele formei active la cel mai înalt nivel al matricei. De asemenea, păstrează o variabilă de rotație care conține indicele rotației curente. O variabilă xOffset urmărește cât de departe este stânga sau dreapta (0-7) fiecare piesă, iar yOffset urmărește cât de jos (0-15) este scăzută placa. Pentru a desena piesa activă, programul adaugă valorile de decalare X și Y la coordonatele X și Y ale fiecărui pixel extras din rotația curentă a piesei selectate. Urmărirea pieselor fixe Programul folosește o matrice de 16 octeți pentru a ține evidența celor fixe bucăți, fiecare octet reprezentând un rând. De exemplu, matricea de mai jos ar reprezenta o formă de L așezată în centrul celor două rânduri de jos (așa cum este indicat de 1 în ultimii doi octeți): octet sampleGrid [16] = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00100000, B00111000}; Detectarea coliziunilor Când se încearcă mutarea piesei active, programul verifică mai întâi noua poziție în raport cu matricea de piese fixe. Dacă nu există coliziuni, mișcarea este permisă și matricea este redesenată. Dacă se detectează o coliziune în timp ce încercați să vă deplasați la stânga, la dreapta sau la rotire, acțiunea este interzisă. Dacă se detectează o coliziune în timp ce încercați să aruncați o piesă, piesa devine fixă în poziția sa și este adăugată la matricea de pixeli fixi. Dopping piese automat. Ritmul jocului este controlat de variabilele gravityTrigger și stepCounter. Fiecare buclă a programului mărește stepCounter și de fiecare dată când stepCounter atinge numărul stocat în gravityTrigger, scade piesa activă cu un nivel. Pe măsură ce jocul progresează, gravityTrigger este scăzut, astfel încât piesa activă scade din ce în ce mai frecvent până când, în cele din urmă, cade în fiecare buclă a programului. De fiecare dată când o piesă activă este fixată pe grilă, programul verifică octeți / rânduri complete (B11111111). Dacă găsește vreunul, le aprinde intermitent de trei ori, apoi le îndepărtează și lasă rândurile de deasupra pentru a umple golul. valoare trecută în liniile "matrixTop.setRotation (1);" și / sau "matrixBottom.setRotation (1);" în bucla „setup ()”. Dacă piesele încep într-o matrice greșită, comutați locația fizică a fiecărei matrice sau inversați adresele declarate în „matrixTop.begin (0x70);” și "matrixBottom.begin (0x71);" liniile buclei "setup ()". Dacă unele rânduri sau coloane nu se aprind, mișcați mini matricea LED în antetele feminine. Este posibil să nu facă un contact bun.

Pasul 6: Conectarea matricei LED

Conectarea matricei LED
Conectarea matricei LED
Conectarea matricei LED
Conectarea matricei LED
Conectarea matricei LED
Conectarea matricei LED

Când toate codurile și comenzile au fost verificate ca funcționând cu mini matricele LED, este timpul să conectați matricile LED mari pe care le-ați lipit singur.

Puteți conecta fiecare fir la anteturile de pe rucsacul matricial individual, dar probabil veți face o mulțime de conectări și deconectări, astfel încât acest lucru să poată fi o adevărată complicație. În schimb, doriți să lipiți fiecare fir pe o bandă de antet de sex masculin și să îl conectați la rucsacul matricial. Am montat benzile de antet pe o bucată de placă de prototipare, astfel încât să pot conecta și deconecta toți cei 16 pini împreună. Rândurile 1-4 se conectează la pinii 1-4 de pe rucsacul matricial (numerotarea pinilor începe din stânga sus, în timp ce priviți în jos rucsacul cu pinii de alimentare cu 4 pini / masă / date / ceas deasupra). Coloanele 1-4 se conectează la pinii 5-8. Numerotarea pinului se înfășoară astfel încât pinul 9 să fie în partea dreaptă jos. Rândurile 5-8 se conectează la pinii 12-9, iar coloanele 5-8 se conectează la pinii 16-13. Vedeți diagrama pentru mai multă claritate. Conectați fiecare matrice într-un rucsac și rulați același program "matrix8x8" pe care l-ați făcut pentru mini matricele LED la pasul 4. Dacă fiecare funcționează, atunci puteți încărca programul de joc. Dacă nu funcționează, verificați dacă rândurile și coloanele matricei LED mari sunt conectate la pinii corecți ai rucsacului. Montarea matricei LED în jigul cu miez de spumă pe care l-ați făcut pentru asamblare poate face mai ușoară testarea întregului sistem.

Pasul 7: Sculptarea dovleacului

Sculptând dovleacul
Sculptând dovleacul
Sculptând dovleacul
Sculptând dovleacul
Sculptând dovleacul
Sculptând dovleacul

Nu face nici o sculptură pe dovleac până când nu funcționează toate componentele electronice. Un dovleac sculptat are o durată de valabilitate limitată, iar dacă îl sculptați mai întâi și apoi petreceți 2 zile la electronică, sunt două zile de distracție pe care le-ați pierdut.

Găsiți cea mai plată parte a dovleacului, astfel încât panoul dvs. LED să nu se înfășoare prea mult, apoi tăiați o deschidere pe partea opusă. Fii generos; vei avea nevoie de loc pentru a pune mâna acolo la muncă. Nu veți tăia vârful ca pe un dovleac tradițional, deoarece trebuie lăsat intact pentru joystick. Dovleacul și electronica nu sunt cei mai buni prieteni, așa că curățați bine interiorul. Pentru Pumpktris cel mai frumos, doriți ca rețeaua dvs. de LED-uri să fie dreaptă și bine aliniată cu dovleacul. Este atașat un PDF cu spațiu 8x16, la o distanță de jumătate de centimetru. Imprimați acest lucru (sau creați-vă propriul spațiu), tăiați-l în jurul marginilor și lipiți-l pe partea din față a dovleacului. Asigurați-vă că este drept în sus și în jos. Cu o unghie, scobitoare sau alt instrument similar, introduceți o gaură pilot în centrul fiecărui LED marcat pe hârtie. Forarea directă prin hârtie nu este recomandată, deoarece este posibil să se deplaseze sau să se rupă. Odată ce toate găurile pilot au fost găsite, scoateți șablonul de hârtie și utilizați un bit de 13/64 "în burghiul electric pentru a găuri fiecare gaură. Nu aliniați burghiul perpendicular pe fața dovleacului! Dacă faceți acest lucru, curbura dovleacului poate face ca găurile care sunt la jumătate de centimetru depărtate în exterior să se întâlnească în interior și va fi dificil să introduceți LED-urile. În schimb, încercați să păstrați toate găurile paralele. Când toate găurile sunt găurite, folosiți cuțitul X-Acto pentru a tăia un „pixel” pătrat în jurul fiecărei găuri. Ungeți cuțitul spre centrul fiecărei găuri și lăsați aproximativ 1/8 "între pixeli. Vă sugerez să cumpărați un dovleac de practică și să îl utilizați pentru a vă perfecționa tehnica de găurire și sculptură în pixeli. Stăpâniți-l acolo înainte de a risca să distrugeți dovleacul perfect pe care l-ați găsit pentru produsul finit.

Pasul 8: Montarea tijei pe joystick

Montarea tijei pe joystick
Montarea tijei pe joystick
Montarea tijei pe joystick
Montarea tijei pe joystick
Montarea tijei pe joystick
Montarea tijei pe joystick
Montarea tijei pe joystick
Montarea tijei pe joystick

Acum veți adapta tija pentru a fi utilizată ca joystick pentru a controla jocul.

Tăiați tija cât mai aproape de bază. Dacă tăierea nu este netedă și curată, folosiți un bloc de șlefuire pentru a o aplatiza. Găuriți o gaură de 1-1 / 8 "drept prin baza tulpinii și în dovleac. Deșurubați mingea joystick-ului și aliniați arborele cu centrul găurii din interiorul dovleacului. Asigurați-vă că partea din față a joystick-ul este pătrat cu fața frontală a dovleacului - atunci când joci, vrei să împingi stânga și dreapta pentru a muta piesele, nu în unghi. Când este centrat și pătrat, folosește un cui sau o scobitoare pentru a introduce găuri în interiorul dovleacul deasupra orificiilor de montare din baza joystick-ului. Scoateți joystick-ul. Cu frezele de sârmă, tăiați vârfurile de expansiune ale ancorelor de gips-carton, astfel încât acestea să fie mai scurte decât grosimea pielii dovleacului. Înșurubați aceste ancore de gips-carton scurte și snubnose. în găurile pilot pe care le-ați făcut. Detaliile părții următoare vor depinde de joystick-ul pe care l-ați cumpărat. Cel pe care l-am folosit de la SparkFun avea un atașament de 6 mm pentru mânerul cu bilă care va fi înlocuit de tijă. Dacă joystickul dvs. este diferit, folosiți orice dimensiune se potrivesc cu piulițe și șuruburi centrul tijei și găuriți o gaură de 13/64 "(aceeași dimensiune pe care ați folosit-o pentru găurile LED, întâmplător) de aproximativ un centimetru drept în tijă. Acesta ar fi un pas bun pentru a testa pe dovleacul dvs. de practică, pentru a vă asigura că șurubul se înșurubează strâns în gaură. Tăiați capul unui șurub de 6 mm x 50 mm cu un ferăstrău. Puneți adeziv epoxidic sau de lemn pe firele de lângă capătul tăiat al șurubului și înșurubați-l în tijă. Vrei un centimetru din asta în tijă și un centimetru afară. Înșurubați piulița de cuplare de 6 mm pe arborele joystick-ului, dar nu montați încă joystick-ul în dovleac.

Pasul 9: Amplasarea LED-ului și a joystick-ului

Amplasare LED și joystick
Amplasare LED și joystick

Din interiorul dovleacului, introduceți LED-urile rând cu rând în găurile lor până când bazele lor sunt la același nivel cu suprafața interioară a dovleacului. Când toate sunt la locul lor, folosiți o frigarui de bambus pentru a le împinge mai adânc spre față. Le-am lăsat marginea frontală așezată la aproximativ 1/4 "până la 3/8" sub suprafața exterioară. Dacă sunt prea departe sub suprafață, lumina se va revărsa în carnea dovleacului și fiecare pixel va fi mai puțin distinct.

Adăugați un strat de folie de plastic în partea superioară a joystick-ului, cu arborele însuși pătrunzând. Acest lucru va împiedica cel puțin puțină umezeală să se strecoare în el. Atașați joystick-ul cu șuruburi de 1/2 în ancorele de gips-carton. Șuruburile care au venit cu ancorele vor fi prea lungi și ar pătrunde prin dovleac.

Pasul 10: Joacă jocul

Jucand jocul
Jucand jocul

Puneți un castron sau un recipient de stocare a alimentelor din plastic în partea de jos a dovleacului pentru a împiedica orice electronică atârnată să atingă fundul. Conectați joystick-ul în Arduino, rucsacurile cu LED-uri în Arduino și matricile cu LED-uri în rucsacuri. Conectați o sursă de alimentare la Arduino. Acum, jucați-vă câteva Pumpktris! Idei pentru o explorare ulterioară În loc să montați joystick-ul pe vârful dovleacului cu LED-uri, puteți folosi un dovleac la distanță, fie fără fir, fie cu un cablu decorat pentru a arăta ca o viță de vie. În loc de joc, ai putea afișa mesaje derulante pe lanterna. S-ar putea să doriți să montați matricile lateral (16 lățime pe 8 înălțime) sau chiar să utilizați doar o singură matrice. Decăderea inevitabilă Dovleacul dvs. va începe în cele din urmă să putrezească și să încolțească mucegaiul și ciuperca. Acest lucru ar putea fi periculos pentru sănătatea ta și ar putea duce la erori în electronica ta. Cel mai bine este să scoateți toate componentele electronice după ce vedeți o creștere pe sau în dovleac, astfel încât să le puteți reutiliza mai târziu fără a necesita o curățare Haz-Mat.

Concurs de decorațiuni de Halloween
Concurs de decorațiuni de Halloween
Concurs de decorațiuni de Halloween
Concurs de decorațiuni de Halloween

Premiul II la Concursul de decorațiuni de Halloween

Recomandat: