This shows you the differences between two versions of the page.
pm:prj2022:arosca:233710 [2022/04/21 14:03] teodor_andrei.ivan [Nume proiect] |
pm:prj2022:arosca:233710 [2022/06/02 03:46] (current) teodor_andrei.ivan [Descriere generală] |
||
---|---|---|---|
Line 5: | Line 5: | ||
In loc sa desenezi acelasi chenar de X si O de 1000 de ori pe o foaie, ar fi dragut sa poti avea o platforma relativ portabila, interactiva si animata pe care poti sa joci acest joc simplu al copilariei | In loc sa desenezi acelasi chenar de X si O de 1000 de ori pe o foaie, ar fi dragut sa poti avea o platforma relativ portabila, interactiva si animata pe care poti sa joci acest joc simplu al copilariei | ||
</note> | </note> | ||
- | ===== Descriere generală ===== | ||
- | <note tip> | ||
- | Realizarea unui joc Tic Tac Toe pe o matrice de 9 leduri, cu un buton pentru fiecare led. Se va afisa dupa fiecare mutare la seriala/pe un LCD cat a durat fiecare mutare si la final ce simbol/culoare a castigat. La inecputul si finalul jocului se va folosi un buzzer pentru o semnalare sonora | ||
- | |||
- | https://www.youtube.com/watch?v=LwVzQhuowlw&ab_channel=K%C3%A1rolyIv%C3%A1n | ||
- | </note> | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 19: | Line 13: | ||
* Arduino | * Arduino | ||
* Breadboard | * Breadboard | ||
- | * Ecran LCD | + | * Joystick |
- | * Buzzer | + | * Leduri Bicolore |
- | * Butoane | + | * IC SN74HC595 ( shift register ) |
- | * Leduri | + | |
+ | {{ :pm:prj2022:arosca:led_wiring.png?300 |}} | ||
+ | |||
+ | In poza de mai sus este reprezentat modul in care au fost legate cele 9 leduri bicolore la placuta arduino. Am folosit doi registrii pentru canalele de verde si rosu mai putin ultimele doua leduri, ce au canalele de rosu direct la placuta pentru a economisi un registru. Primul registru se ocupa de canalele de verde ale primelor 8 leduri, iar al doilea de ultimul canal de verde si primele 7 canale de rosu. | ||
+ | |||
+ | Pentru selectarea spatiului dorit, am folosit un joystick generic pentru navigarea prin grid. La apasarea acestuia, se selecteaza ledul si se aprinde cu culoarea corespunzatoare jucatorului | ||
+ | {{ :pm:prj2022:arosca:joystick.png?300 |}} | ||
</note> | </note> | ||
Line 29: | Line 29: | ||
<note tip> | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | + | Pentru afisarea pe gridul de leduri am folosit functia shiftOut din biblioteca de Advanced I/O Arduino. Aceasta primeste pinii de data si ceas ai registrului, modul in care sa trimita byte-ul si byte-ul in sine. Deci modificarea byte-ului (a celor doi bytes pentru ca avem doi registrii) inseamna defapt modificarea gridului de leduri. Astfel, facand sau logic cu masca pentru bitul corespunzator ledului, putem aprinde orice led. |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | Pentru a retine ce lumini au fost aprinse si de cine au fost aprinse, am folosit un array de 9, fiecare element fiind setat pe 0, 1 sau 2, semnificand stins, rosu, respectiv verde. |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | Aprinderea acestora se face cand se citeste de pe pinul digital 3 (SW al joystick-ului) valoarea 0 (adica a fost apasat). In acel moment led-ul curent este aprins in culoarea jucatorului curent, cursorul este mutat pe urmatoarea pozitie disponibila si culoarea acestuia se modifica, semnaland faptul ca este tura urmatorului jucator. |
</note> | </note> | ||
Line 43: | Line 43: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | {{ :pm:prj2022:arosca:leds_ivan_teodor.jpg?400 |}} | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | |||
+ | {{ :pm:prj2022:arosca:wires_ivan_teodor.jpg?400 |}} | ||
- | ===== Download ===== | ||
- | <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 ===== |