This shows you the differences between two versions of the page.
|
pm:prj2022:arosca:233710 [2022/05/11 23:01] teodor_andrei.ivan |
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 | ||
| - | |||
| - | {{ :pm:prj2022:arosca:block_scheme.png?300 |}} | ||
| - | |||
| - | </note> | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| Line 22: | 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 32: | 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 46: | 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 ===== | ||