BCI
Welcome to this new page about my research in Brain Computer Interfaces (BCI). It is the ultimate combination of my passion for neurosurgery / neuroscience, and my passion for information technology. In my first experience with neural engineering, I found it to be an exciting field, and I am looking forward to learn more.
:: LynxMove Qt ::
LynxMove Qt is an open-source and cross-platform software framework for neuroprosthesis control, written in C++ and Qt. It currently supports the LynxMotion robot arms, and has been tested on the AL5D model. The software uses the QextSerialPort library to connect with the serial port (using the USB-to-Serial-Adapter).
The current version (0.1) has been successfully used on Windows 7, Mac OS 10.7 and Ubuntu 12.04 to control the robot arm. The arm can be moved using buttons, sliders, ASCII commands and…. BCI input. The latter is achieved by keyboard input (0-9), which corresponds to a particular type of movement:
0 = Rotate base to left
1 = Rotate base to right
2 = Move shoulder forward
3 = Move shoulder backward
4 = Elbow flexion
5 = Elbow extension
6 = Wrist flexion
7 = Wrist extension
8 = Open gripper
9 = Close gripper
The step size (i.e. amount of movement for each command) can be set between 1 and 300. Note that channels are still hardcoded, using channel 0 up to 4 to connect your robot servos to.
Source code
You can download the source code from the Google Code project page.
I used Qt Creator and the Qt SDK to compile with Visual C++ 2010 Express on Windows, and GCC on Linux and Mac OS X.
I intend to add the source code to a true repository, but have not made up my mind on SVN vs GIT. When I have, I will adapt the link above correspondingly.
Windows
Installation
Compile and run. No additional drivers needed. Select COM port and click the Connect button.
Screenshots
Linux
Installation
Ubuntu recognized the USB-to-Serial-Adapter automagically, but did not offer write access to it. Type the following commond, followed by your root password, to get write access:
sudo chmod 666 /dev/ttyUSBx
and replace “x” by the number of your device (in my case, it is ttyUSB0). You can find this by typing:
ls /dev/ttyU*
Then compile and run the application. Select the serial port you just used, and click the Connect button.
Screenshots
Mac OS X
Installation
Supposing you use the FTDI USB-to-serial adapter cable, you can download drivers for Mac OS X here. I tested driver version 2.2.17 on an Intel Mac running Mac OS 10.7.4 (aka Lion) and it worked perfectly.
Then compile and run the application. Select the appropriate serial port from the menu and click the Connect button.
Screenshots
Future developments on LynxMove Qt
This is on my current To Do list:
- integrate with BCI2000 and OpenViBE
- make hardware channels customizable for users
:: MATLAB class ::
Installation
Download the MATLAB class “LynxArm” from the Google Code project page and install into a directory which is in your “path”. You can use it in custom scripts you are developing. Its use should be fairly self-explanatory from the source code and built-in documentation. Some examples:
% Create an instance of the robot arm
arm = LynxArm(‘COM4’);% Move using BCI key input (0-9); see top of page
arm.moveUsingBCICommand(0);% Move using ASCII command
arm.moveUsingASCIICommand(‘#0 P300’);% Disconnect arm from serial port (making it available again)
arm.disconnectFromSerialPort;
Screenshots
Contact
See the homepage on how to contact me.
Hello,
i use the arduino uno r3 and try to implement a small qt gui with qslider to control one connected servo with this qslider. You know where i get an example with sketch and qt gui to control one servo?
No, I do not know details for this board. You can try using my source code and see how far you can come.
How can I download this app while living in theUSA?
Hi Pieter
I suffer Essential Tremor , can i visualize the csv file in a 3d software like Acad or other .
I’m a landscape architect and usually work with 3d pointcloud from fotogrametry taken with drones.
I would like to view a 3d model while in treatment and other situations
I apologize for May english
Thanks in advance
Matias
PS. I’m from Chile
Having read this I thought it was really informative. I appreciate you spending some time and energy to put this information together.
I once again find myself personally spending a lot of time both reading and posting comments.
But so what, it was still worth it!
I do not even understand how I finished up here, but I assumed this publish was great.
I do not recognise who you’re but certainly you are going to a well-known blogger when you aren’t
already. Cheers!