Differences

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

Link to this comparison view

pm:prj2023:gpatru:teodor.tiron [2023/05/06 20:09]
teodor.tiron created
pm:prj2023:gpatru:teodor.tiron [2023/05/29 15:55] (current)
teodor.tiron [Rezultate Obţinute]
Line 1: Line 1:
-====== ​Nume proiect ​======+====== ​Sequence Guess Game ======
 ===== Introducere ===== ===== Introducere =====
- +Proiectul implementează un joc de tipul [[https://​en.wikipedia.org/​wiki/​Mastermind_(board_game)|Mastermind]]. Scopul jucătorului ​este să ghicească o secvență aleatoare ​de simboluri unice generate de Arduino prin încercări repetate, acesta primind indicii de fiecare dată. Am pornit de la ideea jocului [[https://​www.nytimes.com/​games/​wordle/​index.html|Wordle]],​ a rui concept e similar, însă în loc de secvențe aleatoare se folosesc cuvinte din limba engleză. Jocul este interesant șpoate fi folosit ​pentru ​a antrena abilitățiile logice ale jucătorului.
-<note tip> +
-Prezentarea pe scurt a proiectului vostru: +
-  * ce face +
-  * care este scopul lui +
-  * care a fost ideea de la care aţi pornit +
-  * de ce credeţi ​că este util pentru alţii şi pentru ​voi +
-</​note>​+
 ===== Descriere generală ===== ===== Descriere generală =====
- +{{ :​pm:​prj2023:​gpatru:​tiron_schema_block.png?​nolink&​300 |}} 
-<note tip> +  * Joystick-ul este folosit pentru a permite jucătorului să introducă secvența dorită (prin mișcarea stânga-dreapta se selectează pozițiaiar prin mișcarea sus-jos se selectează simboluri ​de la 1 la 9). 
-O schemă bloc cu toate modulele proiectului vostruatât software cât şi hardware însoţită de o descriere ​acestora precum şi a modului ​în care interacţionează. +  * Pe ecranul LCD 16 x 2 se va afișa ultima încercare pe prima treime, secvența curentă pe doua treime știmpul rămas pe treia. Jucătorul va putea naviga ​în istoric, vizualizând și celelalte încercări, nu doar ultima
- +  * LED-urile se vor aprinde corespunzător (câte un led verde pentru fiecare simbol pus corect în poziția corectă și câte un led galben pentru fiecare simbol corect dar pus în poziție incorectă)LED-urile se vor ajusta în funcție de încercarea vizualizată
-Exemplu de schemă bloc: http://www.robs-projects.com/​mp3proj/​newplayer.html +  * Când timpul alocat este aproape de a expira, buzzer-ul va emite semnale sonore de avertisment.
-</​note>​+
  
 ===== Hardware Design ===== ===== Hardware Design =====
 +Componente:
 +  * Arduino UNO
 +  * Joystick tip PS2
 +  * Ecran LCD 16x2 cu modul I2C
 +  * Buzzer pasiv
 +  * LED-uri verzi și galbene
 +  * Rezistențe,​ fire, breadboard
  
-<note tip> 
-Aici puneţi tot ce ţine de hardware design: 
-  * listă de piese 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) 
-  * diagrame de semnal ​ 
-  * rezultatele simulării 
-</​note>​ 
  
 ===== Software Design ===== ===== Software Design =====
 +Proiectul folosește următoarele funcționalităti ale plăcii Arduino:
 +  * Biblioteca [[https://​www.arduinolibraries.info/​libraries/​liquid-crystal-i2-c|LiquidCrystal_I2C.h]] pentru programarea ecranului LCD prin I2C
 +  * Pinii analogici A0 și A1 și ADC-ul plăcii pentru a citi starea joystick-ului
 +  * Funcția tone() pentru a genera sunete pe buzzer
 +  * Timer-ul 1 pentru a temporiza trecerea secundelor
  
- +Pentru a genera o secvență ​de 4 cifre aleatoare care nu se repetăam observat că metoda evidentă (generează câte o cifră și verifică dacă egală cu vreo cifră generată anteriornu e eficientă, iar placa stătea blocată încercând ​să genereze secvența. Pentru a genera mai rapid o secvență, am folosit algoritmul [[https://​en.wikipedia.org/​wiki/​Fisher%E2%80%93Yates_shuffle|Fisher-Yates]] aplicat pe un vector care conține toate cifrele de la 0 la 9.
-<note tip> +
-Descrierea codului aplicaţiei (firmware):​ +
-  * mediu de dezvoltare (if any) (e.g. AVR StudioCodeVisionAVR) +
-  * librării şi surse 3rd-party ​(e.g. Procyon AVRlib) +
-  * algoritmi şi structuri pe care plănuiţi ​să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate +
-</note>+
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
 +<​html>​
 +<iframe width="​560"​ height="​315"​ src="​https://​www.youtube.com/​embed/​xZxWKLp9nIY"​ title="​YouTube video player"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ allowfullscreen></​iframe>​
 +</​html>​
  
-<note tip> 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. 
-</​note>​ 
  
-===== Concluzii ===== 
  
 ===== Download ===== ===== Download =====
 +{{:​pm:​prj2023:​gpatru:​proiectpm_tiron.zip|}}
  
-<note warning> 
-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 ===== 
  
-<note tip> 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
-</​note>​ 
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
pm/prj2023/gpatru/teodor.tiron.1683392945.txt.gz · Last modified: 2023/05/06 20:09 by teodor.tiron
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