This shows you the differences between two versions of the page.
pm:prj2024:ccontasel:sabin.pocris [2024/05/04 19:39] sabin.pocris |
pm:prj2024:ccontasel:sabin.pocris [2024/05/27 10:45] (current) sabin.pocris |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== BattleshipBoy ====== | + | ====== 🎮 BattleshipBoy 🎮 ====== |
===== Introducere ===== | ===== Introducere ===== | ||
Line 13: | Line 13: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | <note tip> | + | {{:pm:prj2024:ccontasel:ps_schema_block_pm_battleshipboy.jpg?600|}} |
- | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | |
- | + | ||
- | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | + | |
- | </note> | + | |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 24: | Line 19: | ||
Componente necesare: | Componente necesare: | ||
* 1 x arduino | * 1 x arduino | ||
- | * 7 x butoane push fara retinere | + | * 5 x butoane push fara retinere |
* 1 x lcd | * 1 x lcd | ||
+ | * 1 buzzer pasiv | ||
* 1x breadboard + necesare | * 1x breadboard + necesare | ||
</note> | </note> | ||
- | + | {{:pm:prj2024:ccontasel:asdfadfwefqwf.png?600|}} | |
- | TODO: | + | |
- | + | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | <note tip> | ||
+ | Laboratoare necesare: | ||
+ | * GPIO | ||
+ | * SPI | ||
+ | * Timere | ||
+ | * I2C | ||
+ | </note> | ||
<note tip> | <note tip> | ||
Descrierea codului aplicaţiei (firmware): | Descrierea codului aplicaţiei (firmware): | ||
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * mediu de dezvoltare (Arduino IDE) |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * librării şi surse 3rd-party |
+ | * [[https://github.com/adafruit/Adafruit-GFX-Library|Adafruit-GFX-Library]] | ||
+ | * am decis sa folosesc aceasta librarie pentru a reutiliza conceptele de afisare grafica, nefiind nevoit sa le reimplementez | ||
* algoritmi şi structuri pe care plănuiţi să le implementaţi | * algoritmi şi structuri pe care plănuiţi să le implementaţi | ||
- | * (etapa 3) surse şi funcţii implementate | + | * concepte facute la EGC |
+ | * data loading | ||
+ | * prefetching | ||
+ | * tile rendering | ||
+ | * `pitches.h` preluat din exemplele din Arduino IDE, pentru a usura folosinta buzzer-ului | ||
</note> | </note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | * Youtube: [[https://youtu.be/2ZlNst9Aejg|Link]] |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | {{:pm:prj2024:ccontasel:asdasdadasda.jpeg?600|}} |
+ | |||
+ | {{:pm:prj2024:ccontasel:whatsapp_image_2024-05-27_at_10.11.42.jpeg?500|}} | ||
+ | |||
+ | {{:pm:prj2024:ccontasel:whatsapp_image_2024-05-27_at_10.31.27.jpeg?500|}} | ||
+ | |||
+ | ===== Tinte de performanta ===== | ||
+ | - Viteza de raspuns: <= 1 sec | ||
+ | - Viteza de decizie a PC-ului: <= 1 sec | ||
+ | - Consum ram: <= 2KB | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Dezvoltarea jocului Battleship pe Arduino a implicat provocari semnificative, cum ar fi crearea unei interfete grafice clare pe un ecran LCD mic, gestionarea precisa a coordonatelor pentru afisarea hartilor si a cursorului, si detectarea corecta a apasarilor butoanelor prin debouncing. Implementarea logicii de joc pentru plasarea si atacul navelor, alaturi de crearea unei logici de atac aleatorii pentru calculator, a fost esentiala pentru a oferi o experienta de joc captivanta. Utilizarea buzzer-ului pentru redarea sunetelor specifice actiunilor din joc a adaugat un element suplimentar de interactivitate, dar si complexitate in gestionarea temporizarii si frecventelor. | ||
+ | |||
+ | Acest proiect a oferit o invatare profunda in programarea pe Arduino, inclusiv manipularea pinilor si perifericelor, interactiunea cu ecranul LCD PCD8544 si buzzer-ul, si implementarea graficii simple cu biblioteca Adafruit GFX. | ||
+ | |||
+ | A fost distractiv! | ||
===== Download ===== | ===== Download ===== | ||
<note warning> | <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ă ;-). | + | [[https://github.com/sabinpocris/BattleshipBoy|Source Code]] |
- | + | ||
- | 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> | </note> | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note tip> | + | {{:pm:prj2024:ccontasel:online_gantt_ps.png?900|}} |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | Biblioteci folosite: |
+ | * [[https://github.com/adafruit/Adafruit-GFX-Library|Adafruit-GFX-Library]] | ||
+ | |||
+ | |||
+ | Resurse: | ||
+ | * [[https://youtu.be/BKm45Az02YE?si=kuBboYrFiNe45DiF|The Insane Engineering of the Gameboy]] | ||
</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> | ||