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> |