Moving cursor with brainwaves - need some help.
I've been trying, with little success, to figure out how to get my OpenBCI kit (paired with BrainBay) to get things set up so that I can move my cursor with my brainwaves.
At this point, I feel like I'm trying to re-invent the wheel. I've seen blog posts with more experienced OpenBCI users moving robots with ease. But I'm having a hard time figuring out where even to start.
I have a few specific questions, but first of all, here's what I've been able to do so far.
* Hooked up EEG headset just fine through the regular tutorials.
* Got the set running with the OpenBCI GUI fine.
* Then got the regular oscilloscope in BrainBay working.
* And I can see that there's a way to "add element" for the mouse/cursor control in BrainBay, and I'm assuming that I would link the "Input Source" and "Channel" to the output of Cursor Control.
However, I run into the big question here:
What areas of the brain are most effect for having conscious control over brainwaves that are meant to affect the cursor. And where do I connect the electrodes on the scalp so that I can do this?
I do not want to do something like blink my eye. For the purposes of what I'm trying to do, it needs to be something more like "Think about lifting my arm up and the cursor goes up." Same for left, right, down, etc.
Are there any resources available that can help a beginner?
Thanks in advance for all help! Hopefully I've explained myself clearly enough. But if not, let me know where I'm being unclear and I'll try to clarify.
Fun stuff!
At this point, I feel like I'm trying to re-invent the wheel. I've seen blog posts with more experienced OpenBCI users moving robots with ease. But I'm having a hard time figuring out where even to start.
I have a few specific questions, but first of all, here's what I've been able to do so far.
* Hooked up EEG headset just fine through the regular tutorials.
* Got the set running with the OpenBCI GUI fine.
* Then got the regular oscilloscope in BrainBay working.
* And I can see that there's a way to "add element" for the mouse/cursor control in BrainBay, and I'm assuming that I would link the "Input Source" and "Channel" to the output of Cursor Control.
However, I run into the big question here:
What areas of the brain are most effect for having conscious control over brainwaves that are meant to affect the cursor. And where do I connect the electrodes on the scalp so that I can do this?
I do not want to do something like blink my eye. For the purposes of what I'm trying to do, it needs to be something more like "Think about lifting my arm up and the cursor goes up." Same for left, right, down, etc.
Are there any resources available that can help a beginner?
Thanks in advance for all help! Hopefully I've explained myself clearly enough. But if not, let me know where I'm being unclear and I'll try to clarify.
Fun stuff!
Comments
while i've only read into EEG for a month or two myself, let me try to give a start.
Moving it with eyeblink:
That would be detection of the Eyemovement via the musclesignal beeing detected in your EEG. Rather easy to spot, but considered an artifact normaly and not an EEG signal. So while i can see the reason you dont want to use it, it might be something to go for if all else fails to boost moral.
Move the cursor by arm movement:
For Arm and Hand movement ppl usualy look at electrodes along the motor cortex (should google that one maybe). When movement happens you can normaly see a frequency drop/increase in specific frequencies at specific locations compared to non-movement EEG. (event-related sync/desyn (ERS/ERD) should be googled for this one, maybe IpsiHand, as it uses that one). P300 and bereitschaftspotential is something i came along aswell. Maybe google them aswell to see if they can be helpfull. One problem later will become classifying between not just 2 states (rest-move -> cursor left-cursor stop) but a few more for whatever direction you want. Maybe including the 2nd arm and a leg or two is easier then doing it all with one arm.
Move cursor by looking at something (EEG, not blinking artifacts)
For reasons i dont understand, our brain seems to like the idea of being in sync with what it sees. So if you show someone an image flashing at 50Hz, you can detect those 50Hz in the EEG, same with all other frequencies. So while you're sitting at the PC already (controlling a curser, huh?) you could show 4 pictures for up, down,right,left blinking at different frequencies. Depending at wich one you look at, you can read the freq. in the EEG. (It feels a bit cheated, i know. But google SSVEP).
For further read...well. Start with wikipedia for "EEG", click on whatever word is unclear and keep reading those articles to. Then take google scholar and search for whatever words you think could be relevant to what you wnt to do (some mentioned above). Open the first 10-20 hits and start reading the abstracts. Maybe 1-2 papers fit what you need, then keep reading. If you can get hold on a script of some university teaching "EEG 101", read that aswell.
I havent used BrainBay or openBCI kit myself, instead starting with EEGLAB and BCILAB, so cant help there.
Good luck
And while it isnt rocket science, be prepared to take a while, while getting nowhere. It still isnt an easy topic
edit: since you wont see shit from raw eeg data: artifact removal, filtering, ICA, pattern recognistion, machine learning, etc...get ready to read into those aswell (or find software that does the stuff for you, though even then it's nice to understand what you're dealing with)
Bryan, there are a lot of posts here on the forum on SSVEP, just put that in the search box at lower right. You could do SSVEP with BrainBay, setting up Magnitude (MAG) elements for each of your SSVEP bands, an example of MAG usage is in the tutorial,
https://sites.google.com/site/biofeedbackpages/brainbay-openbci/brainbay2
The other forum posts on SSVEP discuss how the sources of flashing lights are setup. The cursor movement element in BrainBay was likely not meant to be controled directly from EEG, but from one of the other type of input elements, such as tactile switches, joysticks, etc. BrainBay is good for some simple to moderate designs, but for actual BCI detection of motor imagery you need something like OpenViBE,
http://blog.jfrey.info/2015/03/03/openbci-motor-imagery/
https://www.google.com/search?q=bci+motor+imagery
Another recent post on the Community section controls X Y axes with SSVEP and alpha detection,
http://harariprojects.com/2015/03/16/brainihack-2015-blue-gsd-with-brain-controlled-labyrinth-game/
Thank you guys. OpenBCI community rocks.
http://openbci.com/forum/index.php?p=/discussion/comment/1982/#Comment_1982