This shows you the differences between two versions of the page.
|
pm:prj2025:mdinica:andrei.vintilescu [2025/05/27 00:04] andrei.vintilescu [Software Design] |
pm:prj2025:mdinica:andrei.vintilescu [2025/05/27 00:50] (current) andrei.vintilescu [Bibliografie/Resurse] |
||
|---|---|---|---|
| Line 36: | Line 36: | ||
| <note tip> | <note tip> | ||
| - | Descrierea codului aplicatiei (firmware): | + | Descrierea codului aplicaţiei (firmware): |
| - | + | * **Mediu de dezvoltare**: Proiectul este dezvoltat în **Arduino IDE**. | |
| - | * **Mediu de dezvoltare**: Proiectul este dezvoltat in **Arduino IDE**. | + | * **Librării şi surse 3rd-party**: |
| - | + | * ''Servo.h'': Pentru controlul precis al servomotorului. | |
| - | * **Librarii si surse 3rd-party**: | + | * ''LiquidCrystal.h'': Pentru gestionarea afișajului LCD 16x2. |
| - | * ``Servo.h``: Pentru controlul precis al servomotorului. | + | * **Algoritmi şi structuri implementate**: |
| - | * ``LiquidCrystal.h``: Pentru gestionarea afisajului LCD 16x2. | + | * **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''. | |
| - | * **Algoritmi si structuri implementate**: | + | * **Î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. |
| - | * **Monitorizarea luminozitatii**: Doua **fotorezistoare (LDR-uri)** detecteaza obstacolele pe ecran, comparand valorile cu praguri predefinite pentru decizii de saritura/aplecare. | + | * **Buton de Reset**: Permite repornirea jocului și resetarea contoarelor, incluzând **debounce**. |
| - | * **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``. | + | * **Modul de Pauză**: Simulatorul intră în pauză la inactivitate prelungită, așteptând resetarea manuală. |
| - | * **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. | + | * **Surse şi funcţii implementate**: |
| - | * **Buton de Reset**: Permite repornirea jocului si resetarea contoarelor, incluzand **debounce**. | + | * Funcții de inițializare (**setup()**). |
| - | * **Modul de Pauza**: Simulatorul intra in pauza la inactivitate prelungita, asteptand resetarea manuala. | + | * Bucle de execuție principală (**loop()**) conținând logica jocului. |
| - | + | * Funcții dedicate pentru configurarea și gestionarea **întreruperilor ADC** (e.g., ''setupADCInterrupt()'', ''startADCConversion()''). | |
| - | * **Surse si functii implementate**: | + | * Rutina de serviciu a întreruperii ADC (''ISR(ADC_vect)'') pentru procesarea datelor senzorilor. |
| - | * Functii de initializare (``setup()``). | + | * Afișaj pe **LCD** al timpului de joc, numărului de sărituri și aplecări. |
| - | * Bucla de executie principala (``loop()``) continand logica jocului. | + | * **LED-uri** pentru feedback vizual al luminozității LDR1. |
| - | * 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> | ||
| - | |||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| Line 68: | 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> | ||