Table of Contents

Bomb Defusal Duel

Introducere

Proiectul „Bomb Defusal Duel” reprezintă un joc embedded multiplayer realizat pe platforma ATmega328P Xplained Mini.

Jocul simulează dezamorsarea unei bombe prin introducerea unei secvențe corecte de butoane într-un timp limitat. Proiectul utilizează multiple periferice hardware și software pentru a crea o experiență interactivă completă:

Scopul principal al proiectului este utilizarea integrată a funcționalităților studiate în cadrul laboratoarelor PM pentru realizarea unui sistem embedded interactiv și modular.

Descriere generală

Jocul funcționează în două faze principale:

  1. faza de setare a codului
  2. faza de dezamorsare

La începutul fiecărei runde, unul dintre jucători introduce o secvență secretă formată din 4 culori folosind butoanele disponibile.

După confirmarea secvenței, celălalt jucător trebuie să reproducă secvența corectă înainte de expirarea timpului.

Sistemul oferă:

Jocul continuă până când unul dintre jucători ajunge la 5 victorii.

Stadiul actual al implementării hardware

În etapa actuală au fost integrate și testate toate componentele hardware principale necesare funcționării jocului.

Au fost realizate:

Toate componentele funcționează simultan și au fost validate individual înainte de integrarea finală.

Imagine ansamblu hardware

Componente utilizate

Componentă Rol
ATmega328P Xplained Mini Microcontroler principal
Breadboard Prototipare și interconectare
4 x LED-uri Feedback vizual pentru acțiuni
4 x rezistențe 220Ω Limitarea curentului pentru LED-uri
5 x butoane Introducerea comenzilor
buzzer pasiv Generarea efectelor sonore
display OLED SSD1306 Afișarea informațiilor
fire jumper Realizarea conexiunilor

Configurația pinilor

Componentă Pin microcontroler
LED roșu PB0
LED galben PB1
LED albastru PB2
LED verde PB3
Buton roșu PD2
Buton galben PD3
Buton albastru PD4
Buton verde PD5
Buzzer PD6
Buton confirmare PD7
Buton onboard START/STOP PB7
OLED SDA PC4
OLED SCL PC5

OLED funcțional

Justificarea utilizării pinilor

Pinii au fost aleși astfel încât să permită organizarea logică și eficientă a componentelor.

LED-urile au fost grupate pe PORTB pentru simplificarea controlului ieșirilor digitale.

Butoanele au fost grupate pe PORTD pentru utilizarea facilă a intrărilor digitale și activarea rezistențelor interne de tip pull-up.

Display-ul OLED utilizează protocolul I2C, fiind conectat la:

conform configurației hardware standard a microcontrolerului ATmega328P.

Schema bloc

Schema electrică

Funcționalități utilizate din laboratoare

În cadrul proiectului au fost utilizate multiple concepte și funcționalități prezentate în laboratoare:

Stadiul actual al implementării software

Implementarea software este complet funcțională și include:

Arhitectura proiectului este modulară, funcționalitățile fiind separate în funcții dedicate pentru:

Biblioteci utilizate

Bibliotecă Rol
Wire.h Comunicare I2C
Adafruit_GFX.h Funcții grafice pentru display
Adafruit_SSD1306.h Control display OLED SSD1306

Elementul de noutate

Elementul principal de noutate al proiectului este implementarea unui joc multiplayer embedded complet interactiv, utilizând exclusiv resurse hardware limitate ale microcontrolerului.

Proiectul combină:

pentru a crea o experiență similară unui joc real de tip „bomb defusal”.

Validarea funcționalităților

Fiecare componentă a fost testată individual înainte de integrarea finală:

Validarea finală a constat în rularea completă a jocului cu doi jucători.

Optimizări realizate

Au fost realizate următoarele optimizări:

Demo video

https://youtu.be/SMri4l_4zwc

Concluzii

Proiectul demonstrează integrarea eficientă a mai multor periferice hardware și concepte software într-un sistem embedded interactiv.

În cadrul proiectului au fost utilizate noțiuni importante precum:

Rezultatul final este un joc multiplayer complet funcțional și extensibil.

Resurse