Virtual Foosball Table
Michael F. Varga
This project is focusing on taking a traditional game and developing a virtual reality analog, so to allow people at different locations to play over the internet. The physical controller contains sensors which determine the position of the handles (an encoder for rotations and a linear potentiometer for translations). The game itself is played on a desktop PC which is connected to the interface. Physical toggle position data is uploaded to the game to control the virtual toggles. These avatars are used to bump the ball in the direction of the opponent’s goal.
The project utilized two software platforms, a micro-controller and a personal computer. The software on the host computer was written using the Unity 3D SDK. It provides an easy to use platform for rendering graphics, and performing real-time physics simulations needed to determine ball trajectory. Unity 3D also includes the .NET API which has interfaces to connect to a serial port. This port is used by the host to communicate with the micro-controller embedded in the physical interface.
The host was interfaced with the controller to receive information about the rotation and linear orientation of the four toggles assigned to each player. The micro-controller data is serialized as an array of 8 float values transmitted as binary data directly to the serial port. The micro-controller records values from the encoders and linear potentiometers, normalizes the output and forwards it onto the host computer. The Unity engine uses these values to render the respective graphical representation of the toggles.
An additional software layer serves the high-level game functions, keeping score, play history (in case tournaments are desired) as well as auditory and text congratulations every time a goal is scored.
The prototype is being evaluated for usability.
Game Board Physical Prototype
Screen View of Board