activating Arduino servo via OpenBCI EMG
Hi!
I am currently trying to make a servo motor move when it gets input from EMG signals.
And I want to connect my 32 bit Open BCI board to an Arduino uno without having to have a computer linked to the Open BCI.
Is this possible? How should I do to make this work? which pins are used to output the signal (I will only use two of the sensors) and is it possible to connect them straight into the Arduino? Or does it need anything that amplifies the signal before it gets to the Arduino?
// Djoeff
Comments
Depending on what type of microcontroller you are using, some of these support "usb host mode", which you could plug our dongle into.
http://openbci.com/forum/index.php?p=/discussion/510/openbci-with-raspberry-pi-or-similar-uc-linux
William
> In that case do the electrodes connected to the BCI board have a certain GPIO pin?
Umm, it's possible you could reprogram your 32 bit board to do something like that, but my impression is that that approach would be "the hard way".
What about this setup: use the OpenBCI as normal with it connected to a laptop via the dongle. The Processing or Python code on that laptop would determine when your EMG signals meet the criteria you are looking for. And perhaps also compute the "magnitude" of the contraction based on how big the EMG signal is.
Then you connect your Arduino through another usb port (or serial port) to the laptop. The Processing / Python code sends commands to the Arduino to activate the arm as desired. This could be as simple as a one line command: with B or T as the indicator for Bicep or Tricep, followed by an integer number from 1 to 1000 indicating the magnitude of that command. The Arduino sketch then handles the servo activation. Separating the functions like this also guarantees you are not sending noise back to the OpenBCI board, which is sensitive to microvolt level signals.
William