Voi realiza un joc similar cu Simon Says folosind leduri si butoane.
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.
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):
- functia de intreruperi():
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.
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.
https://github.com/robsoncouto/arduino-songs/blob/master/starwars/starwars.ino https://github.com/robsoncouto/arduino-songs/blob/master/imperialmarch/imperialmarch.ino
Componente
https://www.optimusdigital.ro/ro/componente-electronice-condensatoare/1880-condensator-electrolitic-de-10-uf-la-63-v.html
https://ardushop.ro/ro/home/291-10-x-fire-dupont-mama-tata-20cm.html
https://ardushop.ro/ro/electronica/28-65-x-jumper-wires.html
https://www.optimusdigital.ro/ro/prototipare-breadboard-uri/8-breadboard-830-points.html
https://www.optimusdigital.ro/ro/audio-buzzere/634-buzzer-pasiv-de-5-v.html
https://www.optimusdigital.ro/ro/butoane-i-comutatoare/1119-buton-6x6x6.html
https://www.optimusdigital.ro/ro/componente-electronice-rezistoare/859-rezistor-025w-1k.html
https://www.optimusdigital.ro/ro/optoelectronice-led-uri/696-led-rou-de-3-mm-cu-lentile-difuze.html
https://www.optimusdigital.ro/ro/optoelectronice-led-uri/483-led-rgb-catod-comun.html
https://ardushop.ro/ro/home/29-placa-de-dezvoltare-uno-r3.html