This is an old revision of the document!


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

Concluzii

Download

Bibliografie/Resurse

pm/prj2021/cghenea/simonsays.1622036468.txt.gz · Last modified: 2021/05/26 16:41 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