This is an old revision of the document!


Arcade Console for DOOM

Vasile Bogdan-Catalin
Grupa 334CC

Introducere

Proiectul are ca scop rularea unei variante mai simplificate de DOOM (1993) pe un ecran de 3.5 iinch, controlat printr-o consola cu un joystick arcade si 2 butoane. Scopul proiectului este strict unul de entertainment, fiind o incercare nostalgica de recreere a modului cum aratau jocurile arcade in urma cu mai bine de 40 de ani.

Descriere generală

Mai jos este atasata o schema bloc care reprezinta modulele proiectului:

Hardware Design

Lista piese:

  • Arduino UNO
  • Breadboard
  • LCD 3.5 inch
  • Arcade Joystick
  • Buzzer
  • Speaker
  • Resistors 10k
  • LEDs
  • Buttons
  • Wires

Schema hardware

Mai jos sunt doua implementari hardware, prima varianta fiind si prima la care am lucrat care foloseste doar butoanele (cele din stanga, in forma de plus) pentru deplasare si in dreapta butonul de shooting.

A doua implementare ofera o experienta mai smooth si mai fluida, folosindu-se de un joystick cu care, prin intermediul librariei proprii, am reusit sa fac o interpolare mai precisa intre cadre, ajutand astfel mult miscarea jucatorului.

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare: Arduino IDE 1.8.20
  • librării şi surse 3rd-party:
    • Adafruit's SSD1306 for monochrome OLED displays;
    • Arduino Joystick Library;
    • Modified AVRs TWI module;
  • algoritmi şi structuri pe care plănuiţi să le implementaţi:
    • Codul este implementat in urmatoarele fisiere, care se ocupa fiecare cu cate un element distinct at aplicatiei:
      • input.h/.cpp, verifica inputul venit de la jucator;
      • types.h/.cpp, lista de constante pt denumiri pentru diferitele obstacole/pereti;
      • sprites.h, care memoreaza in niste arrays informatii sub format BMP despre toate sprite-urile din joc;
      • sound.h, care se ocupa de sunetele din joc, transformate pentru a fi interpretate de buzzer si de asemenea tine cont de toate functiile care se ocupa de sunet (playSound(), setFrequency() etc.);

Rezultate Obţinute

Mai jos sunt cateva dintre rezultatele pe care le-am obtinut. Niste lucruri care mai trebuie schimbate este poate repozitionarea cablurilor si a butoanelor pentru o interactiune mai usoara cu acestea.

Mai jos sunt ultimele variante ale proiectului, cu joystick-ul in functiune:

Download

Bibliografie/Resurse

pm/prj2022/alaura/bogdan.vasile2211.1653661266.txt.gz · Last modified: 2022/05/27 17:21 by bogdan.vasile2211
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