Fastest Button In The West

Introducere

A 2 player game where each player has to be the first to push their button the right number of times . The number of times the button needs to be pressed is shown by the number of LED's witch light up for a brief moment at the start of each round. The score will be shown on an OLED display. A fun and easy to learn game with the purpose to entertain the players. The buttons will be made with capacitive touch.

Descriere generală

The game will started and stopped with a switch and a countdown will begin after witch the game will progress. The various results will be shown on the LCD display.

Hardware Design

  • Arduino UNO R3
  • Resistors
  • LEDs
  • Capacitive touch buttons
  • OLED Display
  • Breadboard

Software Design

https://github.com/Tsunami36/Ma-Project2022/blob/main/Main

Am scris codul in mediul de dezvoltare: Arduino IDE. Am folosit urmatoarele biblioteci:

Adafruit_GFX - implementarea functiilor de afisare pe ecran

Adafruit_SSD1306.h - comunicarea intre arduino si ecran

SPI - comunicarea prin SPI Wire Ca variabile globale am: SCREEN_WIDTH 128 SCREEN_HEIGHT 64

randomNumber1 -numarul ledurilor care se va aprinde randomNumber2 -tipul pana cand se vor aprinde ledurile

pushes_p1,pushes_p2-nr de apasari al fiecare jucator

running - variabila booleana care spune daca jocul ruleaza la momentul curent de timp

Functiile implementate sunt:

setup() - initializarea pinilor si a ecranului

loop() -se aprind un random numar de leduri(1-3) dupa un interval random de timp se detecteaza apasarile de butoane, primul player care apasa de un numar corespunzatori de ori castiga runda scorul se actualizeaza, programul o ia de la inceput.

display_score() - afiseaza pe ecran scorul curent al jocului game_over() - afiseaza ecranul de game over atunci cand un jucator ajunge la 3 puncte reset() - functie folosita pentru a reseta scorul

Functionare generala:

In setup() se initializeaza pinii si ecranul OLED. Jocul incepe cand ambii jucatori sunt pregtiti. Timerul intern random incepe si cand se termina un numar de leduri se va aprinde. Primul jucator care apasa butonul de numarul corespunzator de ori primeste un punct

In ecranul de “Game Over” este resetat scorul

Rezultate Obţinute

Start of the game

Middle of the game

Concluzii

Proiectul a fost unul interesant, cea mai grea parte a proiectului a fost sa conectez in mod corect ecranul OLED la Arduino deoarece majoritatea documentatiei este pe I2C. De asemenea, am avut dificultati in a gasi o biblioteca pentru a controla afisarea pe ecran din cod. Intr-un final am obtinut ce mi-am dorit, jocul este functional chiar daca poate fi imbunatatit.

Download

Jurnal

22.04.2022 -Decis tema si concept, realizat primul draft de site.

Bibliografie/Resurse

pm/prj2022/agmocanu/fastestbutton.txt · Last modified: 2022/06/01 17:39 by florin.oprisan
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