Create Your FPGA Based Gaming Console Using Zybo Z7 and Pmod BT2
In order to play the game, the players need an Android smartphone or tablet. The game console will be connected to a TV and the players will use their phone as their controllers, giving them a versatile mode to play the game because of the sensors and features a smartphone offers.
On the Sweep n Play platform, have a lot to choose from when it comes to games. From the most basic to the most complex ones, having the possibility to interact with more than 2 players, allowing up to 8 players at a time.
Digilent Zybo Z7: Zynq-7000 is used for the game processing side. The Zybo Z7 is a feature-rich, ready-to-use embedded software and digital circuit development board built around the Xilinx Zynq-7000 family. The Pmod BT2 is used to create wireless connectivity between the console and devices. The Pmod BT2 is a powerful peripheral module employing the Roving Networks® RN-42 to create a fully integrated Bluetooth interface.
Design: Mobile application
The mobile application is created in Android Studio. When used in projects, the Android Studio environment gives access to examples, documentation, but especially to the system programming API and an emulator to test applications.
Bluetooth communication is also created using Android. Bluetooth Sockets are used by the server and the client to transmit data streams. The BluetoothServerSocket and BluetoothSocket classes communicate with each other and establish the secured connection between devices.
Design: Peripheral communication
The communication between devices is only wireless. In order to transmit players information and commands to the SWEEP ‘n’ PLAY console, Bluetooth and NFC technologies are used because of the: Performance, Scalability and Reliability.
The Pmod BT2 communicates with the SoC FPGA thanks to the UART protocol. Two-player game commands can be handled simultaneously with two IP and therefore two Pmod BT2. Once the Bluetooth is established, the Pmod transmits all the user commands and the software program loop captures these commands.
Design: Game Engine
Game Engine has input user commands and outputs the position of the elements of the game. The main role of the graphics engine is to make a comparison between the signals from the game and those of the Display module, before sending a signal output. If the signal values are true then the graphics engine will produce an output signal corresponding to the colour of the pixel to be changed.