Cuprins:
- Pasul 1: Determinarea configurației butonului optim
- Pasul 2: Asamblarea mea cu 4 butoane
- Pasul 3: Joc
- Pasul 4: Concursuri Head to Head
- Pasul 5: Controlere opționale pentru 2 jucători
- Pasul 6: actualizări
Video: Jocuri cu 4 butoane folosind o intrare analogică: 6 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Această instrucțiune se concentrează pe utilizarea unei linii de intrare analogice pentru mai multe butoane care pot fi detectate independent una de cealaltă.
Și pentru a evidenția utilizarea acestor butoane incluse este un software pentru a juca patru jocuri diferite cu 4 butoane. Toate jocurile (8 în total) folosesc aici un afișaj cu scară Led (consultați proiectul anterior: instructabile: Single-Line-LED-Display-Games).
Puteți utiliza propriul ansamblu cu 4 butoane cu alte ieșiri de afișare, pur și simplu utilizați funcția „scanButtons ()” dintr-una din schițele incluse. Și folosiți acele schițe, de exemplu, utilizarea acestora.
Jocurile sunt un joc de îndemânare: Whack-a-Mole, un joc de memorie: Simon Says, jocuri de logică Sea Hunt și Flip'd un joc cu doi jucători similar cu Reveri. Mai târziu, în acest instructiv, voi introduce mai târziu și patru jocuri de două persoane de competiție cap la cap.
Pasul 1: Determinarea configurației butonului optim
Pur și simplu folosirea unor rezistențe în serie cu butoane apăsate între fiecare va funcționa dacă nu trebuie să vă faceți griji cu privire la apăsarea unui buton, ocluzând altul. Într-o astfel de configurație, fiecare buton, atunci când este apăsat, blochează orice și toate sub el. Chiar și atunci când ai nevoie doar de două butoane și îți pasă doar unul câte unul, ca într-o implementare de ping-pong; ar fi o problemă dacă un jucător nu reușește (doar fiind prea lent sau rău intenționat) să-și scoată degetul din buton înainte ca celălalt să-l lovească.
Mai multe butoane au fost adesea conectate la o singură linie analogică, fiecare având valori ale rezistenței diferite care merg la intrare. Puteți, cu ușurință, să diferențiați ce buton sau pereche este apăsată atunci când există doar 2 sau 3 butoane. Dar nu în mod fiabil cu mai multe butoane sau cu mai mult de două apăsate, deoarece cea mai rea combinație de citiri devine ambiguă prea apropiată.
Aici, cu ceea ce numesc o configurație Double-Y de patru butoane și rezistențe, puteți discerne în mod fiabil orice buton simplu, dublu, chiar triplu sau toate cele patru apăsate. Driverul software-ului pentru a face acest lucru este acoperit în secțiunea următoare și lista de coduri.
Cu dorința de a avea patru butoane atașate la o intrare analogică în care apăsarea fiecărui buton ar putea fi detectată indiferent de starea celorlalte butoane, am modelat mai multe configurații într-o foaie de calcul. Am constatat că o configurație dublă-Y (formată din 2 seturi de trei rezistențe) oferă cele mai bune posibilități. Consultați schema de cablare de mai jos. Le evaluam pe baza celei mai mari separări a rezistenței totale între oricare două combinații de butoane apăsate. Am modelat în continuare valorile analogice calculate. Consultați fișierul de foaie de calcul de mai jos.
Pentru a determina cele mai bune valori de utilizat în configurațiile de mai sus, am scris o simulare, care a încercat în mod exhaustiv toate permutările posibile ale valorilor potențiale ale rezistorului, găsind setul care a produs cea mai mică diferență maximă între intrările de citire posibile. Am furnizat codul pe care l-am folosit. Acesta a fost un instrument de forță brută pe care l-am aruncat împreună, am obținut ceea ce doream și l-am lăsat deoparte, deci nu a fost în niciun fel optimizat. Este total așa cum este, doar pentru referință istorică (Solve_4R.html mai jos).
Iată rezultatul pentru revizuire:
R1: 10 R2: 12 R3: 10 R4: 12 R5: 10 R6: 15 min R delta: 3.3658818125
R1: 10 R2: 12 R3: 10 R4: 12 R5: 10 R6: 18 min R delta: 4.9490620031 R1: 10 R2: 12 R3: 10 R4: 12 R5: 18 R6: 10 min R delta: 4.9490620031 R1: 10 R2: 12 R3: 10 R4: 15 R5: 10 R6: 33 min R delta: 5.0576510475 R1: 10 R2: 12 R3: 10 R4: 15 R5: 12 R6: 10 min R delta: 7.104826870 R1: 10 R2: 12 R3: 10 R4: 18 R5: 10 R6: 18 min R delta: 8.1673424912 R1: 10 R2: 12 R3: 10 R4: 18 R5: 15 R6: 22 min R delta: 8.6504939648 R1: 10 R2: 12 R3: 10 R4: 22 R5: 10 R6: 18 minR delta: 10.1721492515 R1: 10 R2: 12 R3: 10 R4: 22 R5: 10 R6: 22 minR delta: 10.5040000560 R1: 10 R2: 12 R3: 10 R4: 27 R5: 12 R6: 27 minR delta: 10.7814361579 R1: 10 R2: 12 R3: 12 R4: 33 R5: 15 R6: 36 min R delta: 10.8827552754 R1: 10 R2: 12 R3: 12 R4: 68 R5: 10 R6: 22 min R delta: 11.4499029683 R1: 10 R2: 12 R3: 12 R4: 68 R5: 10 R6: 27 minR delta: 12.0961591599 R1: 10 R2: 12 R3: 15 R4: 68 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 15 R4: 75 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 15 R4: 82 R5: 10 R6: 27 minR delta: 1 2.7992171382 R1: 10 R2: 12 R3: 15 R4: 91 R5: 10 R6: 27 min R delta: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 82 R5: 10 R6: 15 min R delta: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 91 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 100 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 68 R4: 15 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 75 R4: 15 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 82 R4: 15 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 82 R4: 27 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 91 R4: 15 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 91 R4: 27 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 100 R4: 27 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 15 R3: 10 R4: 18 R5: 18 R6: 12 minR delta: 13.2909379968 R1: 10 R2: 15 R3: 10 R4: 22 R5: 12 R6: 10 minR delta: 14.245362837 R1: 10 R2: 15 R3: 10 R4: 39 R5: 18 R6: 27 min R delta: 14.5126340326 R1: 10 R2: 15 R3: 10 R4: 56 R5: 12 R6: 15 minR delta: 15.220571553 R1: 10 R2: 15 R3: 12 R4: 27 R5: 12 R6: 12 minR delta: 18.8228671943 R1: 10 R2: 15 R3: 12 R4: 39 R5: 18 R6: 27 minR delta: 19.236186493 R1: 10 R2: 15 R3: 15 R4: 47 R5: 22 R6: 33 minR delta: 19.5685736556 R1: 10 R2: 15 R3: 22 R4: 56 R5: 22 R6: 27 minR delta: 19.7887024012 R1: 10 R2: 15 R3: 27 R4: 220 R5: 12 R6: 10 minR delta: 21.2533513149 R1: 10 R2: 15 R3: 220 R4: 27 R5: 12 R6: 10 minR delta: 21.2533513149 R1: 10 R2: 18 R3: 22 R4: 68 R5: 33 R6: 39 minR delta: 21.58566448 R1: 10 R2: 18 R3: 27 R4: 75 R5: 33 R6: 36 minR delta: 22.158443806 R1: 10 R2: 18 R3: 27 R4: 82 R5: 33 R6: 36 minR delta: 22.158443806 R1: 10 R2: 18 R3: 27 R4: 82 R5: 33 R6: 39 minR delta: 22.158443806 R1: 10 R2: 18 R3: 33 R4: 75 R5: 27 R6: 18 minR delta: 24.2578084248 R1: 10 R2: 18 R3: 75 R4: 33 R5: 27 R6: 18 minR delta: 24.2578084248 R1: 10 R2: 36 R3: 36 R4: 68 R5: 12 R6: 18 minR delta: 24.380952380 R1: 10 R2: 36 R3: 36 R4: 75 R5: 12 R6: 18 minR delta: 24.380952380 R1: 10 R2: 36 R3: 39 R4: 75 R5: 12 R6: 15 minR delta: 24.380952380 R1: 10 R2: 36 R3: 68 R4: 36 R5: 12 R6: 18 minR delta: 24.380952380 R1: 10 R2: 36 R3: 75 R4: 36 R5: 12 R6: 18 minR delta: 24.380952380 R1: 10 R2: 36 R3: 75 R4: 39 R5: 12 R6: 15 minR delta: 24.380952380 R1: 10 R2: 39 R3: 15 R4: 39 R5: 10 R6: 27 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 22 R4: 47 R5: 10 R6: 22 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 22 R4: 56 R5: 10 R6: 22 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 27 R4: 56 R5: 10 R6: 15 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 39 R4: 15 R5: 10 R6: 27 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 47 R4: 22 R5: 10 R6: 22 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 56 R4: 22 R5: 10 R6: 22 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 56 R4: 27 R5: 10 R6: 15 minR delta: 24.4674161824 R1: 12 R2: 39 R3: 33 R4: 75 R5: 15 R6: 39 minR delta: 24.5467795136 R1: 12 R2: 39 R3: 33 R4: 82 R5: 18 R6: 47 minR delta: 24.789976640 R1: 12 R2: 39 R3: 47 R4: 100 R5: 18 R6: 33 min R delta: 24.789976640 R1: 12 R2: 39 R3: 56 R4: 100 R5: 15 R6: 12 min R delta: 25.3564579616 R1: 12 R2: 39 R3: 100 R4: 56 R5: 15 R6: 12 min R delta: 25.3564579616 R1: 12 R2: 47 R3: 18 R4: 47 R5: 10 R6: 27 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 22 R4: 56 R5: 10 R6: 22 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 27 R4: 56 R5: 10 R6: 18 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 47 R4: 18 R5: 10 R6: 27 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 56 R4: 22 R5: 10 R6: 22 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 56 R4: 27 R5: 10 R6: 18 minR delta: 27.4996466431 R1: 15 R2: 56 R3: 22 R4: 56 R5: 10 R6: 27 minR delta: 29.1605253709 R1: 15 R2: 56 R3: 22 R4: 56 R5: 12 R6: 33 minR delta: 29.811354701 R1: 15 R2: 56 R3: 33 R4: 68 R5: 12 R6: 22 minR delta: 29.811354701 R1: 15 R2: 56 R3: 56 R4: 22 R5: 12 R6: 33 minR delta: 29.811354701 R1: 15 R2: 56 R3: 68 R4: 33 R5: 12 R6: 22 minR delta: 29.811354701 R1: 18 R2: 68 R3: 27 R4: 68 R5: 12 R6: 33 minR delta: 30.7487559507 R1: 18 R2: 68 R3: 33 R4: 68 R5: 12 R6: 27 minR delta: 30.8965517241 R1: 18 R2: 68 R3: 68 R4: 33 R5: 12 R6: 27 minR delta: 30.8965517241 R1: 18 R2: 75 R3: 27 R4: 68 R5: 12 R6: 36 minR delta: 30.9007058823 R1: 18 R2: 75 R3: 47 R4: 91 R5: 12 R6: 10 minR delta: 30.9007058823 R1: 18 R2: 75 R3: 68 R4: 27 R5: 12 R6: 36 minR delta: 30.9007058823 R1: 18 R2: 75 R3: 91 R4: 47 R5: 12 R6: 10 minR delta: 30.9007058823 R1: 22 R2: 82 R3: 36 R4: 82 R5: 15 R6: 39 minR delta: 33.2525545171 R1: 22 R2: 82 R3: 82 R4: 36 R5: 15 R6: 39 minR delta: 33.2525545171 R1: 36 R2: 82 R3: 22 R4: 82 R5: 39 R6: 15 minR delta: 33.2525545171 R1: 36 R2: 82 R3: 82 R4: 22 R5: 39 R6: 15 minR delta: 33.2525545171 R1: 82 R2: 22 R3: 36 R4: 82 R5: 15 R6: 39 minR delta: 33.2525545171 R1: 82 R2: 22 R3: 82 R4: 36 R5: 15 R6: 39 minR delta: 33.2525545171 R1: 82 R2: 36 R3: 22 R4: 82 R5: 39 R6: 15 minR delta: 33.2525545171 R1: 82 R2: 36 R3: 82 R4: 22 R5: 39 R6: 15 minR delta: 33.2525545171 R1: 36 R2: 82 R3: 82 R4: 22 R5: 39 R6: 15 minR delta: 33.2525545171
Pasul 2: Asamblarea mea cu 4 butoane
Pentru cele patru butoane ale mele am folosit aceste butoane și un PCB perforat și rezistențe, așa cum este indicat în diagrama de mai sus. Modul în care îți implementezi fizic cele patru butoane este larg deschis și depinde de tine și de nevoile proiectelor tale. Atâta timp cât este electric ceea ce este în diagrama de mai sus. Asigurați-vă că montarea în construcție este de așa natură încât nu veți intra în contact cu cablarea butoanelor, deoarece acestea vor arunca citirile, rezultând un comportament eronat al butonului.
Am un mic buton adăugat pe tablă pe care îl folosesc ca o tastă „Funcție”. Este în serie cu un rezistor de 2 megohm, care nu aruncă în mod semnificativ celelalte citiri ale mele de intrare; deși îl pot detecta numai când este apăsat singur. Puteți să îl ignorați sau să verificați codul pentru a înțelege în continuare modul în care îl folosesc.
Schița de testare „Test_12Leds_6Btns” poate fi utilizată pentru a testa detectarea apăsării butoanelor de către MCU și a ansamblului butonului real. Ieșirea sa este setată să fie vizualizată fie cu o scară LED, fie cu monitorul serial. Acesta ar putea fi modificat cu ușurință pentru a ieși prin orice tip de afișaj pe care îl aveți.
Este posibil să fie necesar să reglați setul de coduri al citirilor de referință cu care compară intrarea, datorită diferențelor potențiale ale rezistenței de tragere interne ale MCU-ului sau toleranțelor rezistențelor pe care le utilizați. S-ar putea, dacă preferați, să folosiți rezistențe de precizie, sperăm că nu trebuie să faceți ajustări de calibrare. Apropo, nu am folosit un pull-up extern, deoarece ar interfera cu alte utilizări pe care le planific pentru unul dintre proiectele mele.
Una dintre acțiunile software cheie întreprinse, pentru a se asigura că determinarea butonului (butoanelor) apăsat (e) nu este afectată de nivelul de tensiune de alimentare (și / sau varianța MCU), este la scara intrării analogice pe baza citirii maxime, care la rândul său este afectat de tensiunea de alimentare.
„Driverul” software care asigură aceste butoane este „scanButtons ()” de rutină. Așteaptă să se stabilească valoarea de intrare analogică, apoi mapează citirea într-o serie de valori predeterminate; și traduce acest lucru în stările corespunzătoare pentru colectarea butoanelor. Această rutină și variabilele publice pe care le partajează cu software-ul aplicației sunt tot ceea ce este necesar pentru a face o utilizare similară a acestui set în butoane independente.
Notă! Versiunea actuală a „scanButtons ()” nu încearcă să identifice în mod unic toate cele trei combinații posibile de butoane, deoarece pentru mine nu era necesară în mod realist și ar complica și mai mult codul și precizia de calibrare necesare.
Pasul 3: Joc
Fie schiță, „LadderGames4” sau „Head2head” pot fi încărcate și rulate de majoritatea oricărui MCU Arduino, dar LadderGames4 trebuie să aibă „SimonSays” sau oricare dintre celelalte două jocuri comentate pentru a se potrivi în 8K octeți ai spațiului programului în un Attiny-85. Audio este, de asemenea, o problemă cu un ATtiny-85, a se vedea proiectul anterior menționat mai sus. Codul este configurat cu compilare condițională și este cunoscut că funcționează cu un Nano, Uno și un ATtiny-85.
Cu fiecare dintre aceste schițe după inițializare vi se prezintă Meniul, cu o singură culoare la un moment dat, iluminând tot Roșu … Galben … Verde … Albastru Led, corespunzător celor patru opțiuni de joc posibile. Fie apăsați Btn1 când opțiunea dorită este aprinsă, fie în orice moment apăsați Btn2-4 pentru jocurile 2-4. Modul redundant de a selecta este astfel încât să fie compatibil atât cu implementări cu jocuri, cât și cu două butoane. Dacă există mai multe versiuni ale jocului, va trebui să selectați roșu intermitent pentru ver-1, galben intermitent pentru ver-2 și așa mai departe.
Jocuri cu 4 butoane
Un joc de memorie, un joc de coordonare ochi-mână și două jocuri de strategie.
Simon Says Aceasta este o reimplementare a jocului din forma în care l-am avut, în aceste proiecte anterioare:
www.instructables.com/id/Fast-Easy-Simon/
www.instructables.com/id/Improved-Simon-Says-Code/
Se joacă ca majoritatea oricărui alt joc „Simon Says”.
Totuși, aici am adăugat versiunea pentru două persoane (când selectați opțiunea 2, galben intermitent), unde fiecare jucător, la rândul său, adaugă o nouă notă ușoară seriei. Primul care nu repetă corect tot ce a venit înainte pierde jocul.
Bate o aluniță
Timp de 30 de secunde apar diferite alunițe (roșu, galben, grn, albastru) 1, 2 sau 3 odată. Trebuie să le „lovim” apăsând butoanele corespunzătoare Btn1-4. Doar apăsarea unui singur buton va fi acceptată, fără apăsarea simultană a mai multor butoane. Cât timp rămâne un set de alunițe devine mai scurt pe măsură ce jocul continuă. Dacă bateți toate alunițele care arată, atunci va apărea un nou set; astfel încât să fii mai rapid, cu atât vei avea mai multe șanse de a bate.
Odată terminat jocul, afișajul va reflecta scorul, aprinzând câte un led pentru fiecare 10 alunițe care au fost lovite. Deoarece jocul înregistrează 10 puncte pentru fiecare lovitură de aluniță, 5 leduri aprinse ar reprezenta un scor standard al punctului Whac-a-Mole de peste 500. Pentru a juca o altă rundă va trebui să selectați din nou jocul.
Folosesc un deget pe fiecare buton pentru acțiune rapidă și scoruri mari. Pentru o provocare mai adecvată, ar trebui să folosiți doar un deget pe o mână, răspunzând la utilizarea unui ciocan.
Scorul meu tipic folosind un deget este în anii 500, folosind 4 degete (unul pe buton) este peste 600. Cel mai mare scor al meu este peste 700. Utilizarea mai multor degete este deosebit de dificilă, deoarece dacă există o suprapunere în apăsarea uneia și a alteia, al doilea nu va fi acceptat de software, necesitând să eliberați toate butoanele înainte ca altul să fie acceptat. Dacă cineva scoate la lumină toate cele 12 leduri, pentru un scor de peste 1200, vă rugăm să ne anunțați.
Sea Hunt
Există un submarin nevăzut care se mișcă prin adâncuri. Locația și direcția inițială sunt aleatorii. Face o mișcare de-a lungul cursului său după fiecare întoarcere pe care o luați. Trebuie să preziceți unde se află prin rapoarte sonare și să o scufundați cu o încărcare de adâncime. Un sonar sonor se îndepărtează (în ambele direcții) de la locul său de pornire ca o lumină slabă și luminează (împreună cu un ping) la distanța sub. Cu toate acestea, rețineți că sub-ul ar putea fi în orice direcție și se deplasează într-o direcție necunoscută. O încărcare de adâncime explodează adânc sub locul în care este lansată. Auzi o explozie înăbușită dacă nu există nimic, sau există, altfel auzi explozia mare a sub și un flash luminos.
Pentru a muta cursorul a condus acolo unde doriți să lăsați o geamandură sonar sau încărcarea în adâncime se face cu Btn2 și Btn3 pentru stânga și dreapta. Butonul-1 este folosit pentru a le lansa.
În versiunea 1, fiecare încercare este o combinație de raport adânc-încărcare și sonar; și puteți utiliza un număr nelimitat de ele.
În versiunea 2, Head to head, în ture, pentru a vedea cine reușește să scufunde sub. Jucătorul 1 folosește Btn1, iar al doilea jucător folosește Btn4 pentru a-și lansa încărcăturile de adâncime.
În versiunea 3, rapoartele de încărcare de adâncime și sonar sunt lansate independent de Btn1 și respectiv Btn4. Aveți la dispoziție doar trei încărcări de adâncime. Puteți obține toate rapoartele sonar dorite. Pierzi dacă nu reușești să-l iei cu acuzațiile respective.
În versiunea 4, sub-ul ar putea fi în mișcare cu o rată de 1-3 spații pe volei și altfel se joacă ca versiunea 3, dar primiți 6 încărcări de adâncime.
Istorie: Am creat pentru prima dată jocul „Sea Hunt” în anii '70. Apoi, dispozitivul de intrare și ieșire era un teletip. Cu toate acestea, atunci marea era o rețea bidimensională, spre deosebire de o dimensiune, așa cum este aici.
NOTĂ: Am comentat limitarea încărcării în adâncime din cod, cu ideea că a fost deja suficient de greu de jucat pentru majoritatea oamenilor.
Flip'd
Acest joc cu doi jucători seamănă puțin cu Reveri, prin faptul că încercați să transformați toate celulele în culoarea dvs., dar acest lucru se realizează diferit.
În acest joc cu doi jucători, obiectivul unui jucător este să stingă toate luminile, iar celălalt să le aprindă pe toate. Un jucător folosește Btn1 fie pentru a stinge un grup de lumini ale celuilalt jucător, fie pentru a renunța la una dintre „luminile Off” (aprinderea). Celălalt jucător folosește Btn4 fie pentru a transforma un grup de „lumini Off” pe On, fie pentru a opri unul din spatele său.
Placa începe cu un set aleatoriu de leduri pornite. Când este rândul primului jucător, pe led se află o luminozitate sau o iluminare rapidă la „cursor”, punct de interes, care poate fi rotită. În timpul rândului jucătorului nr. 2 apare un flash lung al unui led ca indicator al cursorului. Dacă jucătorul greșit își apasă butonul, în afara rândului său, se aude un semnal sonor foarte scurt. Cursorul este deplasat la stânga de Btn2 și la dreapta de Btn3. Jucătorul care pierde începe următorul joc.
Strategia cu privire la ceea ce trebuie să Flip poate fi semnificativă.
Pasul 4: Concursuri Head to Head
Jocuri cu două butoane / doi jucători
În primul set de jocuri cu 4 butoane, numai „Whack-a-Mole” se bazează cu adevărat pe independența completă a procesării butoanelor. De asemenea, am implementat patru jocuri cap la cap, toate depinzând de detectarea independentă a butoanelor. Aceste jocuri sunt: Quick Draw, Tug a War, Chicken, and Hot Hands (Slapsies).
Extragere rapidă (test de reacție)
Concursul începe cu un „Ready” / roșu, „Set” / galben și un „Draw!” / Verde; fiind destul de aleatoriu când îți dă undă verde. Primul care a lovit butonul câștigă. Lovind prea repede și sunteți dezonorat de un buzz.
Jucătorul 1 folosește Btn1 (în stânga) și jucătorul 2 folosește Btn4 (în dreapta).
Tug of War
Începe cu un „Ready”, „Set”… „GO!”. Apare un obiect în mijloc, un „arc” pe o frânghie. Apoi jucătorii lovesc butoanele lor cât de repede și de des pot. Arcul se va deplasa spre jucătorul cu cele mai multe lovituri. Odată ce arcul ajunge la un capăt, acesta este câștigătorul.
Pui
Acest concurs este demarat în mod similar. După blițul sunet și verde al „Du-te!” jucătorii apasă și mențin butoanele, luminile (carele lor) încep să se deplaseze de la ele către celălalt. Câștigătorul este cel care își eliberează butonul (sare din carul lor) ultima, chiar înainte ca cele două blipuri să se prăbușească. Dacă cineva eliberează prea târziu sau deloc, se prăbușește și pierde. Dacă ambii sar (eliberează) prea târziu, nimeni nu câștigă.
La început, o pereche de leduri opuse se deplasează pe ecran, în acest moment, dacă atingeți Fnc-Btn2, viteza jocului va crește. Acest lucru poate fi repetat de câteva ori.
Mâinile fierbinți
O versiune digitală a jocului de palme de mâini (aka Red-Hands sau Slapsies). Pentru a începe cei doi jucători apăsați butoanele împreună, o parte eliberează apoi încearcă să apese butonul său de două ori înainte ca cealaltă parte să-și elibereze butonul. Apoi cealaltă parte încearcă să facă în mod similar. Jucătorul al cărui rând este indicat la începutul unei runde printr-o aprindere a ledurilor de pe partea sa. Am constatat că o singură apăsare de buton cu un singur buton era prea rapidă și ușoară, așa că am făcut două solicitări, ceea ce necesită mai multă acțiune și timp, ca și cum ar trebui să întoarceți mâna peste și deasupra celorlalți, precum și apoi să plesniți. TBD: În a doua versiune, este gratuit pentru toți, oricând oricare jucător poate încerca să obțină tot ce este mai bun.
Înștiințare ! Vă sfătuiesc să imprimați regulile de funcționare ale jocurilor de mai sus și să le recitiți înainte de a juca un joc pe care nu l-ați jucat recent. În caz contrar, vă puteți frustra; crezând că jocul nu funcționează corect atunci când este adevărat, dar tu și jocul aveți moduri și așteptări diferite. Eu însumi am căzut pradă acestui lucru de mai multe ori.
Cu cele opt jocuri de aici și cele patru din proiectul meu anterior, Single-Line-LED-Display-Games, care oferă software-ul disponibil pentru a juca 12 jocuri cu această combinație hardware cu patru butoane + scară led.
Mai am cel puțin patru activități recreative pentru acest hardware (afișare butoane) înainte de sfârșitul anului.
Pasul 5: Controlere opționale pentru 2 jucători
Pentru jocurile care necesitau doar două butoane, aș fi putut, desigur, să folosesc PCB-ul cu 4 butoane cu aceste jocuri; cu toate acestea, atunci când joci aceste jocuri, tinde să devii destul de fizic. Așadar, folosesc ansambluri separate de butoane tip piston, realizate dintr-o bucată de tub din plastic acoperită cu un mâner de bicicletă și un buton mare.
Piese buton tip piston:
- Țeavă de linie de picurare de 1/2 ", stand-off pentru aspersoare sau PVC (magazin de hardware)
- Mâner pentru mânerul bicicletei (Walmart)
- Butoane mari (eBay)
- 2 rezistențe
Pentru a menține compatibilitatea, un buton are un rezistor de 75 ohm în serie și celălalt are un 36-39 ohm în serie; astfel încât software-ul să le vadă ca Btn1 și respectiv Btn4.
Ați putea folosi tubulatura de la o mătură aruncată sau un mâner pentru racletă.
S-ar putea face chiar și un adaptor la care să poți conecta vechile console de jocuri; faceți ca butoanele de declanșare să fie conectate ca Btn1 și Btn4 pentru celălalt, în timp ce partajați Btn1-4 mergând la butoanele de navigare ale joystick-urilor.
Aprilie 2018: Acum preferați să folosiți cuplaje de compresie de 5/8 ca corp pentru butoanele externe cu piston. Butoanele mari (cu o bandă mică peste firele adăugate) se potrivesc perfect în ele și se potrivesc foarte bine în mână. copiilor le place să folosească o pereche dintre acestea, am adăugat câteva seturi de știfturi pentru antet, astfel încât să conectez cu ușurință un buton extern de mână pe contactele Bnt1 și unul pentru Btn4.
Pasul 6: actualizări
Am realizat o consolă tipărită 3D pentru a adăuga afișajul și butoanele cu scară LED în linie.
Am combinat cele 12 jocuri pe care le-am creat până acum, pentru acest afișaj cu 12 LED-uri, într-o schiță „Menu_12Games”. Acest software necesită hardware-ul acestui proiect implementat cu un MCU flash de 32 KB (de exemplu, Nano sau Uno) și 5 butoane, 4 principale + un FncKey.
Meniul de selecție este acum pe două niveluri; mai întâi selectați 1 din 4 grupuri de jocuri, apoi jocul 1-4 în cadrul grupului respectiv, … așa cum sunt enumerate mai jos. În timp ce așteptați afișajele selectate scanează periodic R-Y-G-B, apăsați Btn1-4 ca selecție în orice moment, nu are nicio diferență ce se afișează când apăsați selecția. În timpul selecției „grup”, toate LED-urile sunt cel puțin parțiale în timpul scanării RYGB. Pentru a ieși din orice joc sau a face backup din selecția „joc” în „grup”, apăsați FncKey-Btn1.
Trebuie încă să codez ultima 4. Am trei scrise (inclusiv „LeMans”). Nu am venit cu ultimul joc. Trimiteți-mi un mesaj cu orice idee.
Actualizare 25 ianuarie 17: Pentru cei dintre voi care se bucură de accesul la o imprimantă 3D, s-ar putea să vă intereseze carcasa consolei de joc pe care am făcut-o pentru dispozitivul meu: https://www.instructables.com/id/3D-Printed-Case- pentru-Consola-cu-afișaj-LED-în-linie și /
Actualizare 17 februarie 17: Am adăugat finalul 4 jocuri, care sunt acum disponibile ca „Menu_16Games.ino” la „Pasul 7: Actualizare, mai multe jocuri” din Instructable: Single-Line-LED-Display-Games (Menu_12Games.ino este acum defunct)
Joc de grup: 1– Roșu 2- Galben 3 - Verde 4 - Albastru
1 roșu 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
Recomandat:
Intrare tactilă capacitivă ESP32 utilizând „dopuri metalice” pentru butoane: 5 pași (cu imagini)
Intrare tactilă capacitivă ESP32 utilizând „dopuri metalice” pentru butoane: În timp ce finalizam deciziile de proiectare pentru un viitor proiect ESP32 bazat pe kitul WiFi care necesită intrare cu trei butoane, o problemă vizibilă a fost că kitul WiFi 32 nu are un singur buton mecanic, totuși, doar trei butoane mecanice, f
Cum să încărcați jocuri pe Arduboy și 500 de jocuri pe Flash-cart: 8 pași
Cum să încărcați jocuri pe Arduboy și 500 de jocuri pe Flash-cart: Am făcut niște Arduboy de casă cu memorie Serial Flash care pot stoca maxim 500 de jocuri pentru a juca pe drum. Sper să vă împărtășesc cum să încărcați jocuri pe acesta, inclusiv cum să stocați jocuri în memoria flash serială și să creați propriul pachet de joc consolidat
Utilizați 1 intrare analogică pentru 6 butoane pentru Arduino: 6 pași
Utilizați 1 intrare analogică pentru 6 butoane pentru Arduino: M-am întrebat adesea cum aș putea obține mai multe intrări digitale pentru Arduino. Recent mi-a trecut prin minte că ar trebui să pot folosi una dintre intrările analogice pentru a introduce mai multe intrări digitale. Am făcut o căutare rapidă și am găsit unde erau oamenii
Intrare analogică IoT - Noțiuni introductive despre IoT: 8 pași
Intrare analogică IoT - Noțiuni introductive despre IoT: Înțelegerea intrărilor analogice este o parte crucială a înțelegerii modului în care funcționează lucrurile din jurul nostru, majoritatea, dacă nu toți senzorii sunt senzori analogici (uneori acești senzori sunt convertiți în digital). Spre deosebire de intrările digitale care pot fi activate sau dezactivate numai, intrarea analogică
Simulator de jocuri SmartPhone - Joacă jocuri Windows folosind controlul gesturilor IMU, accelerometru, giroscop, magnetometru: 5 pași
Simulator de jocuri SmartPhone - Joacă jocuri Windows folosind controlul gesturilor IMU, accelerometru, giroscop, magnetometru: Sprijină acest proiect: https://www.paypal.me/vslcreations donând la coduri open-source & sprijin pentru dezvoltarea ulterioară