Mihai-Bogdan TRIFU - Memory Game

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Memory Game consta in reproducerea secventei de aprindere a celor 6 leduri, apasand pe butoanele corespunzatoare.

Scopul jocului este acela de a testa memoria utilizatorului, parcurgand cat mai multe nivele.

Am ales tema aceasta deoarece am vrut inca de la inceput sa-mi construiesc propriul meu joculet, iar acesta mi s-a parut cel mai interesant dintre variantele pe care le aveam.

Descriere generală

Schema bloc:

  • Atmega - aprinde ledurile intr-o secventa random
  • Utilizator - reproduce secventa
  • Atmega - da feedback
  • Atmega - afiseaza nivelul sau eroare

Hardware Design

Piese folosite:

  • 6 leduri
  • 6 butoane
  • 6 rezistente de 270 ohmi
  • afisaj leduri (7 segmente) cu 2 cifre
  • 7 rezistente de 1 kohm
  • banda de fire
  • 5 conectori pt banda de fire

Software Design

Mediul de dezvoltare folosit: Notepad++, Command Prompt din Atmel Studio 6.1, Eagle

Descrierea codului:

  • initializez un vector cu 6 elemente peste care aplic apoi un algoritm de shuffle;
  • afisez pentru cateva momente nivelul curent
    1. insuficienti pini pentru ambele cifre
    2. aprinderea acestora se face alternativ, fiecare cate 10 milisecunde, astfel incat par a fi ambele cifre aprinse simultan
    3. 7 pini pentru cele 7 perechi de segmente ale cifrelor
    4. 2 pini de control pentru alternarea aprinderii acestora
  • aprind ledurile in ordinea random generata anterior
  • astept apasarea butoanelor
    1. ledul sta aprins atata timp cat butonul este apasat
    2. dupa eliberarea butonului, mai au loc doua clipiri ale ledurilor: ledul apasat, apoi ledul ce ar fi trebuit apasat
    3. daca s-a apasat un buton gresit, este afisat “Er”, iar jocul este resetat
  • daca s-au apasat toate cele 6 butoane in ordinea corecta, marchez castigarea nivelului prin licarirea tuturor ledurilor simultan
  • se trece la urmatorul nivel, reluandu-se pasii anteriori

(mai multe detalii in comentariile din codul sursa)

Rezultate Obţinute

Am obtinut in final un joc memory functional.

Concluzii

Lucrul la acest proiect a fost interesant, insa trebuie sa recunosc ca a fost nevoie de ceva migala pentru a lipi firele de pe spatele placutei atat de ordonat, iar asezarea pieselor a fost gandita special dinainte pentru a putea conecta piesele intre ele prin propriile picioruse, fara a folosi foarte multe fire de legatura.

Partea cea mai urata a fost necesitatea de a merge la magazinele de pe Maica Domnului de vreo 3 ori, in special datorita faptului ca nu gaseam acei conectori pentru banda de fire (care mai sunt si destul de scumpi pe deasupra).

In ceea ce priveste codul, am avut ceva probleme initial, deoarece foloseam un makefile gresit si desi totul parea sa fie ok, nu reuseam sa aprind nici macar un led. Dupa descoperirea problemei insa, partea de programare a fost destul de usoara.

Download

Arhiva contine Makefile-ul, fisierul sursa memory.c, fiserul memory.hex, cateva poze si schema in Eagle

<fc #FF0000>Login pentru download</fc>

Bibliografie/Resurse

pm/prj2013/dtudose/memory-game.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