This shows you the differences between two versions of the page.
pm:prj2022:imacovei:iarina.dalimon [2022/04/21 20:02] iarina.dalimon |
pm:prj2022:imacovei:iarina.dalimon [2022/05/27 20:55] (current) iarina.dalimon [Download] |
||
---|---|---|---|
Line 6: | Line 6: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | Pentru a introduce un cuvant, un jucator trebuie sa apese pe butonul de pe breadboard. Dupa introducerea cuvantului, se va afisa pe LCD numarul de litere reprezentat prin liniute. Celalalt jucator va introduce pe rand cate o litera. Daca este corecta, litera se va afisa in locul corespunzator pe LCD. In caz contrat, se va aprinde un led. In momentul in care toate literele au fost ghicite sau toate cele 3 leduri s-au aprins, jocul s-a terminat | + | Pentru a introduce un cuvant, un jucator trebuie sa apese pe butonul de pe breadboard. Dupa introducerea cuvantului, se va afisa pe LCD numarul de litere reprezentat prin liniute. Celalalt jucator va introduce pe rand cate o litera. Daca este corecta, litera se va afisa in locul corespunzator pe LCD. In caz contrat, se va aprinde un led. In momentul in care toate literele au fost ghicite sau toate cele 3 leduri s-au aprins, jocul s-a terminat. Atat cuvantul, cat si literele vor fi intoduse prin modul senzor de atingere capacitiv TTP229. |
+ | |||
+ | **Schema bloc** | ||
+ | |||
+ | {{ :pm:prj2022:imacovei:pm.png?300 |}} | ||
+ | |||
+ | |||
+ | **Schema electrica** | ||
+ | |||
+ | {{ :pm:prj2022:imacovei:schematic.png?300 |}} | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 14: | Line 23: | ||
* modul senzor de atingere capacitiv TTP229 | * modul senzor de atingere capacitiv TTP229 | ||
* breadboard HQ (830 puncte) | * breadboard HQ (830 puncte) | ||
- | * placa de dezvoltare compatibila cu arduino uno r3 (ATmega16u2) + cablu | + | * placa de dezvoltare compatibila cu arduino uno r3 (ATmega328p) + cablu |
* buton 6x6x6 | * buton 6x6x6 | ||
* 3 leduri rosii | * 3 leduri rosii | ||
Line 22: | Line 31: | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Mediu de dezvoltare: | ||
+ | * Arduino IDE | ||
- | <note tip> | + | Librarii si surse 3rd party: |
- | Descrierea codului aplicaţiei (firmware): | + | * LiquidCrystal_I2C.h |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | Surse si functii implementate: |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | * setup() → porneste ecranul LCD si seteaza pinii pentru senzorul de atingere si leduri |
- | </note> | + | * loop() → trece prin etapele jocului |
+ | * getkey() → returneaza valoarea obtinuta de senzorul de atingere | ||
+ | * fctStartGame() → afisare pe ecranul LCD a mesajului initial | ||
+ | * fctStartGameHelper() → seteaza diverse valori | ||
+ | * getWord () → salveaza cuvantul introdus de un jucator, care urmeaza sa fie ghicit de al 2lea | ||
+ | * getLetterFromIn() → cifrele introduse prin intermediul senzorului de atingere sunt transformate in litere | ||
+ | * guessWord() → literele care sunt introduse de al 2lea jucator | ||
+ | * getLetter () → cifrele introduse cu ajutorul senzorului de atingere | ||
+ | * isLetterCorrect (char letter) → verifica daca litera introdusa face parte din cuvant | ||
+ | * update (int code) → afiseaza pe ecranul LCD-ului literele ghicite | ||
+ | * resetValues() → reseteaza valorile variabilelor folosite | ||
+ | * restartGame() → reinitializeaza jocul | ||
+ | * mesajFinale() → afisarea mesajului final | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Link demo: https://youtu.be/vSUZQqvBr90 |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Acest proiect m-a ajutat sa fixez anumite notiuni de PM. A fost o experienta foarte utila si distractiva sa conectez componentele fizic | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | Arhiva: {{:pm:prj2022:imacovei:hangman.zip|}} |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, 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**. | + | |
- | </note> | + | |
===== Jurnal ===== | ===== Jurnal ===== | ||
- | + | * 20 aprilie → alegere tema proiect | |
- | <note tip> | + | * 21 aprilie → creare paginia wiki |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * 4 mai → comanda componente |
- | </note> | + | * 19 mai → scris codul pentru conectarea ledurilor si a lcd-ului la placuta |
+ | * 20 mai → scris codul pentru logica jocului | ||
+ | * 21 mai → conectare componente fizic si modificari cod | ||
+ | * 22 mai → scris codul pentru conectarea senzorului de atingere | ||
+ | * 27 mai → documentatia wiki | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | * https://www.youtube.com/watch?v=NXZR0p-kX1A&ab_channel=RDIoTDEMO |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * TTP229-datasheet |
- | </note> | + | * Shield pentru Arduino cu LCD si Tastatura (LCD 1602 cu Keypad)-datasheet |
+ | * https://docs.arduino.cc/learn/electronics/lcd-displays-datasheet | ||
- | <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> |