Sommario:

Pumpktris - la zucca di Tetris: 10 passaggi (con immagini)
Pumpktris - la zucca di Tetris: 10 passaggi (con immagini)

Video: Pumpktris - la zucca di Tetris: 10 passaggi (con immagini)

Video: Pumpktris - la zucca di Tetris: 10 passaggi (con immagini)
Video: Pumpktris 2024, Dicembre
Anonim
Pumpktris - la zucca di Tetris
Pumpktris - la zucca di Tetris

Chi vuole facce sorridenti e candele quando puoi avere una zucca interattiva questo Halloween? Gioca al tuo gioco di impilamento di blocchi preferito su una griglia 8x16 scolpita nella faccia della zucca, illuminata da LED e utilizzando lo stelo come controller. Questo è un progetto moderatamente avanzato e richiede esperienza di saldatura e programmazione in ambiente Arduino. Lavorerai con la materia organica e tutte le sue peculiarità, quindi potrebbe essere necessario adattare le misurazioni per adattarle alla zucca che stai utilizzando.

Passaggio 1: materiali necessari

Materiali richiesti
Materiali richiesti
Materiali richiesti
Materiali richiesti

Per costruire il tuo Pumpktris avrai bisogno di quanto segue:Componenti

  • 128 LED ambra da 5 mm (li ho usati da Mouser) Acquistane un po' di più per coprire eventuali errori o test. Ho 140. L'ambra ricorda molto da vicino la fiamma che sarebbe all'interno di una tradizionale lanterna jack, ma sei libero di usare qualsiasi colore che ti piace.
  • Microcontrollore Arduino
  • Guaina termorestringente da 1/16" (11 piedi o 256 pezzi lunghi 1/2")
  • Joystick arcade con maniglia rimovibile (questo di SparkFun ha funzionato bene per me)
  • 4 tasselli per cartongesso in nylon n. 6 Questo non è il tipo con le levette, ma il tipo che sembra viti con filettature profonde
  • 4 viti lunghe mezzo pollice della stessa dimensione e tipo fornite con gli ancoraggi per cartongesso. Quelli che vengono con le ancore saranno troppo lunghi.
  • Bullone da 6 mm x 50 mm (o qualsiasi dimensione corrisponda al supporto per la maniglia del joystick)
  • Dado di accoppiamento da 6 mm (o qualsiasi dimensione necessaria per abbinare il bullone sopra) Un dado di accoppiamento sembra un dado normale, ma è lungo circa un pollice e viene utilizzato per unire due bulloni o pezzi di barra filettata.

E, ultimo ma non meno importante, avrai bisogno di 1 zucca. Ne hai bisogno solo uno, ma te ne consiglio due in modo da averne uno che puoi usare per esercitarti a forare e tagliare. La tua matrice LED coprirà un'area di circa 4 "di larghezza per 8" di altezza, quindi vuoi una zucca con un'area di dimensioni il più possibile liscia e piatta in modo che la tua matrice non si avvolga troppo. Potresti usare una zucca di gommapiuma, ma dov'è la magia in questo? Non posso parlare delle tecniche di intaglio necessarie su una zucca di gommapiuma. Strumenti e materiali di consumo

  • Saldatore
  • Saldare
  • Pinza tagliafili
  • Spelafili
  • Trapano elettrico
  • seghetto
  • Coltello X-Acto
  • Punta da trapano da 13/64"
  • Punta da trapano da 1-1/8" (ho usato una punta Forstner, ma potrebbe funzionare anche una punta a vanga)
  • Pannello con anima in schiuma da 1/4"

Passaggio 2: costruzione di una matrice LED

Costruire una matrice LED
Costruire una matrice LED
Costruire una matrice LED
Costruire una matrice LED
Costruire una matrice LED
Costruire una matrice LED

Ogni matrice è composta da 64 LED e 128 pezzi di filo. È più semplice tagliare e spellare tutti i fili per ogni matrice in anticipo. Tagliare 112 in pezzi da 2,5 pollici e togliere 1/4 di pollice da ciascuna estremità. Taglia i restanti 16 in pezzi da 12 e spella entrambe le estremità. Più coerente è possibile ottenere le lunghezze del filo, più facile sarà la costruzione e l'installazione.

Inizierai costruendo sedici daisy-chain a otto segmenti di fili, ciascuno con 7 fili corti e 1 lungo. Torcere ciascuna estremità insieme al pezzo successivo e saldare. Per collegare i fili ai LED avrai bisogno di una maschera per tenere i LED. Disegna una griglia 8x8 con una distanza di mezzo pollice su un pezzo di cartone con anima in schiuma spessa 1/4", quindi usa un punteruolo per praticare un foro di diametro leggermente più piccolo del LED in ogni intersezione. Avrai 64 fori quando il gioco è fatto. Nella fila superiore di fori inserisci 8 LED. Il nucleo in schiuma si allungherà per adattarsi ai LED e li terrà saldamente. Allinea i LED in modo che la gamba più lunga, il cavo dell'anodo, sia rivolta verso di te su ciascuno. Ricontrolla, perché se ne sbagli uno, la matrice non funzionerà. Aggancia ogni cavo dell'anodo a circa 1/4 "di lunghezza e saldalo con una saldatura per facilitare il collegamento dei fili. Taglia 8 pezzi di tubo termoretraibile in segmenti da 1/2". Fai scorrere un pezzo di tubo sul primo collegamento del cavo, spingilo indietro in modo che non sia influenzato dal calore della saldatura, quindi salda il collegamento del cavo all'anodo del LED. Far scorrere il tubo sulla connessione una volta che si è raffreddata. Continuare con il LED successivo, ripetendo altre sette volte il processo di scorrimento su un pezzo di tubo, saldatura della connessione, quindi abbassare il tubo sopra il giunto. set di otto led tutti collegati tra loro, rimuoverli dalla dima e ripetere ancora per altre sette righe, assicurandosi di effettuare tutti i collegamenti al cavo anodico di ogni led, si può utilizzare qualsiasi riga della dima sia più facile da raggiungere, dato che stai lavorando solo con uno alla volta. Dopo che tutte e otto le righe sono state saldate, è il momento di unire le colonne e creare una matrice. Inserisci tutte le stringhe di LED nella maschera che hai creato. Tieni il filo lungo sullo stesso lato di ogni stringa Tagliare e stagnare il cavo del catodo di ciascun LED nella prima col uhm, proprio come hai fatto per costruire la stringa. Prendi un'altra catena di fili e ripeti il processo di saldatura ai LED, solo che questa volta la colleghi a 90 gradi al primo set di fili che hai fatto. Tieni il filo lungo sullo stesso lato della matrice. Quando completi ogni colonna, rimuovila dalla maschera con anima in schiuma e piegala per consentire l'accesso alla colonna successiva. Quando hai finito avrai 64 LED uniti in 8 righe e 8 colonne. Sfortunatamente, devi ripetere il processo di nuovo per la seconda matrice. Se hai bisogno di una pausa, salta ai passaggi 3, 4 e 5 per lavorare sul codice, quindi torna a questo.

Passaggio 3: controllo dei LED

Controllo dei LED
Controllo dei LED
Controllo dei LED
Controllo dei LED
Controllo dei LED
Controllo dei LED
Controllo dei LED
Controllo dei LED

Le matrici LED che hai realizzato saranno controllate da due Mini 8x8 LED Matrix Backpack di Adafruit. Ogni controller ti consente di pilotare 64 LED con solo due fili da Arduino e puoi concatenare più controller insieme su quegli stessi due fili. Seguire le indicazioni fornite con il LED Matrix Backpack per saldare l'intestazione di alimentazione/dati/clock a 4 pin. Quindi, invece di saldare la matrice LED fornita con essa, saldare due file di connettori femmina allo zaino. Collega la mini matrice LED inclusa nelle intestazioni. Collega la matrice a una breadboard e collegala come segue:

  • Collega il pin CLK dello zaino al pin analogico 5 di Arduino.
  • Collega il pin DAT al pin analogico 4 di Arduino.
  • Collega GND al pin di terra dell'Arduino.
  • Collega VCC+ all'alimentazione 5v.

Scarica la libreria Adafruit LED Backpack e le librerie Adafruit GFX e installale sul tuo computer copiandole nella cartella "librerie" della cartella degli sketch Arduino del tuo computer. Carica il file "matrix8x8" sul tuo Arduino e verifica che lo zaino LED funzioni. I pin della matrice LED potrebbero non avere un buon contatto nelle intestazioni femminili, quindi potrebbe essere necessario muoverlo o rimuoverlo parzialmente per stabilire un contatto e consentire a tutte le righe e le colonne di illuminarsi. Ripeti il processo con il secondo zaino LED, ma questa volta dovrai impostare un nuovo indirizzo saldando un ponticello attraverso i pad A0 sullo zaino. Esegui nuovamente il codice "matrix8x8", ma cambia la riga "matrix.begin(0x70)" in "matrix.begin(0x71)" in modo che il codice indirizzi il nuovo zaino LED.

Passaggio 4: collegamento del joystick

Collegamento del joystick
Collegamento del joystick
Collegamento del joystick
Collegamento del joystick

Il tuo joystick dovrebbe avere quattro interruttori con due terminali ciascuno. Quando muovi il joystick a destra, attiva l'interruttore a sinistra, quando lo sposti verso il basso attiva l'interruttore in alto e così via. Su un terminale di ogni interruttore, saldare un filo da 3". Attorcigliare l'altra estremità di tutti e quattro questi fili e saldarli a un filo da 12". Questo è il terreno comune per tutti e quattro gli interruttori. Saldare un cavo da 12" al terminale rimanente di ciascun interruttore, quindi collegarli come segue:

  • Collega l'interruttore in basso (attivato quando spingi verso l'alto) al pin analogico 0 su Arduino.
  • Collega l'interruttore sinistro (attivato quando premi a destra) al pin analogico 1 su Arduino.
  • Collegare l'interruttore superiore (attivato quando si preme verso il basso) al pin analogico 2 di Arduino.
  • Collega l'interruttore destro (attivato quando premi a sinistra) al pin analogico 3 su Arduino.
  • Collega il filo di terra comune al pin di terra dell'Arduino.

Passaggio 5: programmazione del gioco

Programmare il gioco
Programmare il gioco

Scarica il Pumpktris.ino.zip allegato, decomprimilo e apri il file nell'ambiente di sviluppo Arduino. Compilalo e caricalo sul tuo Arduino. Ora dovresti essere in grado di riprodurre sulla mini matrice LED che hai impostato nel passaggio precedente. Ho cercato di commentare il codice il più possibile, ma ecco una panoramica generale dei processi principali: Descrivere le forme Ci sono sette tetromini, ciascuno con 4 pixel e ciascuno con quattro possibili rotazioni. Archiviamo tutto questo in un array multidimensionale: la prima dimensione composta dalle sette forme, la seconda dimensione contenente le quattro rotazioni per ogni forma, la terza contenente quattro descrizioni di pixel che consistono ciascuna in una coordinata X e Y. Ad esempio, questo descrive la forma a "T":/* T */ { /* angolo 0 */ { {0, 1}, {1, 1}, {2, 1}, {1, 2} }, / * angolo 90 */ { {1, 0}, {1, 1}, {2, 1}, {1, 2} }, /* angolo 180 */ { {1, 0}, {0, 1}, {1, 1}, {2, 1} }, /* angolo 270 */ { {1, 0}, {0, 1}, {1, 1}, {1, 2} } }

Tracciamento del brano attivo Per tenere traccia del brano attualmente in esecuzione, il programma mantiene una variabile activePiece. Questo è l'indice della forma attiva nel livello più alto dell'array. Mantiene anche una variabile di rotazione contenente l'indice della rotazione corrente. Una variabile xOffset tiene traccia di quanto a sinistra oa destra (0-7) è ogni pezzo e yOffset tiene traccia di quanto in basso (0-15) è caduto il tabellone. Per disegnare il pezzo attivo il programma aggiunge i valori di offset X e Y alle coordinate X e Y di ciascun pixel estratto dalla rotazione corrente del pezzo selezionato. Tracciamento dei pezzi fissi Il programma utilizza un array di 16 byte per tenere traccia dei pezzi fissi pezzi, con ogni byte che rappresenta una riga. Ad esempio, l'array di seguito rappresenterebbe una forma a L situata al centro delle due righe inferiori (come indicato dagli 1 negli ultimi due byte): byte sampleGrid[16]= { B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00100000, B00111000 }; Rilevamento collisione Quando si tenta di spostare il pezzo attivo, il programma verifica prima la nuova posizione rispetto alla matrice di pezzi fissi. Se non ci sono collisioni, lo spostamento è consentito e la matrice viene ridisegnata. Se viene rilevata una collisione durante il tentativo di spostarsi a sinistra, a destra o di ruotare, l'azione è vietata. Se viene rilevata una collisione durante il tentativo di far cadere un pezzo, il pezzo si fissa nella sua posizione e viene aggiunto all'array di pixel fissi. Lancio automatico dei pezzi Il ritmo del gioco è controllato dalle variabili GravityTrigger e StepCounter. Ogni ciclo del programma incrementa stepCounter, e ogni volta che stepCounter raggiunge il conteggio memorizzato in GravityTrigger, abbassa di un livello il pezzo attivo. Man mano che il gioco procede, GravityTrigger viene diminuito in modo che il pezzo attivo cada sempre più frequentemente fino a quando non cade in ogni ciclo del programma. Ogni volta che un pezzo attivo viene fissato alla griglia, il programma controlla i byte/righe interi (B11111111). Se ne trova, li spegne e li riaccende tre volte, quindi li rimuove e lascia cadere le righe sopra per riempire il vuoto. Risoluzione dei problemi Se i pezzi non cadono dall'alto verso il basso, ma vanno da un lato all'altro, cambiare valore passato nelle righe "matrixTop.setRotation(1);" e/o "matrixBottom.setRotation(1);" nel ciclo "setup()". Se i pezzi iniziano nella matrice sbagliata, cambia la posizione fisica di ogni matrice o inverti gli indirizzi dichiarati in "matrixTop.begin(0x70);" e "matrixBottom.begin(0x71);" righe del ciclo "setup()". Se alcune righe o colonne non si illuminano, muovi la mini matrice LED nelle intestazioni femminili. Potrebbero non stabilire un buon contatto.

Passaggio 6: collegamento della matrice LED

Collegamento della matrice LED
Collegamento della matrice LED
Collegamento della matrice LED
Collegamento della matrice LED
Collegamento della matrice LED
Collegamento della matrice LED

Quando tutto il codice e i controlli sono stati verificati come funzionanti con le mini matrici LED, è il momento di collegare le grandi matrici LED che hai saldato da solo.

Potresti collegare ciascun filo alle intestazioni sullo zaino della matrice singolarmente, ma probabilmente dovrai collegare e scollegare molto, quindi potrebbe diventare una vera seccatura. Invece vuoi saldare ogni filo su una striscia di intestazione maschio e collegarla allo zaino della matrice. Ho montato le strisce di intestazione su un pezzo di scheda di prototipazione in modo da poter collegare e scollegare tutti e 16 i pin insieme. Le righe 1-4 si collegano ai pin 1-4 sullo zaino della matrice (la numerazione dei pin inizia in alto a sinistra mentre guardi in basso sullo zaino con i pin di alimentazione/terra/dati/orologio a 4 pin in alto). Le colonne 1-4 si collegano ai pin 5-8. La numerazione dei pin si avvolge in modo che il pin 9 sia in basso a destra. Le righe 5-8 si collegano ai pin 12-9 e le colonne 5-8 si collegano ai pin 16-13. Vedere il diagramma per maggiore chiarezza. Collega ciascuna matrice in uno zaino ed esegui lo stesso programma "matrix8x8" che hai eseguito per le mini matrici LED nel passaggio 4. Se funzionano, puoi caricare il programma di gioco. Se non funziona, controlla che le righe e le colonne della matrice LED grande siano inserite nei pin corretti dello zaino. Il montaggio della matrice LED nella maschera con nucleo in schiuma che hai realizzato per l'assemblaggio può semplificare il test dell'intero sistema.

Passaggio 7: intagliare la zucca

Intaglio della zucca
Intaglio della zucca
Intaglio della zucca
Intaglio della zucca
Intaglio della zucca
Intaglio della zucca

Non intagliare la zucca finché tutti i tuoi dispositivi elettronici non funzionano. Una zucca intagliata ha una durata di conservazione limitata e se prima la intagli e poi trascorri 2 giorni sull'elettronica, sono due giorni di divertimento che hai perso.

Trova il lato più piatto della zucca in modo che il pannello LED non si avvolga troppo, quindi taglia un'apertura sul lato opposto. Sii generoso; avrai bisogno di spazio per mettere le mani lì dentro per lavorare. Non taglierai la parte superiore come su una zucca tradizionale perché deve essere lasciata intatta per il joystick. La zucca e l'elettronica non sono i migliori amici, quindi pulisci bene l'interno. Per il Pumpktris più bello, vuoi che la tua griglia di LED sia dritta e ben allineata con la zucca. Viene allegato un PDF con spaziatura 8x16, a mezzo pollice di distanza. Stampa questo (o creane uno con la tua spaziatura), taglia lungo i bordi e fissalo con del nastro adesivo sulla parte anteriore della zucca. Assicurati che sia dritto su e giù. Con un chiodo, uno stuzzicadenti o un altro strumento simile, fai un foro pilota al centro di ciascun LED segnato sulla carta. Non è consigliabile perforare direttamente la carta perché è probabile che si sposti o si strappi. Una volta che tutti i fori pilota sono stati praticati, rimuovi la sagoma di carta e usa una punta da 13/64" nel tuo trapano elettrico per praticare ogni foro. Non allineare il trapano perpendicolare alla faccia della zucca! Se lo fai, il la curvatura della zucca può causare l'incontro di fori distanziati di mezzo pollice all'esterno all'interno e sarà difficile inserire i LED. Cerca invece di mantenere tutti i fori paralleli. Quando tutti i fori sono stati praticati, usa il tuo coltello X-Acto per tagliare un "pixel" quadrato attorno a ciascun foro. Angola il coltello verso il centro di ogni foro e lascia circa 1/8 "tra i pixel. Ti suggerisco di acquistare una zucca pratica e di usarla per perfezionare la tua tecnica di perforazione e pixel-carving. Padroneggia lì prima di rischiare di rovinare la zucca perfetta che hai trovato per il prodotto finito.

Passaggio 8: montaggio dello stelo sul joystick

Montaggio dell'attacco manubrio sul joystick
Montaggio dell'attacco manubrio sul joystick
Montaggio dell'attacco manubrio sul joystick
Montaggio dell'attacco manubrio sul joystick
Montaggio dell'attacco manubrio sul joystick
Montaggio dell'attacco manubrio sul joystick
Montaggio dello stelo sul joystick
Montaggio dello stelo sul joystick

Ora adatterai lo stelo per essere usato come joystick per controllare il gioco.

Taglia il gambo il più vicino possibile alla base. Se il taglio non è liscio e pulito, usa un blocco di levigatura per appiattirlo. Praticare un foro da 1-1/8 "diritto attraverso la base dello stelo e nella zucca. Svitare la sfera del joystick e allineare l'asta con il centro del foro dall'interno della zucca. Assicurarsi che la parte anteriore del il joystick è quadrato con la faccia anteriore della zucca, quando giochi vuoi spingere a sinistra e a destra per spostare i pezzi, non ad angolo. Quando è centrato e quadrato, usa un chiodo o uno stuzzicadenti per fare dei buchi all'interno la zucca sopra i fori di montaggio nella base del joystick. Rimuovere il joystick. Con le tronchesi, tagliare le punte espandibili degli ancoraggi per cartongesso in modo che siano più corte dello spessore della pelle della zucca. Avvitare questi ancoraggi per cartongesso accorciati e arrotondati nei fori pilota che hai fatto. I dettagli della parte successiva dipenderanno dal joystick che hai acquistato. Quello che ho usato da SparkFun aveva un attacco da 6 mm per l'impugnatura a sfera che verrà sostituito dallo stelo. Se il tuo joystick è diverso, utilizzare qualsiasi dimensione di dadi e bulloni corrispondono centro dello stelo e praticare un foro da 13/64 "(la stessa dimensione che hai usato per i fori LED, per coincidenza) di circa un pollice dritto nello stelo. Questo sarebbe un buon passo per testare la tua zucca pratica, per assicurarti che il bullone si avvita saldamente nel foro. Tagliare la testa di un bullone da 6 mm x 50 mm con un seghetto. Metti della colla epossidica o per legno sui filetti vicino all'estremità tagliata della vite e avvitala nello stelo. Ne vuoi circa un pollice nello stelo e un pollice all'esterno. Avvitare il dado di accoppiamento da 6 mm sull'albero del joystick, ma non montare ancora il joystick nella zucca.

Passaggio 9: posizionamento del LED e del joystick

Posizionamento LED e joystick
Posizionamento LED e joystick

Dall'interno della zucca, inserisci i LED fila per fila nei loro fori fino a quando le loro basi non sono a filo con la superficie interna della zucca. Quando tutti sono a posto, usa uno spiedino di bambù per spingerli più in profondità verso la parte anteriore. Ho lasciato il loro bordo anteriore seduto a circa 1/4 "a 3/8" sotto la superficie esterna. Se sono troppo al di sotto della superficie, la luce si riverserà nella carne della zucca e ogni pixel sarà meno distinto.

Aggiungi uno strato di pellicola trasparente sulla parte superiore del joystick, con l'asta stessa che fa capolino. Ciò manterrà almeno un po' di umidità dall'infiltrarsi al suo interno. Attacca il joystick con viti da 1/2 negli ancoraggi del muro a secco. Le viti fornite con gli ancoraggi saranno troppo lunghe e penetrerebbero nella zucca.

Passaggio 10: giocare

Giocare
Giocare

Metti una ciotola o un contenitore di plastica per alimenti sul fondo della zucca per evitare che i dispositivi elettronici penzolanti tocchino il fondo. Collega il joystick al tuo Arduino, gli zaini LED nell'Arduino e le matrici LED negli zaini. Collega una fonte di alimentazione al tuo Arduino. Ora gioca a Pumpktris! Idee per ulteriori esplorazioni Invece di montare il joystick sulla parte superiore della zucca con i LED, puoi usare una zucca remota, in modalità wireless o con un cavo decorato per sembrare una liana. Invece di un gioco, potresti visualizzare messaggi a scorrimento sul tuo jack-o-lantern. Potresti voler montare le matrici lateralmente (16 di larghezza per 8 di altezza) o anche utilizzare solo una matrice. L'inevitabile decadimento La tua zucca alla fine inizierà a marcire ea far germogliare muffe e funghi. Questo potrebbe essere pericoloso per la tua salute e potrebbe causare problemi ai tuoi dispositivi elettronici. È meglio estrarre tutti i tuoi dispositivi elettronici una volta che vedi una crescita sopra o all'interno della zucca, in modo da poterli riutilizzare in seguito senza richiedere una pulizia Haz-Mat.

Concorso di decorazioni di Halloween
Concorso di decorazioni di Halloween
Concorso di decorazioni di Halloween
Concorso di decorazioni di Halloween

Secondo premio al concorso di decorazioni di Halloween

Consigliato: