Differences

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

Link to this comparison view

pm:prj2022:sionescu:joc_numeric [2022/04/26 22:14]
mihai_eugen.barbu created
pm:prj2022:sionescu:joc_numeric [2022/05/28 19:03] (current)
mihai_eugen.barbu
Line 1: Line 1:
 ====== Joc numeric ====== ====== Joc numeric ======
 +
 +  * [[mihai_eugen.barbu@stud.acs.upb.ro|Mihai-Eugen Barbu, 335CA]]
 +
 ===== Introducere ===== ===== Introducere =====
  
-<​note ​tip>+<​note>​
  
 Jocul presupune răspunderea,​ folosind o tastatură, la întrebările afișate pe un LCD. (ex: 2x + 1 = 3, se va răspunde 1) Jocul presupune răspunderea,​ folosind o tastatură, la întrebările afișate pe un LCD. (ex: 2x + 1 = 3, se va răspunde 1)
- 
-De asemenea, vor fi disponibile mai multe niveluri de dificultate. 
  
 </​note>​ </​note>​
-===== Descriere generală ===== 
  
-<note tip>+De asemenea, vor fi disponibile mai multe niveluri de dificultate și un meniu din care se poate selecta modul de joc.
  
-Schemă bloc+===== Descriere generală =====
  
-- TODO+=== Schemă bloc ===
  
-</note>+{{ :​pm:​prj2022:​sionescu:​pm_wiki_schema_bloc_02.png?​nolink&​400 |}} 
 + 
 +În funcție de butonul pe care îl va apăsa (pe //Keyboard 4x4//), //​utilizatorul//​ va avea posibilitatea să înceapă jocul, să aleagă un mod de joc și să răspundă la întrebări. În funcție de răspunsurile oferite (logică redată în //Cod//) se vor acționa //​Buzzer-ul//​ și //LED-ul//. De asemenea, se va modifica textul afișat pe //LCD//.
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
 == Piese == == Piese ==
 +
   * plăcuță Arduino Uno R3   * plăcuță Arduino Uno R3
   * LCD 16x2   * LCD 16x2
Line 30: Line 33:
   * Rezistențe   * Rezistențe
  
-<note tip>+^ Componenta ​             ^ Cantitate ​      ^ 
 +| Arduino Uno R3          | 1               | 
 +| LCD 16x2                | 1               | 
 +| Keypad 4x4              | 1               | 
 +| Rezistențe (1kΩ) ​       | 6               | 
 +| Potențiometru (10kΩ) ​   | 1               | 
 +| Buzzer ​                 | 1               | 
 +| LED                     | 4               |
  
-TODO+== Schema electrică ==
  
-Scheme electrice +{{:​pm:​prj2022:​sionescu:​pm_schematic.jpg?​nolink&​500 |}}
- +
-Diagrame de semnal +
- +
-</​note>​+
  
 ===== Software Design ===== ===== Software Design =====
Line 45: Line 51:
 <note tip> <note tip>
  
-Ca mediu de dezvoltare ​voi folosi ​atât [[https://​www.tinkercad.com/​dashboard|Tinkercad]],​ cât și aplicația de bază oferită de Arduino pentru dezvoltarea în timp real a proiectului.+Ca mediu de dezvoltare ​am folosit ​atât [[https://​www.tinkercad.com/​dashboard|Tinkercad]],​ cât și aplicația de bază oferită de Arduino pentru dezvoltarea în timp real a proiectului.
  
 </​note>​ </​note>​
Line 51: Line 57:
 == Biblioteci == == Biblioteci ==
  
-Voi folosi ​biblioteca necesară pentru **EEPROM**, cât și //​LiquidCrystal.h//​ pentru utilizarea LCD-ului.+Am folosit ​biblioteca necesară pentru **EEPROM**, cât și //​LiquidCrystal.h//​ pentru utilizarea LCD-ului
 + 
 +  * [[https://​www.arduino.cc/​reference/​en/​libraries/​liquidcrystal/​|LiquidCrystal.h]] 
 +  * [[https://​www.arduino.cc/​en/​Reference/​EEPROM|EEPROM.h]] 
 + 
 +Ideea de bază a jocului constă în parcurgerea unor întrebări din trei seturi, ordonate după gradul de dificultate (ușoare, medii, grele) și atingerea unui anumit număr de răspunsuri corecte la rând pentru câștigarea jocului. În funcție de progresul utilizatorului sunt afișate diverse mesaje pe //LCD//, iar atunci când răspunde **greșit** la o întrebare, se reîncepe jocul, reținându-se scorul maxim în memoria EEPROM.
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +{{ :​pm:​prj2022:​sionescu:​pm_diag_circuit.png?​nolink&​400 |}} 
-TODO + 
-</note>+Jocul permite alegerea unui mod corespunzător nivelului de dificultate (A - Ușor, B - Mediu, C - Dificil), alegerea fiind realizată pe baza //​keypad//​-ului. 
 + 
 +Apoi, vor fi afișate întrebări pe LCD, începând de la nivelul de dificultate ales până la cel dificil. 
 + 
 +De asemenea, la nivel **software**,​ am implementat și posibilitatea de a șterge caractere (//​backspace//​) pentru a modifica răspunsul. 
 + 
 +în funcție de răspuns (greșit/​corect) sau de butonul de pe keypad care este apăsat, se aud diverse sunete de la buzzer, iar pentru fiecare întrebare răspunsă corect, LED-ul se va lumina.
  
 ===== Concluzii ===== ===== Concluzii =====
 +
 +{{ :​pm:​prj2022:​sionescu:​pm_arduino.jpg?​nolink&​400 |}}
 +
 +Proiectul s-a dovedit a fi foarte interesant, de la modul de afișare al mesajelor pe LCD, până la //​decodificarea//​ butonului de pe keypad care a fost apăsat și sincronizarea cu LCD-ul, cât și utilizarea diferitelor funcționalități ale plăcuței (cum ar fi memoria //​EEPROM//​).
 +
 +De asemenea, mi s-a părut interesant că am putut utiliza un pin analog ca **digital**[7].
  
 ===== Download ===== ===== Download =====
  
-<note warning>​ +{{:pm:​prj2022:​sionescu:​pm_arch_mihai_barbu_joc.zip|}}
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**Namespace-ul în care se încarcă fişierele este de tipul **:pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul)**Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +Arhiva conține atât codul realizat pentru funcționarea jocului, cât și diagramele generate în urma implementării. 
-</​note>​+ 
 +Am adăugat un demo al proiectului [[https://youtu.be/​VWbMXyT8gfs|aici]].
  
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip> +  * 18/04/2022 - alegere proiect 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +  * 03/05/2022 - init_wiki() 
-</note>+  * 05-07/​05/​2022 - documentare piese + schemă 
 +  * 12/05/2022 - [Joc] V0 - Keypad + LCD (Tinkercad) 
 +  * 13/05/2022 - [Joc] ^ Adăugare LED 
 +  * 17/05/2022 - [Joc] ^^ Adăugare Piezo 
 +  * 25-27/05/2022 - [HW] Implementare pe Arduino 
 +    * 25 - adăugare LCD (+ potențiometru) 
 +    * 25-26 - adăugare keypad + asigurare funcționalitate 
 +    * 27 - adăugare buzzer + LED
  
-===== Bibliografie/​Resurse =====+===== Bibliografie/​Resurse ===== 
  
-<​note>​ +== Software == 
-TODO + 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse ​Hardware**+  https://​docs.arduino.cc/​learn/​built-in-libraries/​eeprom [1] 
-</note>+  - https://​www.arduino.cc/​reference/​en/​libraries/​liquidcrystal/​ [2] 
 +  - https://​www.electroschematics.com/​arduino-eeprom-tips-tricks/​ [3] 
 +  - https://​github.com/​robsoncouto/​arduino-songs [4] 
 + 
 +== Hardware ​== 
 + 
 +  - https://​electronics.stackexchange.com/​questions/​67007/​whats-the-difference-between-input-and-input-pullup [5] 
 +  - https://​linuxhint.com/​display-potentiometer-output-lcd-arduino/​ [6] 
 +  - https://​docs.arduino.cc/​learn/​microcontrollers/​analog-input [7]
  
 <​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>​
  
pm/prj2022/sionescu/joc_numeric.1651000443.txt.gz · Last modified: 2022/04/26 22:14 by mihai_eugen.barbu
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