Differences

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

Link to this comparison view

pm:prj2025:mdinica:andrei.vintilescu [2025/05/27 00:01]
andrei.vintilescu [Software Design]
pm:prj2025:mdinica:andrei.vintilescu [2025/05/27 00:50] (current)
andrei.vintilescu [Bibliografie/Resurse]
Line 35: Line 35:
 ===== Software Design ===== ===== Software Design =====
  
-<note tip> Descrierea codului ​aplicatiei ​(firmware): * **Mediu de dezvoltare**:​ Proiectul este dezvoltat ​in **Arduino IDE**. * **Librarii si surse 3rd-party**:​ * ''​Servo.h'':​ Pentru controlul precis al servomotorului. * ''​LiquidCrystal.h'':​ Pentru gestionarea ​afisajului ​LCD 16x2. * **Algoritmi ​si structuri implementate**:​ * **Monitorizarea ​luminozitatii**: Doua **fotorezistoare (LDR-uri)** ​detecteaza ​obstacolele pe ecran, ​comparand ​valorile cu praguri predefinite pentru decizii de saritura/aplecare. * **Masina ​de stari (State Machine)**: ​Controleaza miscarile ​**servomotorului** non-blocant,​ cu stari precum ''​IDLE'',​ ''​WAITING_TO_MOVE_UP/​DOWN''​ (cu delay de sincronizare) ​si ''​MOVING_UP/​DOWN''​. * **Intreruperi ​ADC**: ​Asigura ​citirea **rapida si eficienta** a valorilor de la LDR-uri; o intrerupere ​la finalizarea unei conversii ​initiaza ​imediat ​urmatoarea ​pe celalalt ​LDR. * **Buton de Reset**: Permite repornirea jocului ​si resetarea contoarelor, ​incluzand ​**debounce**. * **Modul de Pauza**: Simulatorul ​intra in pauza la inactivitate ​prelungitaasteptand ​resetarea ​manuala. * **Surse ​si functii ​implementate**:​ * Functii ​de initializare ​(**`setup()`**). * Buclele ​de executie principala ​(**`loop()`**) continand ​logica jocului. * Functii ​dedicate pentru configurarea ​si gestionarea **intreruperilor ​ADC** (e.g., ''​setupADCInterrupt()'',​ ''​startADCConversion()''​). * Rutina de serviciu a intreruperii ​ADC (''​ISR(ADC_vect)''​) pentru procesarea datelor senzorilor. * Afisaj ​pe **LCD** al timpului de joc, numarului ​de sarituri si aplecari. * **LED-uri** pentru feedback vizual al luminozitatii ​LDR1. </​note>​+<note tip> 
 +Descrierea codului ​aplicaţiei ​(firmware): 
 +  ​* **Mediu de dezvoltare**:​ Proiectul este dezvoltat ​în **Arduino IDE**. 
 +  ​* **Librării şi surse 3rd-party**:​ 
 +    ​* ''​Servo.h'':​ Pentru controlul precis al servomotorului. 
 +    ​* ''​LiquidCrystal.h'':​ Pentru gestionarea ​afișajului ​LCD 16x2. 
 +  ​* **Algoritmi ​şi structuri implementate**:​ 
 +    ​* **Monitorizarea ​luminozității**: Două **fotorezistoare (LDR-uri)** ​detectează ​obstacolele pe ecran, ​comparând ​valorile cu praguri predefinite pentru decizii de săritură/aplecare. 
 +    ​* **Mașină ​de stări ​(State Machine)**: ​Controlează mișcările ​**servomotorului** non-blocant,​ cu stări ​precum ''​IDLE'',​ ''​WAITING_TO_MOVE_UP/​DOWN''​ (cu delay de sincronizare) ​și ''​MOVING_UP/​DOWN''​. 
 +    ​* **Întreruperi ​ADC**: ​Asigură ​citirea **rapidă și eficientă** a valorilor de la LDR-uri; o întrerupere ​la finalizarea unei conversii ​inițiază ​imediat ​următoarea ​pe celălalt ​LDR. 
 +    ​* **Buton de Reset**: Permite repornirea jocului ​și resetarea contoarelor, ​incluzând ​**debounce**. 
 +    ​* **Modul de Pauză**: Simulatorul ​intră în pauză ​la inactivitate ​prelungităașteptând ​resetarea ​manuală. 
 +  ​* **Surse ​şi funcţii ​implementate**:​ 
 +    ​Funcții ​de inițializare ​(**setup()**). 
 +    ​Bucle de execuție principală ​(**loop()**) ​conținând ​logica jocului. 
 +    ​Funcții ​dedicate pentru configurarea ​și gestionarea **întreruperilor ​ADC** (e.g., ''​setupADCInterrupt()'',​ ''​startADCConversion()''​). 
 +    ​* Rutina de serviciu a întreruperii ​ADC (''​ISR(ADC_vect)''​) pentru procesarea datelor senzorilor. 
 +    ​Afișaj ​pe **LCD** al timpului de joc, numărului ​de sărituri și aplecări. 
 +    ​* **LED-uri** pentru feedback vizual al luminozității ​LDR1. 
 +</​note>​
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
Line 44: Line 63:
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+<note tip>
  
-===== Jurnal =====+Github repo: https://​github.com/​Vinti03/​dino_chrome_game_simulator
  
 +<​html>​
 +<iframe width="​650"​ height="​450"​ src="​https://​www.youtube.com/​embed/​4xFtBEZV8PY?​si=l1JfPyoBCozot2YM"​ title="​YouTube video player"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ referrerpolicy="​strict-origin-when-cross-origin"​ allowfullscreen></​iframe>​
 +</​html>​
 {{:​pm:​prj2025:​mdinica:​dino_poza_1.jpg?​650x450}} {{:​pm:​prj2025:​mdinica:​dino_poza_1.jpg?​650x450}}
 {{:​pm:​prj2025:​mdinica:​dino_poza_2.jpg?​650x450}} {{:​pm:​prj2025:​mdinica:​dino_poza_2.jpg?​650x450}}
 {{:​pm:​prj2025:​mdinica:​dino_poza_3.jpg?​650x450}} {{:​pm:​prj2025:​mdinica:​dino_poza_3.jpg?​650x450}}
  
-<html> +</note>
-<iframe width="​560"​ height="​315"​ src="​https:​//​www.youtube.com/​embed/​4xFtBEZV8PY?​si=l1JfPyoBCozot2YM"​ title="​YouTube video player"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ referrerpolicy="​strict-origin-when-cross-origin"​ allowfullscreen></​iframe>​ +
-</html>+
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>+<note tip>
  
 +Prezentul proiect "Dino Game Simulator"​ a fost dezvoltat utilizand o varietate de resurse tehnice si educationale,​ grupate mai jos.
 +
 +=== Resurse Hardware ===
 +  * ''​Arduino UNO (ATmega328P)'':​
 +    * Datasheet ATmega328P: [[https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​ATmega48A-PA-88A-PA-168A-PA-328-P-DS-20001984A.pdf|ATmega328P Datasheet]]
 +    * Schema placii Arduino UNO: [[https://​docs.arduino.cc/​static/​f5aa473f309a473e0474668b5a004ef5/​A000066-schematic.pdf|Arduino UNO Rev3 Schematic]]
 +  * ''​Servomotor Micro 180 grade'':​
 +    * Informatii generale: [[https://​www.arduino.cc/​en/​Tutorial/​Sweep|Tutorial Servomotor]]
 +  * ''​Fotorezistoare (LDRs)'':​
 +    * Informatii generale: [[https://​www.arduino.cc/​en/​Tutorial/​BuiltInExamples/​AnalogReadSerial|Tutorial LDR]]
 +  * ''​Display LCD 16x2 (HD44780)'':​
 +    * Datasheet HD44780: [[https://​www.sparkfun.com/​datasheets/​LCD/​HD44780.pdf|HD44780 Datasheet]]
 +
 +=== Resurse Software ===
 +  * ''​Mediu de Dezvoltare'':​
 +    * Arduino IDE: [[https://​www.arduino.cc/​en/​software|Arduino IDE Software]]
 +  * ''​Librarii Standard Arduino'':​
 +    * `Servo.h`: [[https://​www.arduino.cc/​reference/​en/​libraries/​servo/​|Servo Library Reference]]
 +    * `LiquidCrystal.h`:​ [[https://​www.arduino.cc/​reference/​en/​libraries/​liquidcrystal/​|LiquidCrystal Library Reference]]
 +  * ''​Documentatie si Tutoriale'':​
 +    * Referinta Limbajului Arduino (C++): [[https://​www.arduino.cc/​reference/​en/​|Arduino Language Reference]]
 +    * Tutoriale ADC/​Intreruperi:​ [[https://​www.arduino.cc/​en/​pmwiki.php?​n=Reference/​AttachInterrupt|Arduino Interrupts Guide]] (General, pentru concepte)
 +
 +</​note>​
pm/prj2025/mdinica/andrei.vintilescu.1748293301.txt.gz · Last modified: 2025/05/27 00:01 by andrei.vintilescu
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