Introducere

Jocul de X și 0 nu are nevoie de nici o prezentare. Simplu și relaxant, el a însoțit omenirea de pe vremea Egiptului antic și până în prezent. Hârtie, nisip, papirus, pamânt, toate pot servi drept suprafețe de joacă. Dar cum ar fi o matrice de leduri?
Proiectul meu presupune implementarea unui joc de X și 0 pe o matrice de 9×9 leduri. Ledurile din matrice sunt dispuse cromatic astfel încât fiecare căsuță să conțină un X roșu și un 0 verde. Jocul este destinat utilizării multiplayer, selectarea căsuței făcându-se din 2 butoane. În virtutatea proverbului “după muncă, și răsplată”, odată încheiate aventurile în tărâmul letconului și depășite probele software, voi putea invita colegi, prieteni, părinți la un joc de X și 0 un pic mai… personalizat.

Descriere generală

Push Buttons:

  • SELECȚIE CĂSUȚĂ
  • CONFIRMARE SELECȚIE

Afisare Matrice Leduri:

  • leduri dispuse sub formă de 9 căsuțe
  • fiecare căsuță conține simbolurile X și 0 diferențiate prin culoarea ledurilor

Interacțiune:

  • La începutul fiecărui joc pâlpâie ledurile corespunzătoare primei poziții posibile pentrul X.
  • La apăsarea butonului de SELECȚIE POZIȚIE, vor pâlpâi ledurile corespunzătoare următoarei căsuțe valide, jucătorul putând să-și aleagă astfel orice căsuță liberă. Parcurgerea căsuțelor se face de la stânga la dreapta. de sus în jos.
  • Pentru a anunța microcontrollerul de alegerea unei anumite căsuțe, jucătorul trebuie să apese butonul de CONFIRMARE SELECȚIE.
  • Microcontrollerul ține minte al cui este rândul să joace și după fiecare apăsare a butonului CONFIRMARE SELECȚIE va face să pâlpâie ledurile corespunzătoare simbolului jucătorului curent pe prima casuță validă.

Hardware Design

Listă de piese:

  • 45 leduri roșii de 3mm
  • 36 leduri verzi de 3mm
  • 9 rezistențe de 1K
  • 9 rezistențe de 620 ohmi
  • 9 transistoare
  • 2 butoane

Am desenat schema electrică în Eagle urmând ideea de bază dintr-o schemă de pe internet care poate fi gasită la resurse hardware.

Hardware:

Software Design

Descrierea codului aplicaţiei (firmware):

  • Mediu de dezvoltare: AVR Studio 4.18
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Din lipsă de timp, am reușit să implementez doar partea hardware, deci practic jumătate din ce mi-am propus. Am dorit inițíal să lucrez în paralel la partea hardware și la cea software: într-o pauză de lipituri să simulez programul în Proteus, însă limitările simulatorului m-au încurcat și m-am axat pe construirea părții de hardware. Nu am reușit încă să testez placa pentru că am avut o mică problemă cu programarea microcontrollerului, fiind necesară probabil rescrierea bootloader-ului.
Update! Am testat placa și din punct de vedere hardware este în regulă.

Concluzii

  • partea de hardware s-a dovedit destul de solicitantă datorită numărului mare de lipituri. Cred că ar fi fost o alegere mai bună să lucrez cu o plăcuță imprimată, chiar dacă nu cunosc prea bine procesul de imprimare.
  • am considerat că în Proteus simulările sunt foarte realistice și că mă pot baza pe el pentru implementarea programului până când termin hardware-ul. Din păcate de la primele încercări de a aprinde coloanele rapid pentru a obține efectul acela de persistance of vision am dat peste diverse erori de simulare.
  • în vacanță, doresc să realizez și partea software

Download

Jurnal

The making of

Capitolul I

81*2+9*2+9*2+9*3+… Clar pierd șirul piciorușelor. Mai bine trec la treabă:).
Să văd cum le lipesc. Hmm…plăcuța de test are conexiuni pe linie… Aș putea profita pentru a nu mai lipi între ele catodurile ledurilor pe fiecare linie.
Ce-ar fi să construiesc matricea coloană cu coloană, lipind anodurile ledurilor?
Zis și făcut.

Matrița din carton:

Gata coloanele!

Tabela de X și 0

Capitolul II

Aventura lipiturilor continuă: rezistențe, tranzistoare, barete, fire nărăvașe

Placuța finala:

Capitolul III

În sfârșit, ultimele lipituri sunt gata. Multimetrul le confirmă corectitudinea.
Să vedem cum merge! Pentru început să aprind un singur led. Vai, dar nu se poate:
Could not find USB device www.fischl.de/AVRUSBBoot
Could not find USB device “AVRUSBBoot” with vid=0x16c0 pid=0x5dc

… iar în Proteus apar mereu erori în timpul simulării…

THE END?

Bibliografie/Resurse

pm/prj2010/dloghin/xsi0leduri.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0