Differences

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

Link to this comparison view

pm:prj2022:cstan:1002 [2022/05/29 01:19]
bogdan.piele [Descriere generală]
pm:prj2022:cstan:1002 [2023/03/15 16:49] (current)
bogdan.piele [Software Design] cuvand -> cuvant
Line 1: Line 1:
 ====== Wordle LCD ====== ====== Wordle LCD ======
-Piele Bogdan-Gabriel, ​333CC+Piele Bogdan-Gabriel, ​333CCb
  
 ===== Introducere ===== ===== Introducere =====
Line 39: Line 39:
 Cum voi folosi un display I2C LCD monocrom, acest tip de feedback va fi înlocuit cu păstrarea doar a literelor la poziția corectă în cuvântul introdus, urmând ca cele care se află de fapt pe altă poziție să fie indicate utilizatorului într-o listă, pe linia a doua a ecranului. În plus, la selectarea unui cuvânt, buzzer-ul și LED-ul vor avea un feedback scurt, intermitent,​ pentru fiecare literă așezată corect, și un feedback mai lung la ghicirea întregului cuvânt. Cum voi folosi un display I2C LCD monocrom, acest tip de feedback va fi înlocuit cu păstrarea doar a literelor la poziția corectă în cuvântul introdus, urmând ca cele care se află de fapt pe altă poziție să fie indicate utilizatorului într-o listă, pe linia a doua a ecranului. În plus, la selectarea unui cuvânt, buzzer-ul și LED-ul vor avea un feedback scurt, intermitent,​ pentru fiecare literă așezată corect, și un feedback mai lung la ghicirea întregului cuvânt.
  
-Schemă bloc:+**Schemă bloc:**
  
-{{:​pm:​prj2022:​cstan:​schema_bloc.drawio_3_.png?​600|}}+{{:​pm:​prj2022:​cstan:​schema_bloc.drawio_3_.png?​500|}}
 ===== Hardware Design ===== ===== Hardware Design =====
  
Line 60: Line 60:
   * breadboard   * breadboard
   * fire   * fire
 +  * rezistoare (limitarea curentului prin LED și Buzzer)
   * card micro SD ("​bază de date" din care se extrage aleator cuvântul) + adaptor microSD-SD + modulul corespunzător   * card micro SD ("​bază de date" din care se extrage aleator cuvântul) + adaptor microSD-SD + modulul corespunzător
   * I2C LCD display   * I2C LCD display
Line 66: Line 67:
   * LED   * LED
  
 +Schema electrică:
  
 +{{:​pm:​prj2022:​cstan:​wordle_lcd_schematic.png?​500|}}
  
 ===== Software Design ===== ===== Software Design =====
Line 86: Line 89:
 Structurile de date de menționat sunt Structurile de date de menționat sunt
   * **Button** - reținerea pinului, a stării curente (apăsat - LOW, neapăsat - HIGH) și a stării precedente. Motivul memorării stărilor este pentru evitarea executării unor instrucțiuni repetate la apăsarea continuă a unui buton   * **Button** - reținerea pinului, a stării curente (apăsat - LOW, neapăsat - HIGH) și a stării precedente. Motivul memorării stărilor este pentru evitarea executării unor instrucțiuni repetate la apăsarea continuă a unui buton
-  * Vectorul **triedMasks[26]** reține, sub forma unor măști de biți **pozițiile posibile** pentru fiecare literă. La fiecare încercare se poate modifica masca unei litere. O idee pe care am avut-o inițial a fost ca prin acest array să sugerez jucătorului ce poziții mai sunt valabile pentru literele încercate, dar am renunțat pentru că am crezut că detaliile ar fi fost prea multe pentru un rând de display. Așadar, folosesc măștile doar pentru a deduce ce litere apar în cuvând, dar pe altă poziție. În mod asemănător,​ guessedMask reprezintă o mască de 5 biți, în care fiecare bit corespunde o **poziție corect ghicită**. Am folosit variabila pentru păstrarea literelor ghicite la fiecare încercare, astfel încât utilizatorul să nu fie nevoit să treacă din nou prin literele deja aflate.+  * Vectorul **triedMasks[26]** reține, sub forma unor măști de biți **pozițiile posibile** pentru fiecare literă. La fiecare încercare se poate modifica masca unei litere. O idee pe care am avut-o inițial a fost ca prin acest array să sugerez jucătorului ce poziții mai sunt valabile pentru literele încercate, dar am renunțat pentru că am crezut că detaliile ar fi fost prea multe pentru un rând de display. Așadar, folosesc măștile doar pentru a deduce ce litere apar în cuvânt, dar pe altă poziție. În mod asemănător,​ guessedMask reprezintă o mască de 5 biți, în care fiecare bit corespunde o **poziție corect ghicită**. Am folosit variabila pentru păstrarea literelor ghicite la fiecare încercare, astfel încât utilizatorul să nu fie nevoit să treacă din nou prin literele deja aflate.
   * Array-ul de cuvinte **words** - de-a lungul dezvoltării proiectului,​ am întampinat erori mai ales la prelucrarea datelor de pe card, așa că pun la dispoziție și un vector de cuvinte scurt (memoria este limitată, fiind un Arduino UNO, iar umplerea ei determină o funcționare necorespunzătoare). Astfel, se poate juca o varianta minimală a jocului și fără un card SD.   * Array-ul de cuvinte **words** - de-a lungul dezvoltării proiectului,​ am întampinat erori mai ales la prelucrarea datelor de pe card, așa că pun la dispoziție și un vector de cuvinte scurt (memoria este limitată, fiind un Arduino UNO, iar umplerea ei determină o funcționare necorespunzătoare). Astfel, se poate juca o varianta minimală a jocului și fără un card SD.
  
Line 100: Line 103:
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 +/*
 <note tip> <note tip>
 Care au fost rezultatele obţinute în urma realizării proiectului vostru. Care au fost rezultatele obţinute în urma realizării proiectului vostru.
 </​note>​ </​note>​
 +*/
 +{{:​pm:​prj2022:​cstan:​wordle_lcd_above.jpg?​500|}}
 +
 +[[https://​ctipub-my.sharepoint.com/:​f:/​g/​personal/​bogdan_piele_stud_acs_upb_ro/​EtkxGD2beJZGoTG4XSjf0ZEBhCZzxuiyZAECJqJvOg1ZMg?​e=rbdk7d|Video]]
  
 ===== Concluzii ===== ===== Concluzii =====
-  * Consider că proiectul este util pentru că+Consider că proiectul este util pentru că
   * Am reușit să îmi îmbunătățesc cunoștințele de Arduino UNO și să caut modulele potrivite în funcție de proiect   * Am reușit să îmi îmbunătățesc cunoștințele de Arduino UNO și să caut modulele potrivite în funcție de proiect
   * Wordle este un joc plăcut și popular, iar adaptarea sa într-o formă “palpabilă” a fost o experiență interesantă   * Wordle este un joc plăcut și popular, iar adaptarea sa într-o formă “palpabilă” a fost o experiență interesantă
Line 123: Line 131:
 ===== Jurnal ===== ===== Jurnal =====
  
 +/*
 <note tip> <note tip>
 Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
 </​note>​ </​note>​
 +*/
  
 +Jurnal
 +  * 2022/03/20 - Achiziționarea unui kit basic de piese (breadboard,​ butoane, fire, rezistoare)
 +  * 2022/05/01 - Crearea paginii de OCW
 +  * 2022/05/18 - Testarea pieselor și realizarea unui cod minimal, bazat mai mult pe Serial print
 +  * 2022/05/24 - Următoarele piese - I2C LCD, buzzer, modul SD card
 +  * 2022/05/25 - Implementarea unei variante de joc în care cuvintele sunt salvate în memoria plăcuței
 +  * 2022/05/27 - Testarea bibliotecilor de SD Card și de redare de melodii prin buzzer.
 +  * 2022/05/28 - Implementarea îmbunătățită a jocului, în care cuvintele nu mai sunt preluate din plăcuță ci din cardul de memorie
 +  * 2022/05/29 - Completarea paginii de OCW
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
pm/prj2022/cstan/1002.1653776346.txt.gz · Last modified: 2022/05/29 01:19 by bogdan.piele
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