This shows you the differences between two versions of the page.
pm:prj2022:amocanu:websweeper [2022/05/23 21:13] dan_andrei.boruga |
pm:prj2022:amocanu:websweeper [2022/06/21 17:24] (current) dan_andrei.boruga |
||
---|---|---|---|
Line 5: | Line 5: | ||
Prezentarea pe scurt a proiectului vostru: | Prezentarea pe scurt a proiectului vostru: | ||
* Proiectul simuleaza un joc de Minesweeper jucat dintr-un browser web si afisat pe o matrice de led-uri in timp real. | * Proiectul simuleaza un joc de Minesweeper jucat dintr-un browser web si afisat pe o matrice de led-uri in timp real. | ||
- | * Jucatorul da click pe anumite casute si poate pune flag-uri. Fiecare casuta va fi reprezentata printr-un led colorat diferit in functie de status-ul lui: neutru, flagged, 1, 2, 3, etc.. | + | * Jucatorul da click pe anumite casute si poate pune flag-uri. Fiecare casuta va fi reprezentata printr-un led colorat cu rosu daca nu a fost apasata si daca a fost apasata, led-ul se va stinge. In cazul in care s a atins o bomba jocul se reseteaza. Pentru fiecare casuta apasata se afiseaza la serial monitor ce valoare are(bomba, 0, 1, 2, 3, ...). |
</note> | </note> | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
<note tip> | <note tip> | ||
- | {{ :pm:prj2022:amocanu:pm.jpg?nolink |}} | + | {{:pm:prj2022:amocanu:img1.png?200|}} |
</note> | </note> | ||
Line 18: | Line 18: | ||
Aici puneţi tot ce ţine de hardware design: | Aici puneţi tot ce ţine de hardware design: | ||
* listă de piese: | * listă de piese: | ||
- | -arduino uno r3 | + | -nodeMCU module |
- | -modul esp 8266 | + | |
-8x8 led matrix | -8x8 led matrix | ||
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | -cablu microUSB-USB |
- | * diagrame de semnal | + | -fire |
- | * rezultatele simulării | + | * schema hardware: |
+ | {{:pm:prj2022:amocanu:schema_hardware_websnake.png?200|}} | ||
+ | * implementarea proiectului: | ||
+ | {{:pm:prj2022:amocanu:img2.jpeg?200|}} | ||
</note> | </note> | ||
Line 30: | Line 32: | ||
<note tip> | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | + | * Am dezvoltat proiectul in IDEE-ul Arduino 1.8.19 windows |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR): | + | * librarii folosite: ESP8266WiFi.h, LedControl.h |
- | Arduino 1.8.19 windows | + | * NodeMCU are rol de server HTTP care schimba mesaje cu un client. Clientul are in fata o tabela cu 64 de casute si poate apasa pe oricare din ele. In acel moment se trimite o cerere GET, serverul inregistreaza cererea si in functie de valoarea casutei(bomba sau nu) reseteaza jocul sau dezvaluie causta pe matricea de led-uri(o decoloreaza). |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * Functia board_init() initializeaza de fiecare data matricea de led-uri, iar get_bombs(i, j) intoarce numarul de bombe din apropierea casutei de pe pozitia (i, j). |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi: | + | * Codul sursa este disponibil aici: https://docs.google.com/document/d/1xHZsO7tlSPmKPOHqFpQqippq4cL3mOWUmcM_GIAxlkw/edit |
- | -matrice pentru reprezentarea fiecarei casute | + | |
- | -un algoritm de generare a unui nou joc random(o matrice noua) | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
</note> | </note> | ||
Line 43: | Line 42: | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Rezultatul final poate fi vizualizat aici: https://www.youtube.com/shorts/95oZMgmENec |
</note> | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | A fost un proiect interesant din care am invatat foarte multe despre cum functioneaza anumite componente hardware si cum sunt corelate, in special NodeMCU. Este un modul foarte puternic cu care se pot crea foarte multe proiecte practice. Nu am intampinat dificultati prea mari, decat cele clasice legate de bug-uri in cod. | ||
+ | Proiectul ales de mine are in principal scop de entertainment, neavand o utilitate foarte mare. Pornind de la codul prezent in acest proiect insa, se pot face jocuri si mai interesante. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | {{:pm:prj2022:amocanu:minesweeper_boruga_andrei_336cb.zip|}} |
- | 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 ===== | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | <html><a href="https://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/readme.html">ESP8266WiFi Library</a></html> |
+ | <html><br></html> | ||
+ | <html><a href="https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/">NodeMCU Pinout</a></html> | ||
+ | <html><br></html> | ||
+ | <html><a href ="http://wayoda.github.io/LedControl/pages/software">LedControl Library</a></html> | ||
</note> | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||