MindPong is a fantastic EEG multiplayer game requiring two Muse headbands and an arduino board. The goal is to move a ball by controlling a fan with your brain. The more you are focused, the more the fan rotates. We are interested in beta waves in order to establish how much you are focused. It relies entirely on the pyMuse library. It is mainly used as a mean to popularize EEG technologies and neurosciences to the public. Visit the MindPong wiki for a detailed description of MindPong related projects and ongoing developments (https://github.com/PolyCortex/MindPong/wiki).
To play a game of Mindpong, we'll need two players and an operator. The role of the players are to answers the randomly generated math questions and to relax when it is asked. The role of the operator is to start a game, to control the flow of the game and to ask the players to relax when he wants to.
The Mindpong interface displays three sections:
- A play tab where the game takes place.
- An analysis tab that features eeg signal graphics and spectrograms.
- A settings tab to setup the communication.
Figure 1: Play section of the mindpong app.
The goal of the game is to compare the EEG activity when a subject is doing calculation v.s. when the subject is relaxing. To do so, the application generates random math questions and feature a relaxing mode.
Figure 2 : rough idea of our hardware setup
The necessary setup is a ping pong ball in a transparent plastic tube with two fans at the edges of the tube. They are connected to an Arduino Uno which is linked to a computer which then receives the signal from two Muse headbands via bluetooth. We use Muse Direct to obtain beta waves from the headbands.
We use two independent circuits to make the game work. The first one allows the arduino to control the fans and the second one allows the microcontroller to raise a cute little flag for the winner.
The circuit makes it possible to use a PWM to control the fans' speed. To do so, a transistor (N-MOSFET) blocks and enables the 12V current to flow to the fans. We are using a flyback diode to provide a path to dissipate energy stored by the motor inductance.
We need two of this circuit to power the two fans.
The flags circuit is really simple. It is composed of three components for each of the two flags: a laser emitter, a laser receiver and a servomotor with the flag affixed to it. They are all linked to the arduino's GPIOs (digital pins) and powered by the 5V output of the arduino. The software reproduces the following behavior: when the laser emitter loses the light signal (the ball passes over it), the flag is raised.
You will need a few tools to get started with Muse headset and pyMuse:
-
MuseDirect (Windows)
Don't hesitate to go on Muse Developer website for additionnal information.
Simply use pip in order to install all of the project's dependencies.
pip install -r requirements.txt
Pip should install all requirements, including:
-
Connect your two Muse headsets with your computer by bluetooth
-
Start Muse Direct and set an OSC UDP output for player one and player two:
Figure 2 : output setup for player one
Figure 3 : output setup for player two
- Start ./mindpong.py in a terminal:
python ./mindpong.py
- Press play.