This shows you the differences between two versions of the page.
pm:prj2022:rtilimpea:2048 [2022/06/02 01:57] andrei.cretu1109 [Descriere generală] |
pm:prj2022:rtilimpea:2048 [2022/06/02 03:54] (current) andrei.cretu1109 [Download] |
||
---|---|---|---|
Line 9: | Line 9: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | |||
- | <note tip> | ||
- | 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> | ||
**Schema Bloc** | **Schema Bloc** | ||
+ | {{:pm:prj2022:rtilimpea:pm:prj2022:cb:andc:schema_bloc1109.png?600|}} | ||
+ | Jucatorul se foloseste de 4 butoane pentru mutarea numerelor, plus de inca un buton pentru a reseta jocul. Placuta Arduino primeste semnale de la butoane, afiseaza matricea de numere pe ecranul OLED si reda sunete la buzzer. | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | <note tip> | + | <note> |
- | Aici puneţi tot ce ţine de hardware design: | + | **Lista de piese**:\\ |
- | * listă de piese | + | * Arduino UNO R3 |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | * Ecran OLED 128 X 64 0.95" Albastru |
- | * diagrame de semnal | + | * 5 butoane |
- | * rezultatele simulării | + | * Buzzer pasiv |
+ | * Fire de conexiune | ||
</note> | </note> | ||
+ | **Schema Tinkercad** | ||
+ | |||
+ | {{:pm:prj2022:rtilimpea:pm:prj2022:cb:andc:tinkercad.png|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | + | <note> | |
- | <note tip> | + | Lista librarii utilizate: |
- | Descrierea codului aplicaţiei (firmware): | + | * SPI.h |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * Wire.h |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * Adafruit_GFX.h |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | * Adafruit_SSD1306.h |
- | * (etapa 3) surse şi funcţii implementate | + | |
</note> | </note> | ||
+ | |||
+ | M-am folosit de bibliotecile Adafruit_GFX.h si Adafruit_SSD1306.h pentru a realiza conexiunea si afisarea pe ecranul OLED. Am conectat butoanele si buzzerul la pinii digitali, setand butoanele drept input si activand rezistenta interioara de pull up, iar buzzerul ca output. Afisajul se realizeaza prin desenarea liniilor matricei si a numerelor. Se asteapta ca butoanele sa fie apasate, caz in care se efectueaza functia corespunzatoare. Dupa o mutare se verifica daca s-a castigat jocul (s-a ajuns la 2048) sau s-a pierdut (nu mai exista mutari posibile). Se redau diverse sunete la buzzer, mai precis atunci cand apar noi numere (2 sau 4) in matrice, cand se apasa un buton dar mutarea nu are niciun efect, precum si scurte melodii in caz de castigare sau pierdere a jocului. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | {{:pm:prj2022:rtilimpea:pm:prj2022:cb:andc:img_20220602_014950.jpg?700|}} |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Proiectul la PM mi-a oferit ocazia sa aprofundez notiunile pe care le-am invatat la laborator, dandu-mi libertatea de a face ceva practic si distractiv. Am invatat, de asemenea, cat de importanta este gestiunea memoriei avand in vedere ca ajunsesem intr-un punct in care display-ul nu se initializa deoarece bufferul acestuia nu mai avea loc in memorie. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | <note> |
- | 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ă ;-). | + | **Arhiva**:\\ |
- | + | {{:pm:prj2022:rtilimpea:pm:prj2022:cb:andc:cretu_andrei_335cb_proiectpm.zip|}} | |
- | 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> | + | |
- | + | ||
- | ===== Jurnal ===== | + | |
- | + | ||
- | <note tip> | + | |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
</note> | </note> | ||
Line 64: | Line 57: | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * [[https://ocw.cs.pub.ro/courses/pm/lab/lab0-2022|Laboratorul 0: GPIO]] |
+ | * [[https://ocw.cs.pub.ro/courses/pm/lab/lab1-2022|Laboratorul 1: UART]] | ||
+ | * [[https://ocw.cs.pub.ro/courses/pm/lab/lab6-2022|Laboratorul 6: I2C]] | ||
+ | * [[https://randomnerdtutorials.com/esp32-ssd1306-oled-display-arduino-ide/|Tutorial Display OLED]] | ||
+ | Datasheets: | ||
+ | * [[https://docs.arduino.cc/resources/datasheets/A000066-datasheet.pdf|Arduino UNO R3]] | ||
+ | * [[https://www.vishay.com/docs/37902/oled128o064dbpp3n00000.pdf|Display OLED 128 X 64 0.95"]] | ||
</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> |