Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:alucaci:marius_daniel.marin [2024/05/06 14:18]
marius_daniel.marin [Descriere generală]
pm:prj2024:alucaci:marius_daniel.marin [2024/05/23 15:01] (current)
marius_daniel.marin [Concluzii]
Line 2: Line 2:
 ===== Introducere ===== ===== Introducere =====
  
-<note tip> 
 Jocul Dino pe Arduino: Jocul Dino pe Arduino:
   * proiectul implementează jocul Chrome Dino pe o placă Arduino (folosind un ecran LCD, se vor simula acțiunile de joc, cum ar fi săriturile peste obstacole)   * proiectul implementează jocul Chrome Dino pe o placă Arduino (folosind un ecran LCD, se vor simula acțiunile de joc, cum ar fi săriturile peste obstacole)
Line 9: Line 8:
   * ideea a pornit din dorința de a transforma un joc virtual într-o experiență tangibilă, utilizând platforma Arduino   * ideea a pornit din dorința de a transforma un joc virtual într-o experiență tangibilă, utilizând platforma Arduino
   * proiectul poate fi util atat pentru mine cat si pentru ceilalti deoarece reprezinta o sursă de divertisment și provocare pentru cei pasionați de jocuri și electronică,​ dezvoltand totodata si abilitățile de programare, electronică și design   * proiectul poate fi util atat pentru mine cat si pentru ceilalti deoarece reprezinta o sursă de divertisment și provocare pentru cei pasionați de jocuri și electronică,​ dezvoltand totodata si abilitățile de programare, electronică și design
-</​note>​+
 ===== Descriere generală ===== ===== Descriere generală =====
-<note tip>+
 Schema bloc Schema bloc
  
-{{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​alucaci/​dino_game_arduino.png?​700}}+{{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​alucaci/​dino_game_arduino.png?​600}} 
 + 
  
-</​note>​ 
  
-<note tip> 
 **Placa Arduino**: Controleaza toate componentele hardware. **Placa Arduino**: Controleaza toate componentele hardware.
  
-**Butoanele**: Trimit ​semnale catre placa Arduino pentru a controla jocul.+**Butonul**: Trimite ​semnale catre placa Arduino pentru a controla jocul.
  
-**Senzori ​feedback**: Ofera feedback utilizatorului dupa efectuarea unei comenzi (apasarea unui buton).+**Senzor ​feedback**: Ofera feedback utilizatorului dupa efectuarea unei comenzi (apasarea unui buton).
  
 **Ecran LCD**: Afișează scorul jocului și alte informații relevante. **Ecran LCD**: Afișează scorul jocului și alte informații relevante.
Line 30: Line 29:
  
 **Biblioteci**:​ Oferă funcții predefinite pentru a facilita programarea. **Biblioteci**:​ Oferă funcții predefinite pentru a facilita programarea.
-</​note>​+
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> +Lista de piese
-Aici puneţi tot ce ţine de hardware design+  * Breadboard 830 puncte 
-  * listă de piese +  * Arduino Nano 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.ghttp://www.captain.at/electronic-atmega16-mmc-schematic.png) +  * LED 5mm 
-  * diagrame de semnal ​ +  * LCD I2C 
-  * rezultatele simulării +  * Push button 
-</note>+  * Fire 
 +  * Rezistenta 220Ω 
 + 
 +Schema electrica:​ 
 + 
 +{{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​alucaci/​schema_electrica.png?​600}} 
 + 
 +Circuit design: 
 + 
 +{{https://ocw.cs.pub.ro/courses/​_media/​pm/​prj2024/​alucaci/​circuit_design_dino_game.jpeg?600}} 
 + 
 +Hardware: 
 + 
 +{{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​alucaci/​componente_dino_game.jpeg?​600x700}}
  
 ===== Software Design ===== ===== Software Design =====
  
 +Mediul de dezvoltare folosit
 +  *Arduino IDE, deoarece permite accesul la o gama variata de librarii si unelte necesare dezvoltarii unui proiect.
  
-<note tip> +Librarii 
-Descrierea codului aplicaţiei (firmware): +  *LiquidCrystal_I2C pentru a realiza comunicarea eficienta cu LCD ul prin interfata I2C.
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) +
-  * 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>​+
  
 +Cod
 +  -**definirea constantelor** pentru elementele jocului (PLAYER, EMPTY, CACTUS) și pinii pentru LED și buton
 +  -**definirea caracterelor personalizate** pentru LCD: frame dinozaur picior stang, frame dinozaur picior drept, spațiu gol, cactus. ​   ​
 +  -un array world stochează **starea lumii** jocului (jucător, obstacole, spațiu gol).
 +    *funcția run() gestionează logica jocului (obstacole, mișcare, coliziuni)
 +    *funcția update() actualizează starea jocului (scor, verificare game over, animație jucător)
 +    *variabila state și funcția call_function() gestionează întreruperile butonului (LED, salt)
 +    *variabila score ține evidența scorului jucătorului
 +  -**gestionarea logicii** in loop() si a apasarii butonului:
 +    *bucla loop() afișează mesajul de start și așteaptă apăsarea butonului.
 +    *odată apăsat, se gestionează logica jocului (actualizare,​ afișare, salt).
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +=== Apasare buton si saritura ===
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
 +{{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​alucaci/​poza_rezultate1.jpeg?​300x400}}
 +{{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​alucaci/​poza_rezultate2.jpeg?​300x400}}
 ===== Concluzii ===== ===== Concluzii =====
  
 +Crearea jocului Dino Game a fost o experiență plăcută și educativă. Este un proiect excelent pentru cei care vor să se familiarizeze cu Arduino și programarea pe placute.
 ===== Download ===== ===== Download =====
  
-<note warning>​ +Arhiva poate fi descarcata[[https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​alucaci/​dino_game.zip|aici]]. 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etcUn 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 =====
  
-<note tip> +  * 18.04.2024 **alegerea ​proiectului** 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul ​proiectului. +  * 3.05.2024 **schema bloc, circuit design** ​ 
-</​note>​ +  * 10.05.2024 **achiziționare piese** 
 +  * 16.05.2024 **implementare hardware** 
 +  * 23.05.2024 **implementare software**
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+https://​docs.arduino.cc/​learn/​communication/​wire/​ 
 + 
 +https://​docs.arduino.cc/​hardware/​nano/​ 
 + 
 +https://​www.youtube.com/​watch?​v=ZtwFpFIS1_0
 </​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>​
  
pm/prj2024/alucaci/marius_daniel.marin.1714994328.txt.gz · Last modified: 2024/05/06 14:18 by marius_daniel.marin
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0