This shows you the differences between two versions of the page.
pm:prj2021:abasoc:colorsequencegame [2021/05/26 12:59] tudor.gaina [Bibliografie/Resurse] |
pm:prj2021:abasoc:colorsequencegame [2021/06/02 21:35] (current) tudor.gaina [Bibliografie/Resurse] |
||
---|---|---|---|
Line 6: | Line 6: | ||
====== Introducere ====== | ====== Introducere ====== | ||
- | Color Sequence Game este un joc in care trebuie sa urmărești atent ledurile și sa reții ordinea in care s-au aprins, pentru ca mai apoi sa reproduci aceasta o secvența de culori folosind butoanele colorate. | + | Color Sequence Game este un joc in care trebuie sa urmărești atent ledurile și sa reții ordinea in care s-au aprins, pentru ca mai apoi sa reproduci aceasta o secvența de culori folosind butoanele corespunzătoare ledurilor. |
====== Descriere generală ====== | ====== Descriere generală ====== | ||
- | Jocul contine 4 butoane, 4 leduri si un buzzer. | + | Jocul conține 3 butoane, 3 leduri și un LCD. |
- | O data ce jucatorul apasa unul din cele 4 butoane jocul va incepe. | + | Urmărind indicațiile date către jucător cu ajutorul LCD-ului, acesta va putea știi in ce stare se afla jocul: |
+ | * Starea de așteptare a jucătorului in care se așteaptă apăsarea unui buton pentru a trece mai departe. | ||
+ | * Starea de redare a secvenței unde se va afișa cu ajutorul ledurilor secvența ce trebuie memorata. | ||
+ | * Starea de așteptare a introduceri secvenței unde jucătorul va apasă butoanele in ordinea in care au fost aprinse ledurile. | ||
- | Inainte si dupa ce s-a afisat complet secventa se vor aprinde toate butoanele pentru a atentiona jucatorul cu privire la aceste evenimente. | + | Initial se începe de la nivelul 1, adică secvența conține un singur led. |
- | Dupa ce butoanele au fost apasate in ordinea corespunzatoare se va trece la urmatorul nivel. Fiecare nivel va fi din ce in ce mai greu, deoarece secventa va fi incrementata cu 1 fata de nivelul anterior. | + | După ce butoanele au fost apăsate in ordinea corespunzătoare se va trece la următorul nivel. Fiecare nivel va fi din ce in ce mai greu, deoarece secvența va fi incrementata cu 1 fata de nivelul anterior. |
- | Daca Secventa va fi introdusa gresit de catre jucator tot jocul se va reseta, pentru a porni un nou joc se va apasa orice buton. | + | Dacă Secvența va fi introdusa greșit de către jucător tot jocul se va reseta, va reîncepe de la nivelul 1. |
- | De fiecare data cand se produce o actiune a jucatorului, buzzerul se va activa si va scoate un sunet specific. | + | Schema Bloc: |
+ | {{:pm:prj2021:abasoc:schema_bloc_gainatudor.png|}} | ||
====== Hardware Design ====== | ====== Hardware Design ====== | ||
Componente: | Componente: | ||
Line 36: | Line 40: | ||
====== Software Design ====== | ====== Software Design ====== | ||
- | Pentru implementarea codului ma voi folosi de mai multe stări ale programului: | + | Pentru dezvoltarea software am folosit Tinkercad. |
- | - Waiting for Player - Se va aștepta unui buton pentru a semnala ca playerul este gata sa joace | + | |
- | - Generating Sequence - Se va genera o secvența aleatoare de culori, timp in care inputul playerului nu va conta | + | |
- | - Waiting for Sequence - Se așteaptă secvența introdusa de către player și se validează dacă este la fel cu cea originală. | + | |
- | Programul va merge la infinit intre stările 2 și 3 pana când jucătorul va introduce o secvența greșita, caz in care programul se va întoarce in starea 1. | + | Initial am legat componentele la placa Arduino. |
+ | |||
+ | După aceea am început sa generez semnale IO pentru a ma asigura ca totul merge bine. | ||
+ | |||
+ | Am folosit următoarele biblioteci: | ||
+ | * LiquidCrystal.h pentru afișarea textului pe LCD | ||
+ | |||
+ | Într-un final am început sa stabilesc logica programului și sa o codez. | ||
+ | |||
+ | Codul și explicațiile sale se afla in comentariile din acesta. | ||
====== Rezultate Obținute ====== | ====== Rezultate Obținute ====== | ||
- | TODO | + | Într-un final jocul obținut arata in felul următor: |
+ | {{:pm:prj2021:abasoc:arduino1_gainatudor.jpeg?400|}} | ||
+ | {{:pm:prj2021:abasoc:arduino2_gainatudor.jpeg?400|}} | ||
====== Concluzii ====== | ====== Concluzii ====== | ||
- | TODO | + | In concluzie a fost un proiect in care am învățat cum sa conectez mai multe componente intre ele și sa meargă pe o logica mai complexă. |
+ | Consider ca a fost un proiect interesant in care am reușit sa îmbin legarea componentelor hardware și comunicarea cu acestea in software. | ||
====== Download ====== | ====== Download ====== | ||
- | Proiect PDF:{{:pm:prj2021:abasoc:color_sequence_game_tudor.pdf|}} | + | Proiect PDF:{{:pm:prj2021:abasoc:color_sequence_game_gainatudor.pdf.pdf|}} |
+ | |||
+ | Codul in C:{{:pm:prj2021:abasoc:colorsequencegame.zip|}} | ||
====== Jurnal ====== | ====== Jurnal ====== | ||
Line 55: | Line 70: | ||
* 25 aprilie - Adăugarea Componentelor necesare | * 25 aprilie - Adăugarea Componentelor necesare | ||
* 26 mai - Modificarea schemei | * 26 mai - Modificarea schemei | ||
+ | * 2 iunie - Adăugarea Pozelor cu proiectul | ||
====== Bibliografie/Resurse ====== | ====== Bibliografie/Resurse ====== | ||
* Laboratoarele de PM: https://ocw.cs.pub.ro/courses/pm | * Laboratoarele de PM: https://ocw.cs.pub.ro/courses/pm | ||
* Conectarea unui LCD: https://core-electronics.com.au/tutorials/use-lcd-arduino-uno.html | * Conectarea unui LCD: https://core-electronics.com.au/tutorials/use-lcd-arduino-uno.html | ||
+ | * Demo Youtube: https://www.youtube.com/watch?v=7i45q6ZYXM8 | ||
+ | * Pagina Proiectului: https://ocw.cs.pub.ro/courses/pm/prj2021/abasoc/colorsequencegame |