Blackjack
Introducere
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 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.
Ideea a fost de a combina tehnologia modernă cu un joc tradițional, adăugând un strat de interactivitate.
Este util, deoarece îi ajută pe alții să înțeleagă modul în care tehnologia poate fi aplicată pentru a îmbunătăți experiențele tradiționale.
Descriere generală
Joc interactiv de blackjack dezvoltat pe Arduino Uno;
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(Stand);
Microfonul ajustează miza pe baza nivelului de zgomot;
Un ecran LCD afișează scorul.
Hardware Design
Listă de piese:
* Arduino UNO (ATmega328p)
* Modul senzor PIR HC-SR501 (senzor de mișcare)
* Modul cu fotorezistor
* Modul senzor de sunet cu microfon
* LCD 1602 cu I2C
* Breadboard
* Fire mamă-mamă, tată-tată
* Cablu USB
Schema electrică:
Schema arduino:
Utilizare pini pentru fiecare componentă:
Software Design
Librării utilizate :
LiquidCrystal_I2C - pentru controlul LCD-ului cu interfata I2C
Wire - pentru comunicarea I2C
time.h - pentru generarea de numere in ordine aleatoare
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.
Vectorii playerCards și dealerCards: Stochează cărțile jucătorului și respectiv ale dealerului.
placeBetWithAudio: Utilizează intrarea de la senzorul audio pentru a plasa un pariu.
resetDeck: Resetează pachetul de cărți.
dealCard: Împarte o carte din pachet și actualizează scorul.
adjustAceValue: Ajustează valoarea unui as dacă scorul depășește 21.
playDealerTurn: Gestionează tura dealer-ului, împărțind cărți până când scorul dealer-ului ajunge la cel puțin 17.
determineWinner: Determină câștigătorul pe baza scorurilor și actualizează banii jucătorului.
displayPlayerScreen: Afișează scorul și cărțile jucătorului.
displayDealerScreen: Afișează scorul și cărțile dealer-ului.
displayResult: Afișează rezultatul jocului (câștig, pierdere sau egalitate) și mâinile finale ale jucătorului și dealer-ului.
resetGame: Resetează starea jocului pentru o rundă nouă.
Rezultate Obţinute
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
Bibliografie/Resurse