This shows you the differences between two versions of the page.
pm:prj2022:arosca:memorare-pattern [2022/04/21 15:35] maria.brinza created |
pm:prj2022:arosca:memorare-pattern [2022/05/27 08:29] (current) maria.brinza |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Pattern Memory ====== | ====== Pattern Memory ====== | ||
+ | **Autor:** [[maria.brinza@stud.acs.upb.ro|Maria-Cristina Brînză]] | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | * Jocul consta in memorare pattern-ului de culori in care se aprinde o matrice. Jucatorul poate castiga cat mai multe puncte pe masura ce avanseaza. | + | * Jocul consta in memorarea pattern-ului de culori in care se aprinde o matrice. |
- | * Scopul acestuia este de a pune la incercare, dar si de a dezvolta atentia la detalii. Astfel de jocuri pot fi utile in dezvoltarea personala | + | * Scopul acestuia este de a pune la incercare, dar si de a dezvolta atentia la detalii. Astfel de jocuri pot fi utile in dezvoltarea personala. |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
+ | === Descriere === | ||
* LED-urile unei matrici se vor aprinde intr-un pattern generat random si vor sta aprinse doar cateva secunde. | * LED-urile unei matrici se vor aprinde intr-un pattern generat random si vor sta aprinse doar cateva secunde. | ||
- | * Jucatorul trebuie sa retina acest pattern si sa il refaca folosind un joystick. Exista cateva culori posibile prin care acesta va trece. Daca rezultatul este corect, acesta va primi un numar de puncte proportional cu runda. In caz contrar, jocul se va reseta. In ambele situatii buzzer-ul va scoate un sunet potrivit. | + | * Jucatorul trebuie sa retina acest pattern si sa il refaca folosind o telecomanda IR. Matricea este formata din 4 LED-uri si 2 LED-uri RGB. Pentru LED-uri, jucatorul poate alege din cele 2 stari posibile: aprins sau stins, iar pentru RGB-uri exista cateva culori posibile prin care acesta va trece. |
+ | * La final, in functie de rezultat, se va aprinde LED-ul verde daca jucatorul a reusit sa retina pattern-ul si LED-ul rosu in caz contrar. Fiecare din cele 2 cazuri vine si cu un sunet potrivit. | ||
- | * Schema bloc: | + | === Schema bloc === |
- | {{:pm:prj2022:arosca:schemablocpm.drawio.png?600|}} | + | {{:pm:prj2022:arosca:brz_bloc.jpg?600|}} |
+ | |||
+ | |||
+ | === Functionalitate == | ||
+ | * Matricea de LED-uri se aprinde timp ce cateva secunde, timp in care buzzer-ul suna. Dupa ce se stinge, jucatorul foloseste telecomanda IR astfel: pentru primul LED (pozitia [0, 0]), apasand butonul cu numarul '1' acesta se va aprinde sau se va stinge, in functie de starea anterioara. La fel se va proceda si cu celelalte LED-uri. In cazul RGB-urilor, apasarea butonului corespunzator va produce ciclarea prin culorile posibile. Atunci cand considera ca a terminat, jucatorul se poate verifica apasand butonul "EQ". | ||
+ | * Daca rezolvarea trimisa este corecta, se va transmite feedback prin culoarea LED-ului aprins si prin sunetul facut de Buzzer. Dupa cateva secunde, jocul se va reseta. | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | Piese necesare: | + | === Schema electrica === |
+ | {{:pm:prj2022:arosca:pattern_memory.png?600|}} | ||
+ | {{:pm:prj2022:arosca:pattern_memory_page-0001.jpg?600|}} | ||
+ | |||
+ | === Piese necesare === | ||
* Arduino Uno R3 | * Arduino Uno R3 | ||
* Breadboard | * Breadboard | ||
- | * LED-uri | + | * LED |
+ | * LED RGB | ||
* Buzzer | * Buzzer | ||
- | * Joystick | + | * IR Sensor |
- | * LCD | + | * IR Remote |
- | * Butoane | + | |
* Fire | * Fire | ||
+ | |||
+ | |||
+ | ===== Software Design ===== | ||
+ | === Medii de dezvoltare === | ||
+ | * Arduino IDE | ||
+ | * Tinkercad -- pentru realizarea schemei electrice | ||
+ | |||
+ | === Biblioteci === | ||
+ | * IRRemote.h - folosita la senzorul IR | ||
+ | * TonePlayer - folosita pentru a folosi buzzer-ul in paralel cu senzorul IR | ||
+ | |||
+ | === Functii === | ||
+ | * translateIR() - verifica input-ul primit de senzorul IR si modifica starea unui LED in functie de cazul respectiv. | ||
+ | * turnLEDsOn() - aprinde LED-urile dupa pattern-ul generat random | ||
+ | * turnLEDsOnGame() - aprinde becurile in functie de input-ul dat de jucator | ||
+ | * zeroValues() - reseteaza valorile pentru a reincepe un nou joc | ||
+ | * wrongAnswerSound() / correctAnswerSound() - porneste buzzer-ul in functie de rezultatul obtinut. | ||
+ | |||
+ | Cod sursa: {{:pm:prj2022:arosca:proiect_pm.zip|}} | ||
+ | |||
+ | ===== Rezultate obtinute ===== | ||
+ | === Demo === | ||
+ | https://www.youtube.com/watch?v=ze6ONo2SBAo&ab_channel=Maria-CristinaBrinza | ||
+ | |||
+ | === Proiect === | ||
+ | {{:pm:prj2022:arosca:proiect0.jpg?700|}} | ||
+ | {{:pm:prj2022:arosca:proiect1.jpg?700|}} | ||
+ | |||
+ | ===== Concluzii ===== | ||
+ | * Proiectul a fost realizat in intregime, rezultatul acestuia fiind cel dorit. | ||
+ | * Proiectul a fost foarte util pentru a intelege proiectarea cu microprocesoare, fiind o introducere draguta in Arduino. | ||
+ | |||
+ | ===== Jurnal ===== | ||
+ | * 20 - aprilie - 2022: Alegerea temei | ||
+ | * 21 - aprilie - 2022: Realizarea paginii de wiki | ||
+ | * 23 - mai - 2022: Inceperea proiectului - conectarea LED-urilor | ||
+ | * 25 - mai - 2022: Finalizarea proiectului | ||
+ | * 26 - mai - 2022: Finalizarea paginii de wiki | ||
+ | |||
+ | ===== Bibliografie ===== | ||
+ | * http://www.gammon.com.au/forum/?id=11504&reply=11#reply11 | ||
+ | * https://ocw.cs.pub.ro/courses/_media/pm/prj2021/agrigore/plusivo_nano_starter_kit_guide.pdf | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||