Ed. Note: Blog post contributed by [Nick Carter], Maker, retired electrical engineer, who is active in the Robotics Meetup, DIYBio Meetup, Artificial Intelligence Meetup, and pitches in with STEM programs whenever needed.
The mind-controlled shark in action – view a video of it ‘swimming’ by clicking here.
While participating in the Nova Labs DIYBio meetings, I became interested in brainwave sensors and how brain activity can be applied. After some research the cheapest way to get into this seemed to be to buy a MindFlex game online. I got the MindFlex Dual because it has 2 headset/pickups. The EEG part is developed by Neurosky, who also sell their EEG amplifier/processing board for researchers. Initially I was just interested in looking at the game and the brainwaves and implemented a Bluetooth headset interface and could use an online program for Processing on the PC to display the filtered energy levels while playing the game.
After more research I came across a video of Open BCI developers controlling an air swimming shark http://spectrum.ieee.org/geek-life/hands-on/openbci-control-an-air-shark-with-your-mind – I decided to try that myself using the MindFlex game sensor instead. One major difference is that they used 5 players to control up/down/right/left and forward controls. I could only muster one or 2 inputs for control using the MindFlex.
After I got the game I found it was a great hit with both the DIYBio group and also the Saturday morning Maker Fun Project club (where I was volunteering) who asked me to make it control the LEGO Mindstorms EV3 robots.
I used that project as the proof of concept for the Arduino/remote control hacking before actually getting the shark. I implemented the hack into the remote controller and made a chatty Arduino game that let players interact with the EV3 from Putty on the PC using W, A, S, D keys. I have not yet integrated this with the MindFlex but the same ideas apply.
Then I got a shark and hacked the controller; I used a small relay board I developed after taking the Nova Labs Eagle CAD course to control the remote’s switches, electrically isolating the Arduino and the Remote control.
Rather than taking the MindFlex headset signals and interfacing them with cable or Bluetooth directly to an Arduino to do my own signal processing, I decided to use the MindFlex game base processing and use the Brain signal intensity signals driving the colored LEDs on the game. I found these signals were Pulse Width modulated to vary the LED intensity so I had to smooth them to make an analog level for the Arduino to monitor and set thresholds in my program to decide if the LED was on or off.
Although I wired out the 2 sets of LEDs for both player headsets, I only implemented the drive, leaving the climb/dive manual control for later. There are Red, Orange and Green LEDs lit for 3 levels of detected Brainwave intensity. To get the ability to turn as well as go forwards I used the Green to go forwards and the Orange to turn, alternating left and right when returning to Orange after Green.
I tested this with the shark tail wagging and interface electronics off the shark leaving the shark assembly and inflation for later. Inflation requires a fair amount of helium, I was quoted around $15 so I did not want to do this until really ready, plus an anchored tail was easier to handle.
Finally I inflated and assembled the shark, using helium from a “Party Balloon Kit”, and brought it to Nova Labs’ July 10 DIYBio meeting.
It is not as controllable as the Open BCI version but still fun to drive (although as you will see in the video, some manual intervention is needed) and I had a lot of fun implementing it.
For more details, there’s a slide deck on the Nova Labs Meetup “file” area, or by clicking here.
We are open! See our COVID-19 Phase III reopening guidelines.
|