Skip to content

A coordination game/tool that helps users develop hand-eye coordination, reaction speed, and dexterity

Notifications You must be signed in to change notification settings

Aryan-G4/Dexerity-Dash--FPGA-Project

Repository files navigation

DEXTERITY DASH - Hand-Eye Coordination Training Device

Aryan Ghosh and Sarah Siddiqui

E3297C0F-8B77-4BE0-AE88-34E51D8D0A61 68E11417-B646-413E-A382-EA41B3BA177F

Table of Contents

Introduction

Welcome to the homepage of Dexterity Dash, a hand-eye coordination tool/game aiming to make training hand-eye coordination and reflexes fun for those suffering from head trauma and brain injury. This engineering project aims to develop a hand-eye coordination game using the DE1-SoC FPGA board, Verilog for coding, and ModelSim for testing. The game enhances users' hand-eye coordination by requiring them to press illuminated buttons in a specific sequence within a time limit to score points.

Project Overview

The primary goal of this project is to create a hand-eye coordination game. The DE1-SoC board, Quartus for Verilog coding, and ModelSim for testing are utilized to implement the game's logic. The game involves pressing one of 8 buttons that light up, and after each correct press, another button lights up. A default timer of 30 seconds challenges users to press as many correct buttons as possible to score the most points.

Hardware Component

Solidworks model

CAD 1 Using solidworks, I created a comprehensive model of the game controller to ensure that all buttons are non-intersecting and ground clearance as well as screw clearance was accounted for.

Construction Process

9AA2A3A4-0FB5-4169-84FB-7F2263EB5E28 Using a Miter Saw, Drill press, and impact driver, we assembled the gameboard according to the Solidworks model.

AEA7F85D-6630-497D-BC20-0A685D175983 After the wooden chassis was complete, we installed the buttons and LEDs to complete the mechanical aspect of the gameboard.

Electrical Component

Circuit Schematic to be implemented on the breadboard

image

Using KiCad I created a schematic of the electrical system that had to be implemented to allow the FPGA to interact with the buttons and switches.

486B255D-B9AB-4188-B3D1-C4E8ACC050CD 7FF55709-1F49-4A41-8A71-BEF448E0833A To ensure rapid production and prototyping, I used a breadboard to assemble the circuit show in the schematic, colour coding wires to allow for easy installation, debugging, and removal of wires.

Software Component

Using Quartus, VSCode and ModelSim, we wrote this game exclusively in Verilog. Our Final code is under DEXTERITYDASH.V, and all other files are drafts and tester code.

Shown below is a block diagram of how all different code modules and programs interact with each other. Code Block Diagram

Despite our hardware and electrical components being quite complex given the scope of the project, we did not shy away from making our software just as complex, using several features of the DE1-SoC board.

Here is a list of Verilog features we implemented:

  • A VGA output and Display showing a welcome screen as well as a max score and max time info screen.
  • A Finite State Machine to control the two screens of the VGA
  • Onboard FPGA Keys, LEDs, 7-Segment Displays, and GPIO pins
  • A binary to decimal and a decimal to hexadecimal converter
  • Multiple multi-bit wide registers to store data
  • A timer implemented by generating a waveform and using clock crossing.
  • Edge Triggered Flipflops to count score

Here is a functional simulation of simulation of our game logic. GPIO_0 is the user input, and when it matches GPIO_1(the signal signifying which button we want to press), 'correctsignal' goes high for an instant and this causes the score counter to increase. modelsim

Game Rules

We aimed to keep Dexterity Dash TM very simple as we want to test hand-eye coordination solely, eliminating external factors such as game complexity. To begin the game, the user simply presses the reset button, where they will be shown a timer and their score. The board should have buttons that light up and your job as the user is to press the lit up buttons, if the user presses a lit up button, then they score a point and a new button is lit up. The user must push their hand-eye coordination to score as many points as possible before the timer runs out. This allows them to have personal records to aim to beat, benchmarking their improvement.

Early Work

Here is some of our early brainstorming and planning Rough Ideas-2 Rough Ideas-5 Rough Ideas-4 schematic draft 1

About

A coordination game/tool that helps users develop hand-eye coordination, reaction speed, and dexterity

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published