Taula de continguts:
- Pas 1: components principals
- Pas 2: llista de peces
- Pas 3: aspectes destacats de la construcció
- Pas 4: Més opcions i notes
- Pas 5: Visió general del programari
- Pas 6: joc
- Pas 7: actualitzacions, més jocs
Vídeo: Jocs Arduino amb pantalla LED en línia: 7 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
també conegut com a sistema de jocs de visualització d'escala LED.
Un Attiny-85 equipat amb maquinari i programari per jugar a videojocs amb videojocs en una pantalla LED en línia.
Té una pantalla d’escala LED de 12 LEDs multiplexada i admet fins a 6 entrades de botons i una sortida d’àudio opcional.
Està ple de 4 jocs d’habilitat, amb diversos nivells de dificultat i algunes variacions (actualitzat a 16 jocs, quan s’utilitza amb un ATMega MCU).
[Vídeo]
Pas 1: components principals
Vaig construir el meu projecte de manera modular (dos conjunts separats). Un subconjunt principal de pantalla; que es pot utilitzar per si mateix de manera autònoma. I un subconjunt d'entrada de botó. D'aquesta manera, puc tornar a utilitzar el botó o el conjunt de la pantalla en un altre projecte. Això també permet opcions de muntatge flexibles.
També vaig portar la línia de control a una capçalera del conjunt de l’escala LED per poder utilitzar un Arduino Nano (o un Uno), per desenvolupar-ne programari i utilitzar-lo en altres projectes. Un Digispark no funcionarà a causa dels altres components de la seva placa de circuit.
Vaig optar per fer servir les mateixes assignacions de pins per a l’escala LED que en instruccions anteriors per facilitar que aquells que ja tenen aquesta implementació de maquinari utilitzin el programari en aquesta instrucció, tot i que no he trobat les assignacions realitzades per a la lògica més clara a el programari.
Les dues línies entre els mòduls són PB4 i terra. Com que tot el que hi ha al conjunt de múltiples botons són resistències i commutadors, no depèn de la polaritat i la inversió de la connexió no importa.
Amb el suport de més botons es pot implementar una gran varietat de jocs (o aplicacions). Dos dels jocs d’aquest instructiu es juguen millor amb dos botons. Els quatre botons principals es poden utilitzar per accedir directament a un joc associat. Aviat implementaré un joc que depèn de l’ús dels quatre botons principals.
Aquest projecte utilitza fins a sis botons. Quatre principals BTN 1-4, Aquests botons es poden detectar individualment fins i tot si es prem dos simultanis. Els altres dos són botons especials, primer hi ha l’equivalent al botó únic en projectes anteriors que fa una connexió dura entre l’entrada PB4 a terra, anomeno BTN0 o ESC, ja que aquest commutador sempre es pot detectar i bloquejarà la detecció. de qualsevol dels altres. L'altra tecla especial és la tecla de funció, si es prem quan es prem BTN 0-4, es pot detectar i utilitzar per canviar de funcionalitat.
En aquest esbós de joc d'habilitat que faig servir:
- FncKey + Btn1 torna al mode de menú
- FncKey + Btn2 nivell de dificultat avançada (si és més alt torna al més baix)
- FncKey + Btn4 Pausa instantània (premeu qualsevol tecla per deixar de pausar)
- FncKey + Btn 0 o 3 no estan definits.
Pas 2: llista de peces
Peces necessàries
- LEDs vermells, grocs, verds i blaus com aquests
- Feu taulers de PCB amb articles similars que potser haureu de comprar un tauler més gran i talleu-lo a la mida desitjada.
- endoll de pin elements similars
- Xip Attiny-85
- resistents
- interruptors de botó utilitzats: 12x12x8mm i 6x6x6mm PCB Botons instantanis tàctils
recomanat:
- zumbador 5v, tipus actiu
- un pal de paletes
- Tira de capçalera de pin de 2,54 mm
- Eina de cablejat i embolcall de 30 ga https://www.ebay.com/itm/351798901037l’enllaç anterior és un cable que s’assembla més a 36 ga. M’agradaria saber d’aquesta oferta per 30 ga reals. filferro
Pas 3: aspectes destacats de la construcció
Al conjunt de la placa principal tinc elèctricament els altres projectes anteriors d’escala LED, que us recomanem que consulteu altres instruccions bàsiques de construcció
Tanmateix, no faig servir una resistència d'extracció exterior a l'entrada analògica A2 (PB4), també faig servir LEDs vermells, grocs, verds i blaus, en lloc de tots d'un color, cosa desitjable per a alguns dels jocs que he creat per a aquest maquinari.
Aquí teniu les tasques d'E / S tal com s'esperaven als esbossos de programari adjunts:
Projecte MCU AT-85 Uno / Nano
Nom del nom pin # brd name --------- ---- ---- --------- Vermell L1-3 PB3 2 D-11 Yel L4-6 PB0 5 D-8 Verd L7-9 PB1 6 D-9 Blau L10-11 PB2 7 D-10 Ain PB4 / A2 3 A-2 Àudio PB5 1 D-3
L’única diferència significativa és que tinc dos botons connectats a PB4. El primer va directament de PB4 a terra, però sense resistència de tracció externa (en dic BTN0). També tinc un interruptor de botó (que anomeno BTN1) connectat amb un 75Kohm en sèrie a terra. Aquesta placa principal es pot utilitzar sense la placa de muntatge "Button", però amb algunes funcions limitades.
Les resistències de limitació de corrent que passen als conjunts de LED s’han de triar en funció de la brillantor dels diferents LED de color que utilitzeu i de la brillantor que vulgueu. Vaig acabar amb 91 ohms per al conjunt vermell, 75 grocs, 430 verds i 150 ohms per al blau. Aquests valors poden semblar baixos, però recordeu que els leds es multiplexen (generalment gairebé <100% del temps)
Vaig utilitzar leds de 3 mm i els vaig separar una mica. Tenia les potes del LED a cavall d’un pal de Popsicle. D’aquesta manera, tots s’aixecaven en la mateixa quantitat i per sobre de la resta de components. Tinc la intenció, en algun moment, de muntar la unitat només amb els LED que sobresurten a través d’un marc.
Vaig triar embolicar les interconnexions de leds. Sense una placa de circuit imprès especial, això és més fàcil de fer que soldar en llocs estrets amb moltes interconnexions; no tendeix a produir curts i és més fàcil de tornar a connectar en cas d’error. Amb totes les corrents que hi ha dins i al voltant del microcontrolador al fil de 30 ga de miliamperis, n'hi ha prou.
Botons i resistències relacionades:
Vaig idear una configuració única (una mena de doble Y) de resistències i botons, de manera que el programari pogués distingir les pulsacions de botons individuals i dobles (teòricament es pot identificar qualsevol combinació d’aquests quatre botons). He provat diverses configuracions amb multitud de valors de resistència en un full de càlcul buscant la millor configuració, i després els he simulat al programari fent que provi totes les combinacions possibles de resister per trobar el conjunt (que estic fent servir) que produeixi el màxim de diferència mínima de lectures analògiques entre qualsevol i totes les pulsacions de botó simple i doble. Els vaig disposar de manera que Btn1, Btn4 i Btn1 + 4 en particular fossin diferents.
Consulteu el diagrama de la xarxa de botons anterior.
Heu de tapar tot el cablejat que es connecti a PB4 (i possiblement canviar contactes i resistències) amb cinta elèctrica, cola calenta o una altra cosa que no es condueixi gens, ja que una simple resistència de megaohm desactivarà la capacitat de determinar quins commutadors es premen; i qualsevol contacte d’aquest tipus que feu mentre feu una assemblea ho faria.
Instructables associats més tard:
Jocs de 4 botons: utilitzar una entrada analògica /
Micro-controlador-portàtil-dual-project /
Funda impresa en 3D per a consola de pantalla LED en línia i /
Pas 4: Més opcions i notes
Sortida d'àudio opcional
La sortida d’àudio opcional utilitza PB5. Vaig connectar un zumbador de 5 V, en sèrie, amb un resistent de 150 Ohm per limitar la seva molesta sortida, per contra, forta. Us recomano que utilitzeu 50-200 Ohm. Es podria posar en paral·lel el brunzidor amb una tapa (2-10uf) per fer-lo menys esgarrifós, o utilitzar un altaveu de 32 Ohm amb controlador de 10 mm trencat d'un conjunt de auriculars estèreo barats, en lloc del resister i el brunzidor. M'agrada, per sons de jocs, millor tal com ho tinc.
Per defecte, l'Attiny-85 utilitza PB5 com a restabliment, eficaç significa que l'àudio funcionaria, però no tindrà un efecte negatiu en cap altra operació. En utilitzar un Nano o Uno, l'àudio funcionarà (sortint el seu D3). Per obtenir àudio amb Attiny, haureu de canviar la configuració del pin intern perquè el programari pugui utilitzar PB5 com a sortida. Hi ha una ramificació important en fer-ho; Consulteu aquests aspectes:
forum.arduino.cc/index.php?topic=178971.0
www.instructables.com/id/Simple-and-cheap-F…
i
Generalment, durant el joc, un error o un fracàs invocarà un crit o un so curt de gerds. Hi ha una melodia de felicitació quan es completa un nivell o es guanya, com al ping-pong. Em sembla que tenir àudio acompanyant realment augmenta el plaer de jugar.
Botons alternatius de tipus controlador de joc
Per als meus fills grans, que tenen un equip dur, he fabricat botons separats i resistents, Btn1 i Btn4, al final dels llargs cables de plom. Veure foto. Vaig muntar els botons amb unes empunyadures de tamís; amb una línia de 75Kohm amb Btn1 i una línia de ~ 37Kohm amb Btn4. En sèrie amb Btn4, en realitat vaig utilitzar un 36K, un 33K o fins i tot un 39K. Tenint en compte els botons d’èmbol externs, seria una bona idea tenir un conjunt separat de pins de capçalera per connectar botons de mà externs vistos com Btn1 i Btn4.
Cal subministrament elèctric de qualitat
Per a una font d’alimentació, podeu utilitzar directament la sortida USB 5v d’un ordinador, tauleta, carregador de paret, un banc d’energia o bateria de 3,7 Li.
Vaig comprovar que quan alimentava la unitat des d'alguns carregadors USB i diversos bancs d'alimentació USB, notaria que es produïa un comportament ocasional de fallades i, fins i tot, restabliments. Si experimenteu això, trobeu una font d'alimentació amb una millor regulació, en cas contrari afegir un condensador gran (100-1000uf) a + V a terra pot ajudar.
Proves
També he inclòs un programa de prova per ajudar a validar i depurar el vostre maquinari. El codi és un treball en curs i necessita ser netejat. Espero arribar-hi, però cal dir que hauria de servir les vostres necessitats. Recentment només l’he utilitzat amb un Nano que condueix els conjunts de pantalla i teclat. Podeu utilitzar la majoria dels botons per seleccionar elements del mode de menú. Per sortir de nou de la demostració / prova, premeu la majoria dels botons. Per sortir de la prova del botó (# 4), premeu FncKey + Btn1 o manteniu premuda la tecla EscKey (connexió a terra PB4) o recicleu el poder.
A causa de les diferències en les resistències internes i les toleràncies de resistència de l'MCU, és possible que hàgiu de fer alguns ajustos perquè totes les pulsacions de botó simple i doble es detectin correctament. Per fer-ho, utilitzeu test-4 (per seleccionar-lo, consulteu la descripció de l'operació del menú a continuació) del programa de prova. Tingueu en compte que no he utilitzat cap resistent d'extracció extern, ja que he planejat altres usos per a l'entrada PB4 que són incompatibles amb qualsevol extracció.
Pas 5: Visió general del programari
L’esbós LadderGames.ino implementa quatre jocs, incloses algunes versions alternatives.
L'esbós es pot descarregar i executar des d'un ATtiny-85, Nano, Uno, etc. el xip ATtiny-85:
Canvieu el rellotge intern de l'ATtiny85 a 8 MHz, ja que el rendiment és desitjat per al joc. Consulteu:
forum.arduino.cc/index.php?topic=276606.0
Aquest esbós hauria de ser compatible amb la majoria de projectes anteriors d'escales dirigits per ATtiny-85, sense canvis, però tindrà una funcionalitat limitada.
Funcionament del menú
A la posada en marxa hi ha un control de salut en forma d’escombrat a través dels LED i un conjunt de sons. Després passa al mode de menú principal. Cada conjunt de LEDs d’un color s’encenen durant un parell de segons seguits. Es selecciona un joc prement un botó mentre s’encén un conjunt associat, joc 1: vermell, joc 2: groc, joc 3: verd, joc 4: blau. Mentre es troba en mode de menú Btn2, Btn3, Btn4 es pot prémer per anar directament als jocs 2, 3, 4 respectivament. Un cop seleccionat un joc, haureu d’indicar la variació que desitgeu. Per a cada variació disponible, parpellejarà un conjunt de leds de colors. Simplement premeu un botó sobre el que vulgueu. A continuació es descriuen les variacions, “versions” de cada joc.
La versió un dels quatre jocs es pot jugar amb un sol botó. Ja sigui un cablejat entre PB4 i terra (Btn-0), com en instruccions d'escala LED anteriors, o amb un commutador que connecta una càrrega de 75k a terra (Btn-1). Qualsevol d'aquestes funcions es farà en els jocs quan les instruccions parlen de prémer un botó no específic.
Per sortir de qualsevol joc, podeu utilitzar FncKey + Btn1, manteniu premut EscKey (també conegut com: Btn0) durant 1-2 segons o cicleu la potència.
Pas 6: joc
Joc 1: Push-It
Aquesta és una adaptació del meu joc "Push-It" a partir d'un dels meus instructius anteriors
www.instructables.com/id/Play-a-Game-with-a…
L'objectiu del joc és empènyer el nombre de parpelleigs i el nombre de LEDs encesos al màxim possible. Push-It s'inicia amb diversos flaixos, que després es repetiran. Si premeu el botó després de l’últim flaix de la sèrie i quan existiria un addicional, el següent LED s’encendrà i el recompte del flaix augmentarà un. Però si "premeu" abans o després del període de temps d'un flash addicional, en comptes d'això, es reduirà el recompte de flaixos del conjunt.
Cada vegada que aconsegueixes augmentar el recompte de flaixos, augmenta el nivell de dificultat a mesura que la sincronització s’accelera una mica, cosa que fa que sigui cada vegada més difícil arribar a un recompte de flaixos més alt.
El número de compte actual s’emmagatzema a la memòria EEPROM per reiniciar-lo al mateix nivell més endavant.
Joc 2: Ping-Pong
Gran (encara que l'únic) joc competitiu de dos jugadors aquí; on la bola (un sol cop de llum) va d'un costat a l'altre, cada cop més ràpidament, cada vegada que es repeteix.
Vaig implementar per primera vegada aquest joc de llums únic sobre els botons del tauler frontal d’un ordinador super-mini aeroespacial als anys setanta.
Per colpejar la pilota cap endavant i cap enrere, la pala adequada ha de colpejar-la (amb el botó premut) quan estigui a la posició final (darrer LED). El primer equip que es perd perd i les llums del costat guanyador parpellegen.
Hi ha dues variacions, una requereix només un botó (Btn 0 o 1), que tocarà la pilota a qualsevol extrem; i una segona versió, és per a dues persones cap a cap, que requereix dos botons; botó 1 a la part esquerra i botó 4 o 0 a l’altra. Es prefereix l’ús dels botons 1 i 4, ja que no interferiran entre ells; es pot colpejar cadascun per tornar la pilota des del seu extrem, independentment de l'estat de l'altre botó.
El guanyador d’un ral·li sempre és el servidor del següent.
Joc 3: Galeria de trets
Dispara a tots els objectius (llums) per completar un nivell. A cada nivell superior l'acció és més ràpida.
Hi ha dues versions; un on el lloc està fixat i es mouen els objectius i un altre on el lloc es mou i els objectius continuen. En cada cas, un cop colpeja una llum objectiu; i una falta fa que aparegui un objectiu. Quan un objectiu està a la vista, la vista s’il·lumina més brillantment, en cas contrari, es queda poca.
A la primera versió, la vista comença a l'esquerra (part inferior) i escaneja a la dreta. A la versió 2 la vista es fixa al centre mentre l'objectiu es mou de dreta a esquerra. En mirar el codi, hi ha versions fantàstiques 3 i 4 que es podrien activar, però poseu el vostre propi benestar al vostre propi risc.
Joc 4: JumpMan
La idea és que estigueu passant per un nivell de joc on arriben objectes que heu de saltar, a mesura que avanceu, arriben més ràpidament. En una altra versió del joc, també hi ha objectes amb capçalera sobre els quals s’ha d’enfonsar.
A la primera versió només hi ha objectes per sobre dels quals saltar. Per saltar, heu de prémer el botó quan l'objecte arribi a l'última cel·la de l'esquerra; que s’il·lumina quan això es produeix. Per saltar 2 o més objectes consecutius, heu de saltar (prémer) sobre el primer i mantenir premut el botó per a la resta.
A la versió 2 s’afegeixen objectes over head (intermitents). Aquests es salten saltant durant la cel·la anterior a ella i s'alliberen mentre es troba a la cel·la final. Només una sobrecàrrega pot parpellejar alhora, de manera que, un cop superada, és possible que en vegeu una altra (que no parpelleja abans). Mai no hi haurà despeses generals consecutives, però poden estar adjacents a un o més objectes de salt (tipus boulder).
A la versió del joc 3, heu d'utilitzar un botó separat per als objectes de sobre (Btn-2, 4 o 0 que trieu); els salts requereixen Btn-1.
Un cop heu aconseguit quatre objectes més dels que heu fallat, avanceu de nivell; hi ha felicitacions sonores i visuals, i després es reprèn a un ritme de velocitat més alt. Obtenir un conjunt d'objectes consecutius compta el mateix que un objecte individual.
Us aconsello que imprimiu les regles de funcionament dels jocs i que les rellegiu abans de jugar a un joc que no heu jugat recentment. En cas contrari, us podeu frustrar; pensant que el joc no funciona correctament quan ho és, però vosaltres i el joc teniu maneres i expectatives diferents. Jo, jo mateix, m'he endut més d'un parell de vegades.
Pas 7: actualitzacions, més jocs
Vaig fer una consola impresa en 3D per allotjar la pantalla i els botons de l'escala LED en línia.
He ideat més jocs que utilitzen aquest maquinari. Mireu-los i divertiu-vos:
Nous jocs de "Whack a Mole" a "Tug of War"
Desembre 2016. Ara, al final de l'enllaç anterior, hi ha una versió unificada del codi que inclou els 12 jocs.
17 de febrer de 2017: aquí teniu l'últim joc establert per a aquest projecte, ara amb 16 jocs (esbós a continuació). Això s'executarà en qualsevol implementació de MCU amb 32 KB de memòria del programa flash. Tot i que un a 3 o 4 dels 16 jocs es pot posar en un ATtiny. Recomano utilitzar els arduinos Nano 3. Els darrers 4 jocs afegits són les curses "Le Mans", el concurs de pintura en aerosol "Spray" cap a cap.
Amb un joc més gran i divers d’aquests jocs, es poden millorar les seves habilitats de joc, per a tots els jugadors de nivell. Crec que hi ha molt marge de millora a les carreres de Le Mans mitjançant el disseny de la pista i el temps de joc.
Tinc, per escrit, prop de 10 activitats / jocs / funcions més, algunes de les quals espero estar disponibles al voltant de la tardor del 2017.
També es poden modificar aquests jocs d'una línia per a una pantalla LCD de 2 línies de 2 x 16, amb una línia d'objectes de joc i una altra per a text. He fet una mica d'això, però, com que tinc una còpia de seguretat de projectes pel que puc veure, no sé quan ni si ho aconseguiria. Per tant, si algú està motivat per adoptar i optimitzar aquests jocs per a una pantalla LCD de 2x16, comparteix-ho amb mi i altres.
A més dels 4 jocs nous que hi ha aquí a Menu_16Games.ino, he adjuntat el meu projecte i he creat instruccions relacionades: Funda de consola de jocs LED en línia i alimentació del vostre projecte MCU portàtil
Espero que molts es prenguin el temps i… GAUDEIX d’aquests jocs.
Joc de grup: 1– Vermell 2- Groc 3 - Verd 4 - Blau
1 vermell PushIt PingPong ShootEmUp JumpMan 2 Yel QuickDraw Tug_a_War Chicken Hot_Hands 3 Grn Le_Mans Spray PIG BiFunc 4 Blu SimonSays Whack_Mole Sea_Hunt Flip_d
2 de setembre de 2017: millora de la capacitat de treball amb botons de joystick externs sorollosos i antics, al joc de capçalera (grup 2).
13 de desembre de 2017: millora de la manipulació del rebot del botó i la resolució de la mesura, es van solucionar problemes menors. Havia provat d’utilitzar un condensador a la línia d’entrada analògica del botó, però per ser efectiu va resultar en una resolució de mesurament lenta produint falses identificacions de nivell o el programari que esperava tant de temps aquesta acció ràpida del joc es va veure compromesa.
Abril de 2018: he comprovat que els acobladors de compressió de 5/8 són excel·lents per als botons d'estil de pistó externs. Com que als meus fills els agrada fer-ne un parell, he afegit pins de capçalera per connectar-ne dos fàcilment (com Btn1 i Btn4).
Tingueu en compte que vaig crear un altre projecte, l'octubre passat, basat en el maquinari d'aquest instructable. Té l’esperit de Halloween i pot ser molt divertit, sobretot per als nens. Instruïble: Dispositius influenciats per la psique fantasmal
Recomanat:
Pantalla de jocs LED de fusta amb tecnologia Raspberry Pi Zero: 11 passos (amb imatges)
Pantalla de jocs LED de fusta amb tecnologia Raspberry Pi Zero: aquest projecte realitza una pantalla LED basada en WS2812 de 20x10 píxels amb una mida de 78x35 cm que es pot instal·lar fàcilment a la sala per jugar a jocs retro. La primera versió d’aquesta matriu es va construir el 2016 i va ser reconstruïda per moltes altres persones. Aquesta experiència
Controlador de jocs DIY basat en Arduino - Controlador de jocs Arduino PS2 - Jugar a Tekken amb el bricolatge Arduino Gamepad: 7 passos
Controlador de jocs DIY basat en Arduino | Controlador de jocs Arduino PS2 | Jugar a Tekken amb el bricolatge Arduino Gamepad: Hola nois, jugar sempre és divertit, però jugar amb el vostre propi controlador de jocs de bricolatge és més divertit
Com penjar jocs a Arduboy i 500 jocs a Flash-cart: 8 passos
Com penjar jocs a Arduboy i 500 jocs a Flash-cart: vaig fer Arduboy casolà amb memòria Flash Serial que pot emmagatzemar fins a 500 jocs per jugar a la carretera. Espero compartir com carregar-hi jocs, inclòs com emmagatzemar-los a la memòria flash en sèrie i crear el vostre propi paquet de jocs consolidat
Mini consola de jocs Ardubaby amb 500 jocs: 10 passos
Ardubaby Mini Game Console Amb 500 jocs: crèdits per al creador (Kevin Bates), Arduboy és una consola de jocs de 8 bits molt reeixida. Hi havia milers de jocs escrits per l’aficionat que els compartia lliurement al fòrum de la comunitat d’Arduboy perquè més gent pugui aprendre a codificar
Targeta de visita / Consola de jocs: Pantalla ATtiny85 i OLED: 5 passos (amb imatges)
Targeta de visita / Consola de jocs: Pantalla ATtiny85 i OLED: Hola a tothom. Avui us mostraré com podeu crear la vostra pròpia targeta de visita / consola de jocs / qualsevol cosa que us pugueu imaginar que inclogui una pantalla OLED I2C retroil·luminada i un microprocessador ATtiny85. En aquest instructiu us explicaré com dissenyo un PCB