As said before, the OpenVibe option is more flexible. So we prefer using it in a first time.
We will not explain how OpenVibe works and all its features, all this information are available on the OpenVibe’ website.
We will just explain how we can interface the Emotiv Epoc, getting back the signals and sending them into an other application using a VRPN server.
1) Interfacing the Emotiv Epoc
a) Open “OpenVibe Designer”;
b) Create a new scenario;
c) Drag and drop the block “Acquisition client”;
d) Drag and drop the block “Analog VRPN server” (this bloc will only used for sending the signals, it’s not necessary for interfacing the Emotiv Epoc);
f) Open “OpenVibe acquisition server”;
g) Select Emotiv Epoc in the “Driver” list;
h) Click on the button “Driver Properties”;
i) Select the correct path for the Emotiv SDK in the “Path to Emotiv Research SDK”;
j) Click on the button “Se conneter”;
k) Click on the button “Lire”;
l) Start the OpenVibe Scenario (in the OpenVibe Designer);
If you want, you can visualise the raw signals by adding the block “signal display” in the scenario.
2) Sending the signals
This step has being realized using Microsoft Visual Studio 2010 (it has also being tested with Visual Studio 2008).
a) Download the VRPN’ library (c++) and unzip it;
b) Open “make_VRPN_libs_build.vcproj” (in the main directory) and compile it (to get the “.lib” files);
c) Create a new empty project in Visual Studio;
d) Add the VRPN path (main directory) to the include path;
e) Add “…/vrpn/quat/pc_win32/release/quat.lib” & “…/vrpn/pc_win32/release/vrpn.lib” into the additionnal dependencies;
f) Use the c++ code available here;
All the code is explained on this site. The signals value is obtained in the “vrpn_analog_callback” function each time “OpenVibe” sends it (we don’t need the “button callback” for this example).
Make sure that the server name used for the callback function is the same used in the bloc “Analog VRPN server” (double click on it to verify).
g) Run it !
This 2 steps are always valid regardless of the intermediate processing applied on the signals.