This shows you the differences between two versions of the page.
pm:prj2024:fstancu:eduard.radu1303 [2024/05/23 22:48] eduard.radu1303 [Software Design] |
pm:prj2024:fstancu:eduard.radu1303 [2024/05/25 13:31] (current) eduard.radu1303 [Rezultate Obţinute] |
||
---|---|---|---|
Line 4: | Line 4: | ||
<note tip> | <note tip> | ||
Prezentarea pe scurt a proiectului: | Prezentarea pe scurt a proiectului: | ||
- | * Oferă o versiune interactivă a jocului clasic de cărți, blackjack, utilizând senzori pentru a determina modul în care cărțile sunt împărțite și cum jucătorii pot paria și interacționa cu dealerul. | + | * Oferă o versiune interactivă a jocului clasic de cărți, blackjack, utilizând senzori pentru a determina modul în care miza este aleasă și cum jucătorii pot paria și interacționa cu dealerul. |
* Scopul este de a crea o experiență de joc unică, folosind senzori pentru a influența acțiunile jucătorilor și rezultatul jocului, oferind în același timp oportunitatea de a explora funcționarea acestor senzori într-un context creativ. | * Scopul este de a crea o experiență de joc unică, folosind senzori pentru a influența acțiunile jucătorilor și rezultatul jocului, oferind în același timp oportunitatea de a explora funcționarea acestor senzori într-un context creativ. | ||
* Ideea a fost de a combina tehnologia modernă cu un joc tradițional, adăugând un strat de interactivitate. | * Ideea a fost de a combina tehnologia modernă cu un joc tradițional, adăugând un strat de interactivitate. | ||
Line 12: | Line 12: | ||
<note tip> | <note tip> | ||
* Joc interactiv de blackjack dezvoltat pe Arduino Uno; | * Joc interactiv de blackjack dezvoltat pe Arduino Uno; | ||
- | * Fotorezistorul ajustează distribuția cărților în funcție de lumina ambientală; | + | * Fotorezistorul este echivalentul butonului de hit, in funcție de luminozitate se dă sau nu hit; |
- | * Senzorul PIR detectează mișcarea pentru decizii de joc(HIT); | + | * Senzorul PIR detectează mișcarea pentru decizii de joc(Stand); |
* Microfonul ajustează miza pe baza nivelului de zgomot; | * Microfonul ajustează miza pe baza nivelului de zgomot; | ||
* Un ecran LCD afișează scorul. | * Un ecran LCD afișează scorul. | ||
Line 58: | Line 58: | ||
* VCC: Conectat la 5V de pe Arduino pentru alimentare. | * VCC: Conectat la 5V de pe Arduino pentru alimentare. | ||
* GND: Conectat la GND de pe Arduino pentru masă. | * GND: Conectat la GND de pe Arduino pentru masă. | ||
- | * OUT: Conectat la pinul digital 2 de pe Arduino. Acesta este pinul care va citi valoarea digitală corespunzătoare nivelului de lumină detectat de fotorezistor. | + | * OUT: Conectat la pinul digital 2 de pe Arduino. Acesta este pinul care va citi valoarea digitală corespunzătoare nivelului de lumină detectat de fotorezistor. De asemenea, utilizez și o întrerupere. |
* Modul cu senzor de sunet : | * Modul cu senzor de sunet : | ||
* VCC: Conectat la 5V de pe Arduino pentru alimentare. | * VCC: Conectat la 5V de pe Arduino pentru alimentare. | ||
Line 77: | Line 77: | ||
* time.h - pentru generarea de numere in ordine aleatoare | * time.h - pentru generarea de numere in ordine aleatoare | ||
</note> | </note> | ||
- | <note tip> | + | <note> |
- | Algoritmi şi structuri pe care plănuiţi să le implementaţi: | + | |
* Card: Reprezintă o carte de joc, având câmpurile value (valoarea cărții) și symbol (simbolul cărții - inimă, caro, treflă, pică). | * Card: Reprezintă o carte de joc, având câmpurile value (valoarea cărții) și symbol (simbolul cărții - inimă, caro, treflă, pică). | ||
* Vectorul deck: Stochează pachetul de 52 de cărți. | * Vectorul deck: Stochează pachetul de 52 de cărți. | ||
* Vectorii playerCards și dealerCards: Stochează cărțile jucătorului și respectiv ale dealerului. | * Vectorii playerCards și dealerCards: Stochează cărțile jucătorului și respectiv ale dealerului. | ||
- | * Funcția resetDeck amestecă pachetul de cărți înainte de începerea jocului și când se epuizează cărțile. | + | </note> |
- | * Funcția dealCard extrage o carte aleatorie din pachet și o adaugă la mâna jucătorului sau a dealerului. | + | <note> |
- | * Funcția adjustAceValue ajustează valoarea unui As (1 sau 11) în funcție de scorul curent. | + | * placeBetWithAudio: Utilizează intrarea de la senzorul audio pentru a plasa un pariu. |
- | * displayPlayerScreen, displayDealerScreen: Afișează scorul și cărțile jucătorului/dealerului pe LCD. | + | * resetDeck: Resetează pachetul de cărți. |
- | * displayResult: Afișează rezultatul final al jocului (câștig, pierdere sau egalitate). | + | * dealCard: Împarte o carte din pachet și actualizează scorul. |
- | * displayCards: Afișează o mână de cărți pe LCD. | + | * adjustAceValue: Ajustează valoarea unui as dacă scorul depășește 21. |
- | * placeBet: Permite jucătorului să plaseze un pariu. | + | * playDealerTurn: Gestionează tura dealer-ului, împărțind cărți până când scorul dealer-ului ajunge la cel puțin 17. |
- | * resetDeck: Amestecă pachetul de cărți. | + | * determineWinner: Determină câștigătorul pe baza scorurilor și actualizează banii jucătorului. |
- | * dealCard: Extrage și distribuie o carte. | + | * displayPlayerScreen: Afișează scorul și cărțile jucătorului. |
- | * playDealerTurn: Joacă tura dealerului. | + | * displayDealerScreen: Afișează scorul și cărțile dealer-ului. |
- | * determineWinner: Determină câștigătorul jocului. | + | * displayResult: Afișează rezultatul jocului (câștig, pierdere sau egalitate) și mâinile finale ale jucătorului și dealer-ului. |
- | * resetGame: Resetează jocul pentru o nouă rundă. | + | * resetGame: Resetează starea jocului pentru o rundă nouă. |
</note> | </note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | <html> |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | <iframe |
- | </note> | + | src="https://www.youtube.com/embed/a5LhMaiRbuc" |
+ | title="YouTube video player" | ||
+ | frameborder="0" | ||
+ | allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" | ||
+ | allowfullscreen | ||
+ | style="aspect-ratio: 16/9; width: 100%;" | ||
+ | ></iframe> | ||
+ | </html> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | * Acest proiect mi-a oferit o experiență practică valoroasă în integrarea senzorilor și afișajelor LCD cu o placă Arduino pentru a crea un joc interactiv, consolidându-mi astfel cunoștințele de programare și electronică într-un mod aplicat și captivant. | ||
+ | * Nu știam că suflatul într-un microfon este perceput atât de puternic de către acesta. | ||
+ | * Senzorii de mișcare sunt prea sensibili și dificl de reglat. | ||
===== 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ă ;-). | + | Arhiva : {{:pm:prj2024:fstancu:blackjack.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> | </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 ===== | ===== Bibliografie/Resurse ===== | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | Resurse software : |
+ | * https://www.youtube.com/watch?v=mZCJNOf69JI | ||
+ | * https://www.youtube.com/watch?v=CbovaHqvdsM | ||
+ | * https://www.youtube.com/watch?v=QGG-jw5PQpo | ||
+ | * https://github.com/linhartr22/Arduino_Blackjack/blob/master/Arduino_Blackjack.ino | ||
</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> |