This shows you the differences between two versions of the page.
pm:prj2025:eradu:andrei.gheta [2025/05/19 16:19] andrei.gheta [Conclusions] |
pm:prj2025:eradu:andrei.gheta [2025/05/29 19:32] (current) andrei.gheta [Hardware Design] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Simon says 1v1 ====== | + | ====== Simon Says 1v1 ====== |
===== Introduction ===== | ===== Introduction ===== | ||
Line 56: | Line 56: | ||
**Electrical Scheme:** | **Electrical Scheme:** | ||
- | {{:pm:prj2025:eradu:image.png?600|}} | + | {{:pm:prj2025:eradu:simon.png?600|}} |
===== Software Design ===== | ===== Software Design ===== | ||
Line 92: | Line 92: | ||
- Timeout-based input wait: waitForChoice() uses millis() for timing player responses | - Timeout-based input wait: waitForChoice() uses millis() for timing player responses | ||
- | - Interrupt-driven timer: setupTimer() configures Timer1 using low-level registers | ||
**Pseudocode:** | **Pseudocode:** | ||
Line 103: | Line 102: | ||
generateSequence() | generateSequence() | ||
displaySequence() | displaySequence() | ||
+ | INCREMENT sequence length | ||
IF player 1 fails → gameOver = true | IF player 1 fails → gameOver = true | ||
Line 108: | Line 108: | ||
SET currentPlayer to 2 | SET currentPlayer to 2 | ||
displaySequence() | displaySequence() | ||
+ | INCREMENT sequence length | ||
IF player 2 fails → gameOver = true | IF player 2 fails → gameOver = true | ||
IF both players succeeded | IF both players succeeded | ||
- | INCREMENT sequence length | ||
CONTINUE | CONTINUE | ||
Line 128: | Line 128: | ||
The project successfully demonstrates the use of microcontroller peripherals to create an interactive memory game. It helped reinforce my understanding of hardware-software integration and real-time programming. | The project successfully demonstrates the use of microcontroller peripherals to create an interactive memory game. It helped reinforce my understanding of hardware-software integration and real-time programming. | ||
- | ===== Download ===== | ||
- | <note warning> | ||
- | 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ă ;-). | ||
- | 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**. | + | ===== Resources ===== |
- | </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> | + | |
- | + | ||
- | ===== Bibliografie/Resurse ===== | + | |
- | + | ||
- | <note> | + | |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | |
- | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | Github: https://github.com/andreigheta/simon-says-1vs1/ |