This shows you the differences between two versions of the page.
pm:prj2021:cghenea:simonsays [2021/05/26 16:06] aapostolescu [Bibliografie/Resurse] |
pm:prj2021:cghenea:simonsays [2021/05/26 16:55] (current) aapostolescu [Bibliografie/Resurse] |
||
---|---|---|---|
Line 24: | Line 24: | ||
===== Software Design ===== | ===== 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 ===== | ===== 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 ===== | ||
+ | {{:pm:prj2021:cghenea:simonsays_cablaj.jpeg?600|}} | ||
+ | {{:pm:prj2021:cghenea:simonsays_standby.jpeg?300|}} {{:pm:prj2021:cghenea:simonsays_playing.jpeg?300|}} | ||
- | ===== Download ===== | + | ===== 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 ===== | ||
+ | |||
+ | {{:pm:prj2021:cghenea:simonsays.zip|}} | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
https://github.com/robsoncouto/arduino-songs/blob/master/starwars/starwars.ino | https://github.com/robsoncouto/arduino-songs/blob/master/starwars/starwars.ino | ||
https://github.com/robsoncouto/arduino-songs/blob/master/imperialmarch/imperialmarch.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 \\ |