Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:dbrigalda:jocuri-de-memorie [2021/05/29 16:26]
damian.silisteanu
pm:prj2021:dbrigalda:jocuri-de-memorie [2021/06/02 13:33] (current)
damian.silisteanu [Rezultate Obtinute]
Line 26: Line 26:
 Va stimula memoria jucatorului si ii va distrage atentia de la problemele de zi cu zi. Va reprezenta un mod de divertisment si de testare a memoriei intr-o maniera cat mai placuta, acest lucru fiind util oricui care se afla in cautarea unui moment de relaxare. ​ Va stimula memoria jucatorului si ii va distrage atentia de la problemele de zi cu zi. Va reprezenta un mod de divertisment si de testare a memoriei intr-o maniera cat mai placuta, acest lucru fiind util oricui care se afla in cautarea unui moment de relaxare. ​
  
-===== Descriere ​generala ​=====+===== Descriere ​Generala ​=====
 ==== Functionalitate ===== ==== Functionalitate =====
-Jocul va incepe cu ecranul de start, adica prin afisarea pe LCD a mesajului "Press any key to START"​. Dupa apasarea oricarui dintre cele doua butoane(butonul rosu are functionalitatea de selectare mod de input, iar butonul albastru serveste la selectarea ledului dorit) jocul va incepe. Se va indica secventa de leduri, la inceput formata dintr-un singur led, si se vor afisa pe ecran informatiile necesare desfasurarii jocului, adica numarul de leduri din secventa curenta si scorul actual. Dupa ce secventa este aratata jucatorului acesta poate incepe introducerea acesteia. Acum jucatorul are in orice moment optiunea de a comuta intre modurile de input(servo cu potentiometru sau ultrasonic) prin intermediul butonului rosu. Pentru modul de input cu servo, jucatorul va regla din potentiometru astfel incat servomotorul sa indice ledul dorit care va sta si aprins. Pentru a confirma ledul dorit jucatorul trebui ca in momentul in care ledul este aprins sa apese si pe butonul de selectare, adica cel albastru. Similar se va proceda si in cazul senzorului ultrasonic, prin asezarea unui obiect sau a mainii jucatorului in fata ledului dorit, ledul se va aprinde si va trebui selectat cu ajutorul butonului. In timpul jocului, jucatorul va sti pe ce mod de input se afla prin afisarea in coltul din stanga jos a unei iconite sugestive celor doua moduri de input. In cazul in care ledul indicat este corect acesta va palpai pentru a-i confirma acest lucru jucatorului si se va trece mai departe in asteptarea introducerii celorlalte leduri din secventa sau daca a fost ultimul led din secventa curenta se va afisa secventa cu adaugarea unui nou led la final. Daca ledul indicat este gresit ledurile o sa faca un joc de lumini pentru a anunta jucatorul ca jocul s-a terminat, iar pe LCD se va afisa mesajul "GAME OVER !" urmat de scorul obtinut. In cazul in care jucatorul introduce fara nicio greseala toate secventele de leduri, inclusiv ultima secventa de 10 leduri atunci jocul se va opri, ledurile vor face un alt dans luminos care va anunta jucatorul ca a castigat si pe LCD se va afisa mesajul "​CONGRATULATIONS!"​ si scorul obtinut. Din acest stadiu de joc se poate trece la apasarea oricarui buton in stadiul initial si jocul poate incepe din nou.+Jocul va incepe cu ecranul de start, adica prin afisarea pe LCD a mesajului "Press any key to START"​. Dupa apasarea oricarui dintre cele doua butoane(butonul rosu are functionalitatea de selectare mod de input, iar butonul albastru serveste la selectarea ledului dorit) jocul va incepe.\\ 
 + 
 +Se va indica secventa de leduri, la inceput formata dintr-un singur led, si se vor afisa pe ecran informatiile necesare desfasurarii jocului, adica numarul de leduri din secventa curenta si scorul actual. Dupa ce secventa este aratata jucatorului acesta poate incepe introducerea acesteia. Acum jucatorul are in orice moment optiunea de a comuta intre modurile de input(servo cu potentiometru sau ultrasonic) prin intermediul butonului rosu.\\ 
 + 
 +Pentru modul de input cu servo, jucatorul va regla din potentiometru astfel incat servomotorul sa indice ledul dorit care va sta si aprins. Pentru a confirma ledul dorit jucatorul trebui ca in momentul in care ledul este aprins sa apese si pe butonul de selectare, adica cel albastru. Similar se va proceda si in cazul senzorului ultrasonic, prin asezarea unui obiect sau a mainii jucatorului in fata ledului dorit, ledul se va aprinde si va trebui selectat cu ajutorul butonului. In timpul jocului, jucatorul va sti pe ce mod de input se afla prin afisarea in coltul din stanga jos a unei iconite sugestive celor doua moduri de input.\\ 
 + 
 +In cazul in care ledul indicat este corect acesta va palpai pentru a-i confirma acest lucru jucatorului si se va trece mai departe in asteptarea introducerii celorlalte leduri din secventa sau daca a fost ultimul led din secventa curenta se va afisa secventa cu adaugarea unui nou led la final. Daca ledul indicat este gresit ledurile o sa faca un joc de lumini pentru a anunta jucatorul ca jocul s-a terminat, iar pe LCD se va afisa mesajul "GAME OVER !" urmat de scorul obtinut. In cazul in care jucatorul introduce fara nicio greseala toate secventele de leduri, inclusiv ultima secventa de 10 leduri atunci jocul se va opri, ledurile vor face un alt dans luminos care va anunta jucatorul ca a castigat si pe LCD se va afisa mesajul "​CONGRATULATIONS!"​ si scorul obtinut. Din acest stadiu de joc se poate trece la apasarea oricarui buton in stadiul initial si jocul poate incepe din nou.
  
 ==== Schema bloc ==== ==== Schema bloc ====
Line 37: Line 43:
 ==== Lista de componente: ==== ==== Lista de componente: ====
 ^ Nume                        ^ Numar ^ Link ^ ^ Nume                        ^ Numar ^ Link ^
-| Arduino Uno                 | 1     ​| ​[[https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057]] +| Arduino Uno                 | 1     ​| ​<​html><​a href="https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057">​Chit Arduino</​a></​html> ​
-| Breadboard ​                 | 2     ​| ​[[https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057]] +| Breadboard ​                 | 2     ​| ​<​html><​a href="https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057">​Chit Arduino</​a></​html> ​
-| Potențiometru 10K           | 2     ​| ​[[https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057]] +| Potențiometru 10K           | 2     ​| ​<​html><​a href="https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057">​Chit Arduino</​a></​html> ​
-| Buton                       | 2     ​| ​[[https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057]] +| Buton                       | 2     ​| ​<​html><​a href="https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057">​Chit Arduino</​a></​html> ​
-| Rezistenta 1K               | 5     ​| ​[[https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057]] +| Rezistenta 1K               | 5     ​| ​<​html><​a href="https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057">​Chit Arduino</​a></​html> ​
-| Fir                         | 52    | [[https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057]] +| Fir                         | 52    | <​html><​a href="https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057">​Chit Arduino</​a></​html> ​
-| Leduri roșii, galbene ​      | 5     ​| ​[[https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057]] +| Leduri roșii, galbene ​      | 5     ​| ​<​html><​a href="https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057">​Chit Arduino</​a></​html> ​
-| LCD                         | 1     ​| ​[[https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057]] +| LCD                         | 1     ​| ​<​html><​a href="https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057">​Chit Arduino</​a></​html> ​
-| Senzor ultrasonic ​          | 1     ​| ​[[https://​www.sigmanortec.ro/​Senzor-Ultrasunete-HC-SR-04P-3-5-5V-p148477760?​fast_search=fs]] +| Senzor ultrasonic ​          | 1     ​| ​<​html><​a href="https://​www.sigmanortec.ro/​Senzor-Ultrasunete-HC-SR-04P-3-5-5V-p148477760?​fast_search=fs">​Senzor de distanta</​a></​html>​
-| Servomotor ​                 | 1     ​| ​[[https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057]] |+| Servomotor ​                 | 1     ​| ​<​html><​a href="https://​www.sigmanortec.ro/​Kit-RFID-V1-Arduino-p134580057">​Chit Arduino</​a></​html> ​|
  
 ==== Schema electrica: ==== ==== Schema electrica: ====
Line 83: Line 89:
 In starea de joc se poate observa in coltul din dreapta jos simbolul pentru modul de input cu sevomotor si potentiometru:​\\ In starea de joc se poate observa in coltul din dreapta jos simbolul pentru modul de input cu sevomotor si potentiometru:​\\
 {{:​pm:​prj2021:​dbrigalda:​joc_de_memorie_sim_servo.jpg?​750|}} {{:​pm:​prj2021:​dbrigalda:​joc_de_memorie_sim_servo.jpg?​750|}}
-===== Concluzii ===== 
  
-===== Download =====+si modul de input cu senzorul de distanta:​\\ 
 +{{:​pm:​prj2021:​dbrigalda:​joc_de_memorie_sim_senzor.jpg?​750|}}
  
-===== Jurnal =====+In poza de mai jos se poate observa ecranul de care este intampinat jucatorul in cazul in care greseste un led:\\ 
 +{{:​pm:​prj2021:​dbrigalda:​joc_de_memorie_stare_finala.jpg?​750|}}
  
 +In poza de mai jos se poate observa ecranul de care este intampinat jucatorul in cazul in care termina cu succes toate secventele de leduri:\\
 +{{:​pm:​prj2021:​dbrigalda:​joc_de_memorie_stare_castig.jpg?​750|}}
 +
 +Click mai jos pentru a viziona animatia de castig a jocului:\\
 +[[https://​www.youtube.com/​watch?​v=NNobkt1SIow&​ab_channel=DamianSilisteanu|{{:​pm:​prj2021:​dbrigalda:​joc_de_memorie_castigator.png?​nolink&​750|}}]]
 +
 +<note important>​**Click mai jos pentru a viziona demo-ul:​**</​note> ​
 +[[https://​www.youtube.com/​watch?​v=pqhdUjvPsl8&​ab_channel=DamianSilisteanu|{{:​pm:​prj2021:​dbrigalda:​joc_de_memorie_ecran_inceput.png?​nolink&​750|}}]]
 +
 +===== Concluzii =====
 +   * Am realizat proiectul exact asa cum mi-am propus sa fie si sunt mandru ca am reusit sa il aduc in acest stadiu.
 +   * Ar mai merita adaugari viitoare cum ar fi: o carcasa a jocului care sa ascunda de jucator intreaga structura de legaturi, adaugarea unui buzzer care sa indice sonor anumite evenimente din joc, adaugarea unui mod de retinere a numelui persoanei respective la terminarea jocului si afisarea unui clasament.
 +   * Proiectul m-a facut sa inteleg cat de utile si usor de folosit pot fi anumite module ca senzorul de distanta si display-ul LCD.
 +   * Principalele invataturi trase din acest proiect sunt:
 +           - sa nu exagerezi niciodata cu timpi de delay
 +           - sa rationalizezi cu foarte mare atentie pini de pe placa Arduino
 +===== Download =====
 +Fisierele sursa, schema bloc, schema electrica, precum si alte indicatii se afla in arhiva ce poate fi descarcata de {{:​pm:​prj2021:​dbrigalda:​silisteanu_damian_cristian_334cb_proiect_pm.zip|AICI}}.
 +===== Jurnal =====
 +    * 23.04.2021: Ajunge comanda cu chitul de Arduino in care se aflau majoritatea pieselor.
 +    * 28.04.2021: Ajunge si comanda data separat pentru senzorul de distanta.
 +    * 22.05.2021: Incep realizarea proiectului prin implementarea miscarii servomotorului si de aici incep problemele:
 +            - Placa din chit nu are destula putere cat sa alimenteze servomotorul(acesta scoate sunete dar nu se misca)
 +            - Din cauza incercarilor repetate de a face servomotorul sa se miste Serialmonitor o ia razna la printarea valorii unghiului dat servomotorului comanda.
 +            - Aceste lucruri duc la stricarea bootloader-ului placi Arduino.
 +            - Obtinerea unei placi imprumut si realizarea calitatii scazute a placii din chit.
 +            - Impelmentarea cu succes a miscarii servomotorului si indicarii ledurilor prin aprinderea lor.
 +    * 25.05.2021: Realizarea partii de inceput si de introducere a secventei bazata doar pe servomotor si potentiometru.
 +    * 26.05.2021: Incorporarea senzorului de distanata ca mod de input, realizarea unor masuratori si teste importante.
 +    * 28.05.2021: Lipirea pinilor LCD-ului, obtinerea celei de-a doua placi breadboard, realizarea functionalitatii LCD-ului si implementarea starii de final si starii castigatoare.
 +    * 29.05.2021: Inceperea scrierii documentatiei si modularizarii codului.
 +    * 31.05.2021: Finalizarea documentatiei.
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-Documentația ​în format PDF poate fi descarcata de <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​AICI</​a></​html>​.+Documentația ​in format PDF poate fi descarcata de <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​AICI</​a></​html>​.\\ 
 + 
 +== Bibliografie:​ == 
 + 
 +    - Laboratoarele facute anterior: <​html><​a href="​https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab3-2021">​Lab3</​a></​html>,​ <​html><​a href="​https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab2-2021">​Lab2</​a></​html>​. 
 +    - Diverse tutuoriale pentru: <​html><​a href="​https://​www.arduino.cc/​en/​Tutorial/​LibraryExamples/​HelloWorld">​LCD</​a></​html>,​ <​html><​a href="​https://​www.instructables.com/​Arduino-Servo-Motors/">​servomotor</​a></​html>,​ <​html><​a href="​https://​create.arduino.cc/​projecthub/​abdularbi17/​ultrasonic-sensor-hc-sr04-with-arduino-tutorial-327ff6">​senzor de distanta</​a></​html>​. 
 +    - Diversele functii si biblioteci folosite: <​html><​a href="​https://​www.arduino.cc/​reference/​en/​libraries/​servo/">​Servo.h</​a></​html>,​ <​html><​a href="​https://​www.arduino.cc/​en/​Reference/​LiquidCrystal">​LiquidCrystal.h</​a></​html>,​ <​html><​a href="">​Button.h</​a></​html>​(se afla in arhiva cu sursele), <​html><​a href="​https://​www.arduino.cc/​reference/​en/​language/​functions/​random-numbers/​random/">​random</​a></​html>,​ <​html><​a href="​https://​www.arduino.cc/​reference/​en/​language/​functions/​math/​map/">​map</​a></​html>​ si <​html><​a href="​https://​www.arduino.cc/​reference/​en/​language/​functions/​advanced-io/​pulsein/">​pulseIn</​a></​html>​. 
 +    - Site pentru piese de Arduino(pe care **NU** il recomand daca doresti o placa mai serioasa si sa nu ti se intample ce am patit eu**<<​vezi sectiunea de Jurnal>>​**) <​html><​a href="​https://​www.sigmanortec.ro/​">​AICI</​a></​html>​.
pm/prj2021/dbrigalda/jocuri-de-memorie.1622294805.txt.gz · Last modified: 2021/05/29 16:26 by damian.silisteanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0