Victor-Alexandru VLAICU (67401) - Simon Spune

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

La baza proiectului o sa stea jocul simon spune ce presupune urmarirea unei secvente de aprindere a unor leduri si apasarea unor butoane corespunzatoare fiecarui led, astfel incat sa se redea secventa afisata. Aprinderea unui led o sa fie insotita de un sunet redata de difuzor si o sa mai existe si un LCD (ca la laborator) ce o sa afiseze informatii despre starea jocului. ( joc nou/ game over/ numar incercari).

Taskuri

  • Implementare nivele - aprindere leduri + receptie de la butoanele apasate de user.
  • Afisare informatii LCD - joc nou,numar de incercari, game over.
  • Sunet difuzor - atunci cand se aprinde un led se va reda un sunet pentru a face jocul mai interactiv si pentru a spori atentia jucatorului.

Descriere generală

Pe LCD se afiseaza informatii legate de joc ( inceput joc/sfarsit joc/welcome/winner/ etc ).
Ledurile se aprind conform secventei predefinite pentru nivelul curent.
Cand un led se aprinde difuzorul reda un sunet.
Atunci cand jucatorul reda secventa urmarita apasa pe butoane iar ledul specific butonului se aprinde.

Stare rulare

Start → “LCD afiseaza Welcome timp de 3 secunde” → incepe jocul si pe LCD se afiseara nivel si numar de vieti.

Apasare corecta a secventei → Se aprind toate ledurile, se face update la informatii LCD si se reia de la pasul anterior.
Apasare gresita a secventei → Se aprind 2 leduri specifice, se face update la informatii LCD si se reia secventa.

Daca toate nivelele s-au terminat cu succes → LCD afiseaza WINNER.
Daca am pierdut → LCD afiseaza “Game over”.

Hardware Design

Tabel Componente

Schema electrica

Software Design

Structura codului este una tipica unui joc. Avand o bucla infinita in cadrul careia fluxul de control are loc prin intermediul unor variabile de control si in care se asteapta inputul de la utilizator.

Pentru a afisa informatii pe LCD, sterg ecranul si dupa apelez functia LCD_print.

Pentru a reda sunete in momentul cand u led trebuie aprins m-am folosit de codul morse din laboratorul 0 pentru a compune un sunet placut si de durata convenabila.

Inputul de la butoane respecta rutina clasica ce a fost folosita la laboratoare.

Secventele de aprindere sunt hardcodate in program printr-o secventa de numere 0-3, care reprezinta indexul unui LED.

Am folosit o matrice ca structura de date pentru retinerea secventelor, unde coloanele reprezinta secventa de la nivelul linie.

Rezultate Obţinute

  • Totate taskurile propuse au fost indeplinite.
  • Am intampinat cateva buguri hardware ce am reusit sa le rezolv. (lipituri proaste)


Imagini proiect:




Concluzii

A fost un proiect foarte interesant ce mi-a starnit interesul de proiectare hardware cat si de dezvoltare pe sisteme embedded.

Download

Link download schema:schema_vlaicu_finaaal_eagle.sch
Link download surse: vlaicu_victor_334cc_pm_2017.zip

Bibliografie/Resurse

  • Laboratoare 0,1,2,3 si sursele pentru LCD.
  • Documentația în format PDF
pm/prj2017/astratulat/67401.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