Irineu BĂRBIERU - Memory Game

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul consta in redarea diferitor secvente de aprindere de led-uri. Player-ul trebuie dupa aceea sa reconstituie secventa prin apasarea unor butoane, specifice fiecarui led. Daca reuseste sa reproduca ordinea in mod corect, va trece mai departe. De asemenea, jucatorul va avea un anumit numar de vieti.

Descriere generală

Hardware Design

Lista de piese:

  • Placa de baza
  • 10 led-uri albastre
  • 10 butoane pentru aprindere led-uri
  • 1 buton pentru resetarea jocului
  • 10 rezistente pentru led-uri (1K)
  • fire de legatura pentru componente
  • placa de test
  • cabluri mama-mama pentru conectarea pinilor dintre placa de test si plaza de baza
  • bareta de pini(21 vor fi folositi)

Schema electrica:

Pentru realizarea schemei electrice am folosit utilitarul Eagle (6.5.0)

Software Design

Descrierea codului aplicaţiei (firmware):

  • compilator: Avr-gcc(in forma precompilata WinAVR)
  • mediu de dezvoltare: Programmer's Notepad
  • librării: avr-libc, stdlib
  • Bootloader pentru programarea microcontroller-ului
  • surse şi funcţii implementate:

proiect.c → sursa in care am implementat toate functiile:

  1. main()
  2. run_game() → functia de start a jocului
  3. led_on(index) → primeste un index pe baza caruia se va aprinde led-ul corespunzator din array
  4. getIndexOfButtonPressed() → determina ce buton a fost apasat si intoarce indexul corespunzator din array
  5. initializare() → setez pinii in mod corespunzator, impreuna cu rezistentele de pull-up pentru butoane
  6. start_or_final_seq() → secventa de afisare a led-urilor pentru inceputul/sfarsitul jocului
  7. castig_runda() → secventa de afisare a led-urilor pentru cand se termina o runda
  8. pierdut_runda() → secventa de afisare a led-urilor pentru cand s-a gresit reproducerea rundei si se reia etapa de la inceput
  9. sfarsit_etapa() → secventa de afisare a led-urilor pentru cand jucatorul a reprodus in mod corect toate rundele din etapa curenta, trecandu-se astfel la urmatoarea etapa

Rezultate Obţinute

A fost un proiect frumos pe care am reusit sa il termin, tinand cont de ce mi-am propus sa realizez. Rezultatul este un joc interesant ce testeaza memoria. Acesta se desfasoara in felul urmator:

  • La inceputul jocului dimensiunea secventei de reprodus, am setat-o ca fiind 2, insa aceasta se poate modifica usor prin intermediul macro-ului INITIAL_SEQ_SIZE
  • Exista un numar maxim de etape ce se poata seta prin macro-ul MAX_SEQ_SIZE
  • Numarul de runde din cadrul unei etape se poate seta si el prin intermediul macro-ului ROUND_PER_STAGE

https://www.youtube.com/watch?v=sy6Plv9KA70

Concluzii

In urma proiectului am deprins o mica experienta in privinta lipirii componentelor. Foarte important este ca, inainte sa ma apuc sa lipesc, trebuia sa imi realizez un plan mai bun, intrucat desi la exterior piesele lipite arata bine, prin pozitionarea lor nu chiar foarte inteligenta, mi-am facut singur viata mai grea la etapa de cablare a acestora. Totusi, trebuie sa spun ca mi-a placut proiectul, fiind si unul practic, eu neimplicandu-ma pana acum in activitati de acest gen.

Download

Jurnal

  1. Achizitionare componente placa de baza
  2. Lipirea acestora
  3. Achizitionare componente placa de test
  4. Lipirea acestora
  5. Cablarea acestora
  6. Dezvoltarea software-ului
  7. Prezentare proiect

Bibliografie/Resurse

  • Schema placa de baza
  • Laborator 0
pm/prj2015/fpapa/191992.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