As an undergraduate electrical engineering student, I wanted a hands-on way to get more involved with FPGAs, as I've been enjoying my time with them ELEC 326. This project specifically stood out because I enjoy the game pong and have also been interested in how AI in games (NPCs and opponents) works.
HARDWARE SET-UP
This project is not very intensive hardware-wise. Most of the labor in the project came from messing around with getting the Pocketbeagle and FPGA Board to get them to talk to each other sufficiently, as well as creating the python script to program a competent pong opponent.
The first step is to make the wirings connecting the PMOD JA section on the FPGA Board to the GPIOs on the Pocketbeagle. The wiring should look like this: JA1 --> P1[02], JA2 --> P1[04], JA3 --> P1[36], JA5/JA10 (FPGA GND) --> P1[16], JA7 --> P2[19], and JA8 --> P2[03].
picture of wiring and Pocketbeagle pinout (for reference)
FINAL DIRECTIONS
After the wiring is done, the most hardware intensive part of the project is finished. From here, all you need to do is make the most basic connections. Connect the FPGA board to your laptop using a microUSB, and follow the instructions on my Github to upload the proper bitstream to the board. Connect a USB keyboard to the USB port on the FPGA board, and use a VGA Cable to connect the FPGA Board to a monitor (with a VGA port). Finally, connect your BeagleBoard to another laptop (or the same one, but I have a Mac) and make sure your Cloud9 IDE is working. If you follow the directions for the python files in the Github, voila! You should have Pong with an AI opponent. Use the up and down arrow keys to control your player.
MISCELLANEOUS IMAGES














Comments