This is an old revision of the document!


King's Cup - Branzeu Mihnea 333CA

Introducere

Prin acest proiect mi-am propus sa automatizez jocul King's Cup, un drinking game cunoscut, cu ajutorul unor module ESP32.
Jocul va putea fi jucat de 3 jucatori, fiecare avand un modul ESP cu ajutorul caruia va putea juca. Ideea a pornit de la faptul ca in jocul clasic, se triseaza de multe ori, astfel ca in varianta aceasta nu se va putea trece mai departe pana ce nu toti isi vor duce la capat provocarile. Datorita automatizarii, voi putea realiza si un clasament, cu cantitatea de bautura consumata de fiecare jucator.

Regulament

Regulile jocului original de King's Cup presupun ca jucatorii sa se stranga in cerc, alaturi de bauturile lor si sa aseze un pachet de carti cu fata in jos in forma de cerc. Fiecare jucator va trage pe rand o carte, si in functie de numarul ei va face o provocare. Cartile au urmatoarele semnificatii pentru cel care este la rand:

  • 2 - Alegi pe cineva care va bea o gura.
  • 3 - Bei o gura.
  • 4 - Fetele beau o gura.
  • 5 - Thumb master: Oricand in timpul jocului poti pune degetul mare pe masa, ceilalti jucatori fiind nevoiti sa faca la fel. Ultima persoana care pune degetul pe masa bea o gura.
  • 6 - Baietii beau o gura.
  • 7 - Asemanator cu Thumb Master, insa trebuie ca degetul aratator sa fie indreptat in sus.
  • 8 - Alegi pe cineva si beti impreuna o gura
  • 9 - Spui un cuvant; Ceilalti trebuie sa spuna, pe rand, un cuvant care rimeaza. Cine nu stie sau repeta un cuvant bea o gura.
  • 10 - Asemanator cu 9, insa in loc de rime jucatorii trebuie sa spuna cuvinte din aceeasi categorie cu primul.
  • J - Alegi o regula care trebuie respectata pana la finalul jocului.
  • Q - Pana la final, cei care iti raspund la orice intrebare trebuie sa bea o gura.
  • K - Toti beau o gura.
  • A - Cascada: Provocare speciala unde toata lumea bea, cu conditia ca un jucator nu se poate opri inainte jucatorului din stanga lui

In cazul proiectului meu, pachetul de carti va fi inlocuit de un ecran LCD, care va afisa direct, cu ajutorul unui algoritm, provocarea pentru fiecare jucator.

Descriere generală

Proiectul este alcatuit din doua componente:

  1. Un modul ESP32 central, cu ajutorul caruia se va face setupul jocului si care va gestiona celelalte module
  2. Mai multe module identice, alcatuite din ESP32, butoane, LEDuri si LCDuri, prin care jucatorii vor putea juca jocul

Initial, modulul master va fi configurat, fiind specificate informatii despre jucatori. Aceste informatii vor fi trimis apoi catre modulele secundare, prin Wi-Fi, cu ajutorul ESPNow.
Atunci cand jocul incepe, masterul va selecta random o provocare pe care o va afisa pe LCD-ul sau. Jucatorii care vor trebui sa execute provocarea vor fi anuntati cu ajutorul LEDurilor de pe modulele lor. Jocul nu va putea fi continuat pana ce toti executa provocarea, fapt ce poate fi determinat cu ajutorul senzorului de forta, care va sta sub paharul fiecaruia, si care va detecta daca o cantite threshold a fost consumata in urma provocarii.

Hardware Design

Proiectul este alcatuit din 4 componente distincte, dintre care una este modulul master, care controleaza flow-ul jocului, iar celelalte trei sunt module player, construite identic, cate unul pentru fiecare jucator.

Design Modul Master

Acest modul este alcatuit dintr-un ESP32, un LCD cu modul I2C integrat, si 4 butoane. Primele 3 butoane sunt utilizate pentru selectarea unuia dintre cei 3 jucatori in diferite situatii, pe parcursul jocului, iar cel de-al 4-lea este utilizat pentru a trece la urmatoarea provocare.

Schema electrica a modulului:

Componentele pe care le-am utilizat sunt:

  • ESP32-WROOM-32D
  • Display LCD 16×2 I2C
  • 4xButoane
  • LEDuri

Design Modul Player

Acest tip de modul este alcatuit dintr-un ESP32, 2 butoane, 2 LEDuri, un buzzer si un senzor de forta. Butoanele sunt utilizate pentru in timpul provocarilor, iar LEDurile au rolul de a semnala diferite evenimente pe parcursul jocului, precum randul unui anume jucator, sau faptul ca acesta trebuie sa bea. Senzorul de forta, plasat sub paharul jucatorului, are rolul de a detecta atunci cand acesta bea, pentru a exclude posibilele tentative de a trisa. Buzzerul anunta jucatorii care nu si-au indeplinit provocarea si incearca sa ascunda acest lucru.

Schema electrica a modulului:

Componentele pe care le-am utilizat sunt:

  • ESP32-WROOM-32D
  • 2xLED
  • 2xButoane
  • Force Resisting Sensor
  • Buzzer

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

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ă ;-).

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.

Jurnal

  • 5 Mai - Am creat pagina de documentatie

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2023/adarmaz/kings-cup.1685404109.txt.gz · Last modified: 2023/05/30 02:48 by mihnea.branzeu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0