This shows you the differences between two versions of the page.
pm:prj2025:eradu:andreea.dobre0508 [2025/05/24 23:07] andreea.dobre0508 [Pong] |
pm:prj2025:eradu:andreea.dobre0508 [2025/05/30 09:56] (current) andreea.dobre0508 [Bibliografie/Resurse] |
||
---|---|---|---|
Line 1: | Line 1: | ||
=====Pong===== | =====Pong===== | ||
- | <note tip> | + | <note> |
- | **Nume:** Andreea-Viktorya Dobre | + | **Nume:** Dobre Andreea-Viktorya\\ |
**Grupa:** 331AA | **Grupa:** 331AA | ||
</note> | </note> | ||
Line 14: | Line 14: | ||
Inițial apare un ecran de start pentru a împiedica începerea automată a jocului când circuitul este alimentat de la USB. Pentru acesta se folosește un buton separat. | Inițial apare un ecran de start pentru a împiedica începerea automată a jocului când circuitul este alimentat de la USB. Pentru acesta se folosește un buton separat. | ||
- | O dată apăsat acel buton apar pe ecran: scorul - în partea de sus, cele două plaftorme și mingea. Mingea va incepe să se miste într-o direcție aleatoare pornind din centrul ecranului. | + | O dată apăsat acel buton apar pe ecran: scorul - în partea de sus, plaftorma și mingea. Mingea va incepe să se miste într-o direcție aleatoare pornind din centrul ecranului. |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 22: | Line 22: | ||
* Arduino UNO R3 | * Arduino UNO R3 | ||
* butoane | * butoane | ||
- | * rezistente | ||
- | * condensatoare | ||
* giroscop | * giroscop | ||
+ | ===== Schema Circuit ===== | ||
+ | ===== Bill Of Materials ===== | ||
+ | ^ Componenta ^ Pret(lei) ^ Link ^ | ||
+ | | Placa Arduino UNO | 34.99 |https://www.optimusdigital.ro/ro/compatibile-cu-arduino-uno/1678-placa-de-dezvoltare-compatibila-cu-arduino-uno-atmega328p-i-ch340.html?search_query=arduino+uno&results=129| | ||
+ | | Giroscop | 79.99 |https://www.optimusdigital.ro/ro/senzori-senzori-inertiali/8646-modul-adafruit-cu-giroscop-l3gd20h.html?search_query=giroscop+&results=45 | | ||
+ | | OLED Display | 23.29 |https://ardushop.ro/ro/display-uri-si-led-uri/1110-display-oled-128x64-096-spi-6427854015433.html | | ||
+ | | Butoane push | 0.36 |https://www.optimusdigital.ro/ro/butoane-i-comutatoare/1119-buton-6x6x6.html?search_query=butoane&results=190 | | ||
+ | | Breadboard | 4.56 |https://www.optimusdigital.ro/ro/prototipare-breadboard-uri/44-breadboard-400-points.html?search_query=breadboard+400&results=20 | | ||
+ | | Jumper wires | 4.99 |https://www.optimusdigital.ro/ro/fire-fire-mufate/884-set-fire-tata-tata-40p-10-cm.html?search_query=fire+tata+tata&results=72 | | ||
+ | |||
+ | Se mai pot adauga componente ulterior. | ||
+ | |||
+ | ^ **Preț total:** ||||^ **148.54** ^ | ||
+ | |||
+ | ===== Imagini componente ===== | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | ==== Laboratoare folosite ==== | ||
- | <note tip> | + | * **Laboratorul 0 – GPIO** → folosit pentru configurarea pinilor pentru butoane. |
- | Descrierea codului aplicaţiei (firmware): | + | * **Laboratorul 1 – UART** → folosit pentru a afișa informații de debug în consola serială. |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * **Laboratorul 2 – Întreruperi** → folosit pentru tratarea apasărilor de buton folosind debouncing. |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * **Laboratorul 6 – I2C** → folosit pentru afișajul pe ecran. |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | ==== Motivatia alegerii bibliotecilor: ==== |
+ | * #include <Wire.h>: Giroscopul L3GD20H este conectat prin I2C (pinii SDA si SCL), iar aceasta biblioteca gestionează transmiterea și primirea de date I2C. | ||
+ | * #include <SPI.h>: Display-ul OLED folosește SPI pentru comunicare, iar biblioteca SPI.h este necesară pentru controlul pinilor MOSI, SCK, CS. | ||
+ | * #include <Adafruit_GFX.h>: Pentru a folosi funcțiile precum drawPixel(), drawRect(), drawFastVLine(), necesare pentru a desena mingea si paleta. | ||
+ | * #include <Adafruit_SSD1306.h>: Este necesară pentru a trimite datele către display-ul OLED. | ||
+ | * #include <Adafruit_L3GD20.h>: Pentru functii precum gyro.begin() și gyro.read() pentru a obține valorile de rotație (în jurul axelor X/Y/Z), folosite pentru a controla paleta din jocul Pong | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
Line 45: | Line 64: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Github: https://github.com/AndreeaViky/pong_game | ||
+ | YouTube: | ||
===== Download ===== | ===== Download ===== | ||
Line 67: | Line 88: | ||
<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> | ||
+ | https://randomnerdtutorials.com/arduino-mpu-6050-accelerometer-gyroscope/ | ||
+ | https://randomnerdtutorials.com/guide-for-oled-display-with-arduino/ |