Project X aims to create an interactive arcade machine for playing Rock-Paper-Scissors (R.P.S) against a computerized opponent represented by the Fanciful Ultra-reliable Machinating Obsequious (F.U.M.O) doll. The project combines hardware interfacing, software programming, and mechanical design to deliver a unique gaming experience. Please read the report for in-depth explanation and documentation of each step.
Upon powering up, the player is greeted with a title screen. The game cycles through rock, paper, and scissors animations until a player input is received. The player's choice is then compared with the computer's, and the outcome is displayed on a VGA monitor alongside the F.U.M.O doll's reaction.
Four push buttons interface with an FPGA Basys-3 board to serve as inputs for Rock, Paper, Scissors, and Reset. The input logic utilizes pull-down resistors and connects through the "JC" Pmod connector.
The output is twofold: visual feedback through a VGA monitor and physical feedback through the F.U.M.O doll's movements. The VGA display is divided into a 20x15 grid, with each cell being 32x32 pixels. The doll's movements are controlled by servos, which are programmed to reflect the game's status, such as celebrating a win or sulking in defeat.
- VGA Operation: Implemented using a pixel generator module and a VGA top module to manage screen displays based on the game state.
- FPGA Servo Operation: Utilizes SG90 servos for doll movement, controlled via PWM signals from the FPGA.
- Control Logic: The game's state transitions are managed by a finite state machine (FSM), with a separate FSM for VGA display management.
The project presented a steep learning curve, particularly in understanding sequential logic and FSMs. The team gained valuable insights into Verilog programming and the intricacies of parallel and sequential programming. Following are our State Diagrams
- Main Project: Google Docs Link
- VGA Module: SharePoint Link
- Servo Operation Code: Google Docs Link
A heartfelt thanks to everyone involved in bringing this ambitious project to life. The team's diverse strengths and personalities contributed to the project's success and made it a memorable experience. One of the main inspiration of this project was this youtube video
Note: This README.md is a condensed version of the original project report. For detailed information, please refer to the provided links and references.