SimonSays

Introducere

Voi realiza un joc similar cu Simon Says folosind leduri si butoane.

Descriere generală

In prima faza, modulul este in starea standby(cele 4 leduri sunt aprinse) la apasarea unui buton se intra in meniul select si se selecteaza nivelul (Easy / Medium / Hard / Hard with time). In urma selectarii nivelului ledul RGB devine albastru si se afiseaza secventa de leduri. Cand ledul RGB devine verde utilizatorul poate apasa butoanele pentru a aprinde leduri. In functie de rezultat, buzzerul va reda o melodie.

Hardware Design

- Arduino UNO
- Breadboard
- Rezistori
- Fire
- Buzzer
- Leduri
- Butoane

Software Design

Se foloseste o variabila globala state modificata cu ajutorul intreruperilor pentru a determina starea curenta a placutei.

- void setup() → initializare pinMode si intreruperi
- bool valid_press() → debouncing
- void win(), void fail() → functii pentru rutina de castig/pierdere, ambele reseteaza state la STANDBY
- void loop() → cand state-ul este schimbat de la STANDBY porneste nivelul selectat
- void level(int length, bool timed):

  • genereaza o secventa de lungimea data si eventual contorizeaza timpul
  • seteaza state la START, afiseaza secventa, apoi seteaza state la PLAYING
  • asteapta ca state-ul sa fie diferit de playing si alege actiunea potrivita pentru finalul jocului

- functia de intreruperi():

  • Butonul 4 trece placuta din STANDBY in SELECT.
  • In starea SELECT fiecare buton corespunde unui nivel: EASY, MEDIUM, HARD, HARD with time si schimba starea conform nivelului selectat.
  • In starea PLAYING fiecare buton corespunde unui led.

Rezultate Obţinute

Am realizat o versiune compacta a jocului SimonSays cu interfata hardware si functii de accesibiliate(jucatorul poate selecta dificultatea jocului). Ideea jocului este repetarea unei secvente de leduri date, avand lungimea variabila si timeout pe mutari.

Concluzii

Proiectul are o structura simpla fiind realizat cu un numar redus de componente. Conectarea componentelor la placuta s-a facut cu ajutorul breadboardului, iar componentele au folosit toti pinii de la 2 la 13. Fata de laborator, proiectul a fost mai complex si a presupus un mediu diferit de lucru intrucat bug-urile sunt greu de depistat in aplicatii mai mari. A fost o experienta placuta si a fost interesant sa lucrez cu componente arduino.

Download

Bibliografie/Resurse

pm/prj2021/cghenea/simonsays.txt · Last modified: 2021/05/26 16:55 by aapostolescu
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