Cuprins:

Afișaj LED în linie Jocuri Arduino: 7 pași (cu imagini)
Afișaj LED în linie Jocuri Arduino: 7 pași (cu imagini)

Video: Afișaj LED în linie Jocuri Arduino: 7 pași (cu imagini)

Video: Afișaj LED în linie Jocuri Arduino: 7 pași (cu imagini)
Video: Dorian este speriat de un interlop când face poze 😱🥊🤣 #timisoara #dorianpopa #cluj #bucuresti 2024, Iulie
Anonim
Image
Image
Componente majore
Componente majore

alias Sistem de joc cu afișaj cu scară LED.

Un Attiny-85 echipat cu hardware și software pentru a juca jocuri „video” pline de acțiune, pe un afișaj LED în linie.

Are un afișaj multiplexat cu 12 LED-uri și acceptă până la 6 intrări de butoane și o ieșire audio opțională.

Este plin de 4 jocuri de îndemânare, cu mai multe niveluri de dificultate și unele variante (actualizate la 16 jocuri, atunci când sunt utilizate cu un ATMega MCU).

[Video]

Pasul 1: Componente majore

Mi-am construit proiectul modular (două ansambluri separate). Un subansamblu principal de afișare; care poate fi folosit de sine stătător. Și un subansamblu de intrare Buton. În acest fel pot folosi butonul sau ansamblul afișajului din nou într-un alt proiect. Acest lucru permite, de asemenea, opțiuni de montare flexibile.

De asemenea, am scos linia de control pe un pin-header pentru ansamblul scării LED, astfel încât să pot folosi un Arduino Nano (sau un Uno), pentru a dezvolta software pentru acesta și pentru a-l folosi în alte proiecte. Un Digispark nu va funcționa din cauza celorlalte componente de pe placa sa.

Am ales să folosesc aceleași atribuiri de pini pentru scara cu LED-uri ca în instrumentele anterioare pentru a facilita folosirea software-ului de către cei care au deja o astfel de implementare hardware în acest instructabil, chiar dacă nu am găsit atribuțiile făcute pentru cea mai clară logică în software-ul.

Cele două linii dintre module sunt PB4 și masă. Deoarece tot ceea ce este pe ansamblul cu mai multe butoane este rezistențe și comutatoare, deci nu depinde de polaritate și inversarea conexiunii nu contează.

Cu ajutorul mai multor butoane, se poate implementa o mai mare varietate de jocuri (sau aplicații). Două dintre jocurile din acest instructable se joacă cel mai bine cu două butoane. Cele patru butoane principale pot fi utilizate pentru a accesa direct un joc asociat. În curând voi implementa un joc care depinde de utilizarea celor patru butoane principale.

Acest proiect folosește până la șase butoane. Patru dintre cele principale BTN 1-4, aceste butoane pot fi detectate individual chiar și atunci când oricare dintre ele sunt apăsate simultan. Celelalte două sunt butoane speciale, mai întâi există echivalentul butonului unic în proiectele anterioare care face o conexiune dură între intrarea PB4 la masă, numesc acest BTN0 sau ESC deoarece acest comutator poate fi întotdeauna detectat și va bloca detectarea a oricăruia dintre ceilalți. Cealaltă tastă specială este Tasta funcțională, dacă este apăsată când BTN 0-4 este apăsată, aceasta poate fi detectată și utilizată pentru a schimba funcționalitatea.

În această schiță de joc de îndemânare folosesc:

  • FncKey + Btn1 reveniți la modul meniu
  • FncKey + Btn2 nivel de dificultate avans (dacă este cel mai mare reveniți la cel mai mic)
  • FncKey + Btn4 Pauză instantanee (apăsați orice tastă pentru a anula pauza)
  • FncKey + Btn 0 sau 3 sunt nedefinite.

Pasul 2: Lista pieselor

Lista de componente
Lista de componente

Piese necesare

  • LED-uri, roșii, galbene, verzi și albastre ca acestea
  • Plăci PCB articole similare, poate fi necesar să cumpărați o placă mai mare și să o tăiați la dimensiunea dorită.
  • mufă cu pin articole similare
  • Cip Attiny-85
  • rezistențe
  • comutatoare folosite: butoane de apăsare momentane tactile 12x12x8mm și 6x6x6mm PCB

recomandat:

  • buzzer 5v, tip activ
  • un băț de gheață
  • Bandă antet de pin de 2,54 mm
  • Instrument de 30 ga sârmă și sârmă de înfășurare https://www.ebay.com/itm/351798901037ligătul de mai sus este să sârmă care seamănă mai mult cu 36 ga. Mi-aș dori să știu despre o astfel de afacere pentru 30 de ga. sârmă

Pasul 3: Repere în construcții

Repere în construcții
Repere în construcții
Repere în construcții
Repere în construcții
Repere în construcții
Repere în construcții
Repere în construcții
Repere în construcții

Pe ansamblul plăcii principale am electric același lucru ca și alte proiecte anterioare cu scări LED, pe care poate doriți să le consultați pentru instrucțiuni suplimentare de construcție de bază

Cu toate acestea, nu folosesc un rezistor de extragere exterior pe intrarea analogică A2 (PB4), de asemenea, folosesc LED-uri roșii, galbene, verzi și albastre, în loc de toate de o singură culoare, ceea ce este de dorit pentru unele dintre jocurile pe care le-am creat pentru acest hardware.

Iată atribuțiile I / O așa cum era de așteptat de schițele software atașate:

Proiect MCU AT-85 Uno / Nano

Nume nume pin # brd name --------- ---- ---- --------- Red L1-3 PB3 2 D-11 Yel L4-6 PB0 5 D-8 Verde L7-9 PB1 6 D-9 Albastru L10-11 PB2 7 D-10 Ain PB4 / A2 3 A-2 Audio PB5 1 D-3

Singura diferență semnificativă este că am două butoane conectate la PB4. Primul merge direct de la PB4 la sol, dar fără rezistență externă (eu numesc acest BTN0). Am și un comutator cu buton (pe care îl numesc BTN1) conectat cu un 75Kohm în serie la masă. Această placă principală poate fi utilizată fără placa de asamblare „Buton”, dar cu o funcționalitate limitată.

Rezistențele de limitare a curentului care merg la seturile de LED-uri ar trebui să fie alese în funcție de luminozitatea diferitelor LED-uri de culoare pe care le utilizați și de cât de luminoase le doriți. Am ajuns cu 91 ohmi pentru setul roșu, 75 galben, 430 verde și 150 ohmi pentru albastru. Aceste valori pot părea scăzute, dar amintiți-vă că ledurile sunt multiplexate (în general, cu mult <100% din timp)

Am folosit leduri de 3 mm și le-am distanțat puțin. Aveam picioarele LED-urilor pe un baston de gheață. În acest fel, toți s-au ridicat la aceeași cantitate și mai presus de toate celelalte componente. Intenționez, la un moment dat, să montez unitatea doar cu LED-urile care ies în afară printr-un cadru.

Am ales să împachetez interconectările cu led. Fără o placă de circuite imprimate specială, acest lucru este mai ușor de făcut decât lipirea în locuri înguste, cu multe interconectări; nu are tendința de a produce pantaloni scurți și este mai ușor de reîncărcat în cazul unei greșeli. Cu toți curenții din și în jurul microcontrolerului în firul de 30 ga de miliamperi este suficient.

Butoane și rezistențe conexe:

Am conceput o configurație unică (un fel de Y dublu) de rezistențe și butoane, astfel încât software-ul să poată discerne apăsările individuale și duble de butoane (teoretic orice combinație a acestor patru butoane poate fi identificată). Am încercat mai multe configurații cu o multitudine de valori de rezistență într-o foaie de calcul în căutarea celei mai bune configurații, apoi le-am simulat în software, încercând toate combinațiile posibile de rezistență pentru a găsi setul (pe care îl folosesc) care ar produce maximul de diferență minimă de citiri analogice între orice apăsare de buton simplu și dublu. Le-am aranjat astfel încât Btn1, Btn4 și Btn1 + 4 în special să fie distincte.

Consultați Diagrama rețelei de butoane de mai sus.

Trebuie să acoperiți toate cablurile care se conectează la PB4 (și, eventual, să schimbați contactele și rezistențele) cu bandă electrică, adeziv fierbinte sau altceva care nu se comportă deloc, deoarece o simplă rezistență la megaohmi va elimina capacitatea de a determinați ce comutator este apăsat; și orice astfel de contact pe care îl faceți în timp ce țineți o adunare ar face acest lucru.

Instrucțiuni asociate ulterior:

4-Butoane-Jocuri-Folosind-o-intrare-analogică /

Dual-Power-for-Your-Portable-Micro-Controller-Proj /

Casă-imprimată-3D-pentru-consolă-cu-afișaj-LED-in-linie și /

Pasul 4: Opțiuni și note suplimentare

Opțiuni și note suplimentare
Opțiuni și note suplimentare

Ieșire audio opțională

Ieșirea audio opțională utilizează PB5. Am conectat un buzzer de 5V, în serie, cu un rezistor de 150 Ohm pentru a limita ieșirea lui, de altfel puternică, enervantă. Vă recomand să utilizați 50-200 Ohm. S-ar putea paralela buzzerul cu un capac (2-10uf) pentru a-l face mai puțin aspru sau ar putea folosi un difuzor de 10 mm de 32 Ohm, rupt dintr-un set de urechi stereo ieftine, în loc de resister și buzzer. Îmi place, pentru sunete de joc, mai bine așa cum o am.

În mod implicit, Attiny-85 folosește PB5 ca resetare, efectiv înseamnă că sunetul ar funcționa, dar nu va avea un efect negativ asupra oricărei alte operații. Când utilizați un Nano sau Uno, sunetul va funcționa (ieșind D3). Pentru a obține sunet cu Attiny va trebui să schimbați configurația pinului intern, astfel încât software-ul să poată utiliza PB5 ca ieșire. Există o ramificație semnificativă în a face acest lucru; vă rugăm să consultați următoarele:

forum.arduino.cc/index.php?topic=178971.0

www.instructables.com/id/Simple-and-cheap-F…

și

În general, în timpul jocului, o greșeală sau un eșec va invoca un sunet scurt sau zmeură scurtă. Există o melodie de felicitare jucată atunci când finalizați un nivel sau câștigați, ca la ping-pong. Consider că faptul că sunetul însoțitor crește cu adevărat la bucuria jocului.

Butoane alternative de tip controler de joc

Pentru copiii mei buni, care sunt aspru în ceea ce privește echipamentul, am realizat butoane separate durabile, Btn1 și Btn4, la capătul firelor lungi de plumb. Vezi poza. Am montat butoanele în mânerele de cernut; cu o linie de 75Kohm cu Btn1 și o linie de ~ 37Kohm cu Btn4. În serie cu Btn4 am folosit de fapt un 36K, un 33K sau chiar posibil un 39K. Având în vedere butoanele cu piston extern, ar fi o idee bună să aveți un set separat de știfturi pentru antet, pentru conectarea butoanelor externe portabile văzute ca Btn1 și Btn4.

Este necesară o sursă de energie de calitate

Pentru o sursă de alimentare, puteți utiliza direct ieșirea USB 5v a unui computer, tabletă, încărcător de perete, o bancă de energie sau o baterie de 3,7 Li.

Am constatat că, atunci când alimentam unitatea de pe niște încărcătoare USB și mai multe bănci de alimentare USB, aș observa că mișcări și comportamente ocazionale de pierdere și chiar resetări. Dacă întâmpinați acest lucru, găsiți o sursă de alimentare cu o reglare mai bună, altfel adăugarea unui condensator mare (100-1000uf) peste + V la masă vă poate ajuta.

Testarea

De asemenea, am inclus un program de testare pentru a vă ajuta să vă validați și să depanați hardware-ul. Codul este un lucru în curs și are mare nevoie de a fi curățat. Sper să ajung la asta, dar să spun în timp ce ar trebui să vă servească nevoile. Recent l-am folosit doar cu un Nano care conduce ansamblurile de afișaj și tastatură. Puteți utiliza majoritatea oricăror butoane pentru a selecta elemente din modul meniu. Pentru a ieși din nou de la o demonstrație / test, apăsați din nou pe orice buton. Pentru a ieși din testul butonului (# 4) apăsați FncKey + Btn1 sau țineți apăsat EscKey (împământare PB4) sau reciclați puterea.

Datorită diferențelor dintre rezistențele interne ale MCU și toleranțele rezistenței, este posibil să trebuiască să faceți unele ajustări, astfel încât toate apăsările de buton simplu și dublu să fie detectate corect. Pentru a face acest lucru, utilizați test-4 (pentru a selecta acest lucru, consultați descrierea operațiunii de meniu de mai jos) a programului de testare. Rețineți că nu am folosit un rezistor de extragere extern, deoarece am mai planificat utilizări pentru intrarea PB4 care sunt incompatibile cu orice extragere.

Pasul 5: Prezentare generală a software-ului

Schița LadderGames.ino implementează patru jocuri, inclusiv câteva versiuni alternative.

Schița poate fi descărcată și rulată dintr-un ATtiny-85, Nano, Uno etc. cipul ATtiny-85:

Schimbați ceasul intern al ATtiny85 la 8 MHz, deoarece performanța este dorită pentru joc. Consultați:

forum.arduino.cc/index.php?topic=276606.0

Această schiță ar trebui să fie compatibilă cu cele mai vechi proiecte de scări conduse ATtiny-85, fără modificări, dar va avea o funcționalitate limitată.

Funcționarea meniului

La pornire există o verificare a stării de sănătate sub formă de baleiaj pe LED-uri și un set de bipuri. Apoi intră în modul meniu principal. Fiecare set de LED-uri de o culoare sunt aprinse timp de câteva secunde succesiv. Un joc este selectat apăsând un buton în timp ce un set asociat este aprins, jocul 1: roșu, jocul 2: galben, jocul 3: verde, jocul 4: albastru. În modul meniu Btn2, Btn3, Btn4 pot fi apăsate pentru a merge direct la jocurile 2, 3, respectiv 4. Odată ce un joc a fost selectat, va trebui să indicați varianta dorită. Pentru fiecare variantă disponibilă, un set de leduri colorate va clipi. Pur și simplu apăsați un buton pe cel dorit. Variațiile, „versiunile”, pentru fiecare joc sunt descrise în continuare mai jos.

Versiunea unu din toate cele patru jocuri poate fi jucată cu un singur buton. Fie unul conectat între PB4 și masă (Btn-0), ca în instructajele anterioare cu scară LED, fie cu un comutator care conectează o sarcină de 75k la masă (Btn-1). Oricare dintre acestea se va întâmpla în jocuri când instrucțiunile vorbesc despre apăsarea unui buton nespecific.

Pentru a ieși din orice joc puteți folosi FncKey + Btn1, țineți apăsat EscKey (aka: Btn0) timp de 1-2 secunde sau rotiți puterea.

Pasul 6: Joc

Jocul 1: Push-It

Aceasta este o adaptare a jocului meu „Push-It” de la unul dintre instructivele mele anterioare

www.instructables.com/id/Play-a-Game-with-a…

Scopul jocului este de a împinge numărul de clipiri și numărul de LED-uri aprinse la cât mai multe posibil. Push-It începe cu mai multe blițuri, care apoi se vor repeta. Dacă apăsați butonul după ultimul bliț din serie și atunci când ar exista unul suplimentar, următorul LED se va aprinde, iar numărul blițului va crește cu unul. Dar dacă „împingeți” înainte sau după perioada de timp a unui bliț suplimentar potențial, numărul de blițuri din set va fi redus.

De fiecare dată când reușești să mărești numărul de blițuri, nivelul de dificultate crește, pe măsură ce sincronizarea se accelerează puțin, ceea ce face din ce în ce mai greu să ajungi la un număr mai mare de blițuri.

Numărul de cont curent este stocat în memoria EEPROM pentru repornirea ulterioară la același nivel.

Jocul 2: Ping-Pong

Mare (deși singurul) joc competitiv cu doi jucători aici; unde mingea (o singură lumină) merge dintr-o parte în alta, din ce în ce mai repede, de fiecare dată când este „lovită” înapoi.

Am implementat pentru prima dată acest joc cu un singur rând de lumini pe butoanele de pe panoul frontal al unui super-mini computer aerospațial în anii 1970.

Pentru a lovi mingea înainte și înapoi, paleta corespunzătoare trebuie să o lovească (butonul apăsat) când este în poziția finală (ultimul LED). Prima parte care ratează pierde, iar luminile de pe partea câștigătoare clipesc.

Există două variante, una necesitând un singur buton (Btn 0 sau 1), care va lovi mingea la ambele capete; și a doua versiune, este pentru două persoane cap la cap, care necesită două butoane; butonul 1 din partea stângă și butonul 4 sau 0 pe cealaltă. Este preferată utilizarea butoanelor 1 și 4, deoarece acestea nu vor interfera una cu cealaltă; fiecare poate fi lovit pentru a returna mingea de la capăt, indiferent de starea celuilalt buton.

Câștigătorul unui raliu este întotdeauna serverul pentru următorul.

Jocul 3: Galerie de fotografiere

Trageți toate țintele (luminile) pentru a finaliza un nivel. În fiecare nivel superior acțiunea este mai rapidă.

Există două versiuni; una în care site-ul este fix și țintele se mișcă și altul în care site-ul se mișcă și țintele sunt încă. În fiecare caz, o lovitură elimină o lumină țintă; iar o ratare face ca o țintă să apară. Când o țintă este la vedere, vederea se aprinde mai puternic, altfel este slabă.

În versiunea 1, vederea începe de la stânga (jos) și scanează la dreapta. În versiunea 2, vederea este fixată în mijloc, în timp ce ținta se deplasează de la dreapta la stânga. Privind codul, există versiuni fantomatice 3 și 4 care ar putea fi activate, dar vă puneți propria bunăstare pe propriul risc.

Jocul 4: JumpMan

Ideea este că treci printr-un nivel de joc în care vin obiecte pe care trebuie să le treci, pe măsură ce progresezi, acestea vin mai repede. Într-o altă versiune de joc, există și obiecte peste cap pe care trebuie să le ascunzi.

În versiunea 1 există doar obiecte peste care săriți. Pentru a sări trebuie să apăsați butonul când obiectul ajunge la ultima celulă din stânga; care se luminează atunci când se produce acest lucru. Pentru a sari 2 sau mai multe obiecte consecutive trebuie să sari (apăsați) pe primul și țineți apăsat butonul pentru restul.

În versiunea 2 se adaugă obiecte peste cap (intermitent). Aceștia sunt săriți prin sărituri în timpul celulei înainte de aceasta și se eliberează în timp ce se află în celula finală. Doar o singură cheltuială poate clipi la un moment dat, așa că, odată ce a trecut unul, este posibil să vedeți un altul (care nu clipește înainte) dezgolit pe voi. Nu vor exista niciodată cheltuieli generale consecutive, dar pot fi adiacente unuia sau mai multor obiecte de tip salt (tip bolovan).

În versiunea 3 a jocului, trebuie să ajungi, să folosești un buton separat pentru obiectele deasupra capului (Btn-2, 4 sau 0 la alegere); săriturile necesită Btn-1.

Odată ce ați reușit să treceți peste încă patru obiecte decât ați eșuat, avansați în nivel; există o felicitare audio și vizuală, apoi o reluare cu o viteză mai mare. Obținerea printr-un set de obiecte consecutive contează la fel ca un obiect individual.

Vă sfătuiesc să imprimați regulile de funcționare ale jocurilor ș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 în fața acestui lucru de mai multe ori.

Pasul 7: Actualizări, mai multe jocuri

Image
Image

Am realizat o consolă tipărită 3D pentru a adăuga afișajul și butoanele cu scară LED în linie.

Am conceput mai multe jocuri care utilizează acest hardware. Verificați-le și distrați-vă:

Jocuri noi de la „Whack a Mole” la „Tug of War”

Decembrie 2016. Acum, la sfârșitul linkului de mai sus, există o versiune unificată a codului, care include toate cele 12 jocuri.

17 februarie 2017: Iată ultimul set de jocuri pentru acest proiect, acum cu 16 jocuri (schiță mai jos). Aceasta va rula pe orice implementare MCU cu 32KBytes de memorie flash pentru program. Totuși, oricare dintre 3 sau 4 din cele 16 jocuri pot fi introduse într-un ATtiny. Vă recomand să utilizați arduino-urile Nano 3. Ultimele 4 jocuri adăugate sunt cursele „Le Mans”, concursul „Spray” de vopsire spray la cap, capul de baschet „PIG”, „BiFunc”, un joc de testare a operației binare.

Cu un joc mai mare și mai diversificat al acestor jocuri, este posibilă îmbunătățirea abilităților lor de joc, bucurarea pentru jucătorii de toate nivelurile. Cred că există o mulțime de spațiu de îmbunătățit în cursele de la Le Mans prin proiectarea aspectului pistelor și sincronizarea jocului.

Am, scrise, încă vreo 10 activități / jocuri / funcții, dintre care sper să le pun la dispoziție în toamna anului 2017.

De asemenea, aceste jocuri cu o singură linie pot fi modificate pentru un afișaj LCD de 2 linii 2x16, cu o linie de obiecte de joc și alta pentru un anumit text. Am făcut puțin din toate acestea, dar, deoarece sunt susținut cu proiecte din câte văd, nu știu când sau dacă aș avea o rundă. Deci, dacă cineva este motivat să adopte și să optimizeze aceste jocuri pentru un ecran LCD 2x16, vă rugăm să ne împărtășiți cu mine și cu ceilalți.

Pe lângă cele 4 jocuri noi de aici în Menu_16Games.ino, am inclus proiectul meu și am creat instructabile conexe: Consolă de jocuri LED cu linie și alimentarea proiectului dvs. MCU portabil

Sper că mulți își iau timpul și… Bucurați-vă de aceste jocuri.

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

2 septembrie 2017: capacitate de lucru îmbunătățită cu butoane vechi și zgomotoase de joystick externe, în jocul cap-cap (grupa 2).

13 decembrie 2017: Manevrarea îmbunătățită a rebotării butoanelor și soluționarea măsurătorilor, rezolvarea problemelor minore. Încercasem să folosesc un condensator pe linia de intrare analogică a butonului, dar pentru a fi eficient, a rezultat stabilirea măsurării lente producând identificări false de nivel sau software-ul așteptând atât de mult acea acțiune rapidă a jocului a fost compromisă.

Apr 2018: am constatat că cuplajele de compresie de 5/8 fac corpuri grozave pentru butoanele externe cu piston. Deoarece copiilor mei le place să folosească o pereche din acestea, am adăugat știfturi de antet pentru a le conecta cu ușurință pe două dintre ele (cum ar fi Btn1 și Btn4).

Rețineți că am creat un alt proiect, în octombrie anul trecut, care este construit pe hardware-ul acestui instructabil. Este în spiritul de Halloween și poate fi foarte distractiv, mai ales pentru copii. Instrucționabil: Dispozitive-Influențate-Psihice-Fantome

Recomandat: