This shows you the differences between two versions of the page.
pm:prj2021:alazar:hangman_lcd [2021/05/23 10:42] audristioiu [Software Design] |
pm:prj2021:alazar:hangman_lcd [2021/05/27 19:20] (current) audristioiu [Bibliografie/Resurse] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | [[https://ocw.cs.pub.ro/courses/pm/prj2021/alazar/hangman_lcd|Udristioiu Alexandru Hangman]] | ||
====== Hangman LCD ====== | ====== Hangman LCD ====== | ||
=== Autor : Udristioiu Alexandru === | === Autor : Udristioiu Alexandru === | ||
Line 5: | Line 4: | ||
=== Email : udristioiualexandru@gmail.com === | === Email : udristioiualexandru@gmail.com === | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | Proiectul meu se bazeaza pe jocul Hangman(spanzuratoarea).Mesajele specifice verificarii fiecarei litere se vor afisa pe un LCD. | + | Proiectul meu se bazeaza pe jocul Hangman(spanzuratoarea).Mesajele specifice verificarii fiecarei litere se vor afisa pe un LCD , precum si castigarea/pierderea jocului. |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | Voi folosi un keypad pentru introducerea literelor si voi verifica daca se afla in cuvant,moment in care voi semnala daca aceasta exista printr-un sunet provenit de la un buzzer.Altfel va scadea numarul de vieti(3) initiale.Daca numarul de vieti este 0 atunci jocul s-a terminat(cu mesaj pe ecran + sunet). Output-ul se va afisa pe un LCD si atunci cand s-au ghicit toate literele(+ sunet). Cuvantul ce se doreste ghicit va fi citit de pe interfata seriala.Din lungimea totala a cuvantului se scade numarul de aparitii al literei ghicite.Atunci cand s-a ajuns la 0 inseamna ca acesta a fost complet gasit.Pe ecran se vor afisa si mesaje in cazul in care litera a fost deja verificata,s-a gasit cate o litera(unde se afizeaza si numarul de aparitii + pozitia literei) care se regaseste sau ea nu exista in cuvantul dat. | + | Voi folosi un keypad pentru introducerea literelor si voi verifica daca se afla in cuvant,moment in care voi semnala daca aceasta exista printr-un sunet provenit de la un buzzer.Altfel va scadea numarul de vieti(3) initiale.Daca numarul de vieti este 0 atunci jocul s-a terminat(cu mesaj pe ecran + sunet). Output-ul se va afisa pe un LCD si atunci cand s-au ghicit toate literele(+ sunet). Cuvantul ce se doreste ghicit va fi citit de pe interfata seriala.Din lungimea totala a cuvantului se scade numarul de aparitii al literei ghicite.Atunci cand s-a ajuns la 0 inseamna ca acesta a fost complet gasit.Pe ecran se vor afisa si mesaje in cazul in care litera a fost deja verificata,s-a regasit in cuvantul dat(unde se afiseaza si numarul de aparitii + pozitia literei) sau ea nu apare . |
Line 59: | Line 58: | ||
3.** Win()** \\ | 3.** Win()** \\ | ||
- | Functie in care se ajunge daca tot cuvantul a fost ghicit.Se notifica acest fapt prin mesaj pe ecranul LCD si un sunet corespunzator. | + | Functie in care se ajunge daca tot cuvantul a fost ghicit.Se notifica acest fapt prin mesaj pe ecranul LCD si un sunet corespunzator.Se reseteaza variabilele folosite mai apoi. |
4. **endGame()** \\ | 4. **endGame()** \\ | ||
- | Functie in care se ajunge daca numarul de vieti a ajuns la 0(jocul a fost pierdut).Se notifica acest fapt prin mesaj pe ecranul LCD si un sunet corespunzator. | + | Functie in care se ajunge daca numarul de vieti a ajuns la 0(jocul a fost pierdut).Se notifica acest fapt prin mesaj pe ecranul LCD si un sunet corespunzator.Se reseteaza variabilele folosite mai apoi. |
5. **setup()** \\ | 5. **setup()** \\ | ||
Line 79: | Line 78: | ||
Pentru verificare prima oara selectez litera pe care o caut pe baza numarului de apasari si a tastei,apoi verific daca ea a mai fost apasata deja si dupa apelez functia CheckKeypad. | Pentru verificare prima oara selectez litera pe care o caut pe baza numarului de apasari si a tastei,apoi verific daca ea a mai fost apasata deja si dupa apelez functia CheckKeypad. | ||
- | Pentru sunete am folosit functia [[https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/ | tone()]] ce genereaza un semnal de PWM cu 50% duty cycle (pin-ul pe care este setat trebuie sa aiba PWM). | + | Pentru sunete am folosit functia [[https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/ | tone()]] ce genereaza un semnal de PWM cu 50% duty cycle (pin-ul pe care este setat trebuie sa aiba suport pentru PWM). |
Line 109: | Line 108: | ||
Demo-ul proiectului se gaseste pe drive aici : [[https://drive.google.com/drive/folders/1wDem01Oq5A7P9Lzj5jDHa0qNywRQYeyI|Hangman_demo]] | Demo-ul proiectului se gaseste pe drive aici : [[https://drive.google.com/drive/folders/1wDem01Oq5A7P9Lzj5jDHa0qNywRQYeyI|Hangman_demo]] | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | A fost un proiect interesant.Consider ca este o experienta din care am foarte multe de invatat,chiar daca implementarea jocului a fost destul de simpla. | + | A fost un proiect interesant.Consider ca este o experienta din care am foarte multe de invatat. |
===== Download ===== | ===== Download ===== | ||
- | In arhiva se afla fisierul Arduino si un readme pentru asocierile taste-numar apasari-litera. | + | In arhiva se afla fisierul Arduino si un readme pentru asocierile litera-tasta: |
{{:pm:prj2021:alazar:331cb_udristioiualexandru_hangman.zip|}} | {{:pm:prj2021:alazar:331cb_udristioiualexandru_hangman.zip|}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
Line 121: | Line 120: | ||
* 14 mai - Realizare montaj \\ | * 14 mai - Realizare montaj \\ | ||
* 16 mai - Imbunatatire cod si verificare pe montaj \\ | * 16 mai - Imbunatatire cod si verificare pe montaj \\ | ||
- | * 22 mai - Finalizare pagina wiki | + | * 25 mai - Finalizare pagina wiki |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> | ||
Line 132: | Line 131: | ||
* https://ocw.cs.pub.ro/courses/pm/lab/lab6-2021 - LCD \\ | * https://ocw.cs.pub.ro/courses/pm/lab/lab6-2021 - LCD \\ | ||
* Schema bloc a fost facuta in [[https://app.diagrams.net]] \\ | * Schema bloc a fost facuta in [[https://app.diagrams.net]] \\ | ||
- | * Schema electrica a fost facuta in [[https://www.tinkercad.com/dashboard]] | + | * Schema electrica a fost facuta in [[https://www.tinkercad.com/dashboard]] |