This shows you the differences between two versions of the page.
pm:prj2024:rpascale:124159 [2024/05/12 15:25] iulia.mihaicuta [Descriere generală] |
pm:prj2024:rpascale:124159 [2024/05/27 18:26] (current) iulia.mihaicuta [Software Design] |
||
---|---|---|---|
Line 15: | Line 15: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | {{:pm:prj2024:rpascale:iulia.jpg?800}} | ||
+ | {{:pm:prj2024:rpascale:iulia.jpg?800|}} | ||
=== Module Hardware === | === Module Hardware === | ||
Line 73: | Line 73: | ||
==Butoane/LED-uri/Buzzer== | ==Butoane/LED-uri/Buzzer== | ||
{{:pm:prj2024:rpascale:schema_1_iulia.jpg?800|}} | {{:pm:prj2024:rpascale:schema_1_iulia.jpg?800|}} | ||
+ | |||
+ | ==DataSheet CD4094BE== | ||
+ | {{:pm:prj2024:rpascale:img_0374.jpeg?500|}} | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===Implementare Hardware=== | ||
+ | {{:pm:prj2024:rpascale:img_0373.jpeg?800|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | ===Declarații și inițializări=== | ||
- | <note tip> | + | **Biblioteci** |
- | Descrierea codului aplicaţiei (firmware): | + | * //LCD-I2C.h// - folosită pentru controlul unui ecran LCD prin protocolul I2C |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * //Wire.h// |
- | * 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 ===== | + | **Definirea pinilor** |
+ | * //A0// - pin butoane joc | ||
+ | * //A1// - pin butoane meniu | ||
+ | * //2// - pin buzzer | ||
+ | * //3//, //4//, //5//, //6// - pini led-uri | ||
- | <note tip> | + | **Variabile de stare** |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | * //level// - nivelul curent al jocului |
- | </note> | + | * //levelInput[6]// - inputul utilizatorului pentru secvența de culori |
+ | * //position// - poziția curentă a inputului utilizatorului | ||
- | ===== Concluzii ===== | + | ===Funcții== |
- | ===== Download ===== | + | * //Setup// |
+ | * Configurează modurile pinurilor. | ||
+ | * Inițializează LCD-ul. | ||
+ | * Afișează mesajul de start pe LCD. | ||
+ | * Pregătește caracterele personalizate pentru LCD. | ||
+ | * Inițializează afișajul 7-segmente. | ||
+ | * Setează starea inițială a jocului. | ||
+ | |||
+ | |||
+ | * //Show LCD Info// | ||
+ | * Afișează informațiile pe LCD, inclusiv caracterele personalizate | ||
+ | |||
+ | * //Play Buzzer// | ||
+ | * Redă diferite tonuri pentru culori diferite folosind buzzerul. | ||
+ | |||
+ | * //Play Level// | ||
+ | * Redă modelul generat folosind LED-uri și buzzerul | ||
+ | * Ajustează viteza în funcție de dificultate. | ||
+ | |||
+ | * //Loop// | ||
+ | * Ajustare Dificultate: Crește sau scade dificultatea pe baza apăsării butoanelor. | ||
+ | * Replay: Rejucă modelul curent dacă butonul de rejucare este apăsat. | ||
+ | |||
+ | * //Display Digit// | ||
+ | * Actualizează afișajul 7-segmente pentru a arăta dificultatea curentă. | ||
+ | |||
+ | * //Fluxul Detaliat// | ||
+ | * Setup: Inițializează componentele și afișează mesajul de start. | ||
+ | * Loop: | ||
+ | * Controlul Dificultății: Ajustează dificultatea și o afișează pe afișajul 7-segmente. | ||
+ | * Rejucare Model: Rejucă modelul când butonul de rejucare este apăsat. | ||
+ | * Generarea Modelului: Generează și redă un nou model dacă nu se așteaptă nicio intrare. | ||
+ | * Intrarea Utilizatorului: Înregistrează intrarea utilizatorului și oferă feedback. Compară intrarea cu modelul când intrarea este completă. | ||
+ | * Feedback: Oferă feedback de succes sau eroare în funcție de corectitudinea intrării și actualizează starea jocului în mod corespunzător. | ||
+ | * Jocul continuă să ruleze, actualizând modelul și verificând intrarea utilizatorului până când dispozitivul este oprit sau resetat. | ||
+ | |||
+ | |||
+ | ===Surse=== | ||
+ | [[https://github.com/iuliamihaicuta/Memory-game|repo github]] | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Codul a fost implementat și testat folosind Arduino IDE | ||
+ | |||
+ | ===== Rezultate Obţinute ==== | ||
+ | |||
+ | Am creat un joc interactiv, prin care o persoană își poate antrena memoria. De asemenea jocătorul poate să își dea seama daca se bazează mai mult pe memoria vizuală sau auditivă | ||
- | <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 ===== | ===== Jurnal ===== | ||
Line 110: | Line 162: | ||
**03.05.2024** - crearea paginii ocw și completarea secțiunilor //Introducere// și //Descriere Generală// | **03.05.2024** - crearea paginii ocw și completarea secțiunilor //Introducere// și //Descriere Generală// | ||
- | **TODO** - completarea secțiunii //Hardware Design// | + | **12.05.2024** - adăugare listă piese și schemă pentru butoane, led-uri și buzzer |
+ | |||
+ | **14.05.2024** - completarea secțiunii //Hardware Design// | ||
- | **TODO** - completarea secțiunii //Software Design// | + | **22.05.2024** - completarea secțiunii //Software Design// |
- | **TODO** - completarea secțiunii //Concluzii// | ||
</note> | </note> | ||