Dice Simulator

Introducere

  • Un mini game care va simula jocul clasic de barbut. Se vor simula doua aruncari de zaruri (player1 si player2), castigatorul fiind cel care are zarul mai mare sau cel care a dat o dubla. Numerele se vor genera aleator in momentul zguduirii placutei, prin intermediul accelerometrului.
  • Scoupul proiectului este digitalizarea jocului pentru a putea fi jucat si in lipsa zarurilor fizice.

Descriere generală

  • Schema bloc

Jucatorii vor actiona telecomanda pentru selectarea tipului de zar (cu 2, 4, 6 sau 8 fete), apoi se va genera un numar random atunci cand accelerometrul este miscat. La a doua aruncare de zar (miscare a accelerometrului) se va considera ca fiind aruncarea celui de al doilea jucator. Cel cu zarul mai bun va fi castigatorul (dubla de 1-1 fiind cel mai bun zar posibil). Pentru functia de random voi folosi un seed obtinut prin senzorul de temperatura integrat al placutei Arduino.

Hardware Design

Lista componentelor

  • Placuta Arduino UNO
  • 4 x Display cu 7 segmente
  • Accelerometru / Giroscop
  • Receptor infrarosu
  • Telecomanda infrarosu
  • Fire

Schema electrica

Software Design

Proiectul contine 3 elemente software si tot atetea elemente hardware. In primul rand un senzor de receptie IR, 4 display-uri 7-segmente si un accelerometru/gyroscop. In loop se peleaza functia transalteIR() care tansforma semnalele infra-rosu primite prin telecomanda si seteaza un flag cu valoarea primita (flag-ul reprezinta numarul de fete al zarului cu care se va arunca). In continuare se citesc datele primite de accelerometru/gyroscop, cat si temperatura inregistrata de acesta (la nivelul circuitului si nu al mediului!). In momentul in care este detectata miscarea, se vor genera numere random cuprinse inre 1 si vaoarea flag-ului. Aceste numere vor fi afisate in pereche ( doua zaruri ), pe 2 dintre ecranele 7-segmente, iar pe alt ecran se va afisa mereu numarul de fete al zarulurilor folosite.

Biblioteci folosite: IRemote.h, Wire.h

Rezultate Obţinute

Am obtinut ceea ce mi-am propus sa fac. Im momenul miscarii breadboard-ului cu gyroscopul, numerele care reprezinta zarurile de pe display se schimba continuu, pana in momentul in care placuta este lasata nemiscata. Selectarea fetelor merge, de asemenea, putand fi olosit orice zar cu fete cuprinse intre 2-9. Pentru seed-ul de random am folosit pin-ul A1, care este nefolosit. De mentionat ca am incercat si folosit temperatura inoarsa de accelerometru, insa rezultatele nu au fost la fel de multumitoare.

Concluzii

Am reusit sa fac in mare ce mi-am propus. Pentru a se imbunatati se pot implementa noi functionalitati, precum: afisarea unui mesaj la “aruncarea: unei duble sau un sumnal sonor produs de un buzzer etc. Sunt multumit de ceea ce am realizat si a fost o experienta placuta sa imbin hardware-ul cu partea software.

Download

Bibliografie/Resurse

pm/prj2022/robert/dice-simulator.txt · Last modified: 2022/05/28 01:58 by david.diculescu
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