Yoshi's Nightmare on the Basys3
The objective of this
project was to take a an old verilog
game and change the input parameters to be able to use a Joystick on
the Basys3
FPGA board to control Yoshi in the game. Since the Basys3 board is a
digital system, we have to create an analog to digital convertor (ADC)
in order to play it with an analog Joystick.
Materials:
- Basys3 board
- Arduino Uno
- Analog Joystick
- Level Convertor
For the ADC, we use an Arduino Uno with a simple code that converts the
analog signals into digital. The digital signals are then fed into a
level convertor, where we shift the voltage down to 3.3V as to not
damage the Basys3 board which runs on 3.3V logic.
The Arduino code and the Vivado project file can be found here:
https://github.com/maxmanmius/Yoshis_Nightmare_Joystick
The Vivado file is made up of many modules and will take a while to
synthesize. Be sure to use the basys3.xdc file as the constraint file.
That file can be found in the zip folder. While waiting, you can set up
the system as seen in the diagram below:
Figure 1: System schematic for Yoshi's Nightmare w/ Joystick Controls
To test the ADC is working correctly, you can upload the Arduino code
to the Uno and connect LEDs in series with the outputs of the level
convertor. The LEDs should blink as you move the Joystick. Once
operational, you can upload the bitstream file to the Basys3 and play!
If you have any questions our problems implementing this, email me here: mtkrauss@fortlewis.edu