This shows you the differences between two versions of the page.
pm:prj2022:amocanu:websnake [2022/04/21 19:36] marius.marogel |
pm:prj2022:amocanu:websnake [2022/06/21 17:58] (current) marius.marogel |
||
---|---|---|---|
Line 5: | Line 5: | ||
Prezentarea pe scurt a proiectului: | Prezentarea pe scurt a proiectului: | ||
* Un jucator se conecteaza pe o pagina web si poate indruma sarpele selectand directiile de deplasare de pe site. | * Un jucator se conecteaza pe o pagina web si poate indruma sarpele selectand directiile de deplasare de pe site. | ||
- | * Folosind un modul WiFi, placuta Arduino primeste noua directie de deplasare si aprinde led-urile corespunzatoare. | + | * Folosind un server web, placuta NodeMCU primeste noua directie de deplasare si aprinde led-urile corespunzatoare. |
</note> | </note> | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
<note tip> | <note tip> | ||
- | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | {{:pm:prj2022:amocanu:schema_bloc_websnake.png?200|}} |
- | + | ||
- | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | + | |
</note> | </note> | ||
Line 18: | Line 16: | ||
<note tip> | <note tip> | ||
- | Aici puneţi tot ce ţine de hardware design: | + | |
- | * listă de piese | + | Lista componente: |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | - Device cu acces la internet |
- | * diagrame de semnal | + | - 8x8 LED Matrix (MAX 7219) |
- | * rezultatele simulării | + | - NodeMCU 1.0 |
+ | | ||
+ | {{:pm:prj2022:amocanu:schema_hardware_websnake.png?600|}} | ||
</note> | </note> | ||
+ | |||
===== Software Design ===== | ===== Software Design ===== | ||
Line 30: | Line 31: | ||
<note tip> | <note tip> | ||
Descrierea codului aplicaţiei (firmware): | Descrierea codului aplicaţiei (firmware): | ||
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * Mediu de dezvoltare Arduino 1.8.19 |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * Am folosit bibliotecile #include <LedControl.h> pentru controlul matricei de LED-uri, #include <ESP8266WiFi.h> pentru controlul unui server web si #include <Vector.h> pentru a manipula coordonatele snake-ului. |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | * Am creat pagini html pe care redirectionez clientul in functie de directia pe care alege sa mearga jucatorul. |
- | * (etapa 3) surse şi funcţii implementate | + | Functii folosite: |
+ | * makeFruit() - generarea random pe harta a mancarii, cu conditia de a nu se intersecta cu sarpele initial | ||
+ | * our_snake() - desenarea snake-ului pe harta, echivalent cu aprinderea led-urilor corespunzatoare | ||
+ | * WiFi.begin(), WiFi.localIP(), server.available(), client.available() pentru a manipula conectarea la server. | ||
</note> | </note> | ||
Line 39: | Line 44: | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Rezultatele obtinute pot fi vazute in acest videoclip: |
+ | <html><a href="https://www.youtube.com/watch?v=6o7f5DzlXR0"> Video </a></html> | ||
</note> | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | <note> | ||
+ | Proiectul a fost interesant, sunt incantat ca am invatat cum functioneaza board-ul NodeMCU si ca am reusit sa creez un server care gestioneaza un joc interactiv. Design-ul lasa putin de dorit, ar fi trebuit stilizata pagina, dar in rest all good. | ||
+ | </note> | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | <note> |
- | 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ă ;-). | + | {{:pm:prj2022:amocanu:websnake.zip|}} |
- | + | ||
- | 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> | </note> | ||
Line 61: | Line 62: | ||
<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> | ||