Skip to content

ribesstefano/pongbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Playing Pong Against AI Bot

Overview

This project includes the game of Pong running on a Digilent PYNQ-Z1 FPGA board. The player is challenged to play against a bot trained with Deep-Q Reinforcement Learning (DQRL).

Software/AI

The bot AI is trained in Google Colab following the notebook in ai/ folder.

Hardware

The hardware part was implemented in Vivado High Level Synthesis (HLS) C++. It exploits Xilinx OpenCV libraries for resizing and stream the video frames generated by the game.

Pong Game Cosimulation

OpenCV Cosimulation

HDMI Modules

For instantiating the HDMI IPs, please follow this guide.

Vivado Project

Requirements

  • CMake
  • Xilinx Vivado 2018.3

CMake Simulation

Windows

Simulation is working assuming the DLL are copied in bin/ along side the executable.

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
mkdir build
cmake .. -G Ninja
cmake --build . --config Release

Linux

mkdir build
cd build
cmake ..
make all

Bugs

List of possible bugs:

  • Having not squared images in games generates distorted images.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages