Main Content

Would you like to control things with your mind? This instructable describes how to drive a remote-control truck using brainwaves. The headset senses my brainwaves and transmits them to a small computer. When I increase my attention level or blink my eyes, the computer converts the signals and passes them to the truck’s remote control, which I have connected to the computer. When I concentrate, the wheels spin. 0ne strong eye-blink does a left turn. A strong double-blink does a right turn.

The headset is a NeuroSky MindWave Mobile 2, the computer is an Arduino Uno microcontroller, and the Bluetooth module is an HC-05.

Practical Applications

Some developers have applied these ideas to help people who are paralyzed; for example, driving a wheelchair, home automation, or selecting letters and words on a screen in order to communicate on the screen or by voice. Their projects may be found on YouTube.

Main Steps in the Project

There are 5 main steps in this project:

Wire the HC-05 to the Arduino, configure it, and pair it with the MindWave.
Connect the servo to the remote control.
Wire the Arduino.
The Arduino sketch (the code).
Upload the Arduino sketch and use it.

Ways of Controlling a Robot Vehicle

Before starting my project, I searched the Internet for NeuroSky projects in order to find out which brainwave signals the developers chose to use. Many projects used only the Attention and Meditation levels, and a few also used eye-blinking. For my project I decided to use the Attention level to control driving forward and stopping, and single blinks to go left or double blinks to go right.

There was one project with a very different method: When the user blinks, the software begins cycling thru forward, reverse, left, right for 2 seconds each. If the user does a double blink, the vehicle goes in whatever direction the cycle was in, at that instant. This method provides a lot of flexibility, but could be slow. Foe example, if the user turned right, they would not be able to turn left for about 6 seconds,

Methods of Connecting the NeuroSky MindWave Mobile 2 to an Arduino

Some developers connected their NeuroSky MindWave Mobile directly to an Arduino board via Bluetooth, which is what I decided to do. This method is easier than the next one (described below), but the eye-blinks take a little longer to be detected (slightly more than 1 second). This is okay for my project.

Other developers went thru a computer or smartphone for real-time pre-processing of the signals before sending data to an Arduino. This allows for more complex analysis or processing, and the eye-blinks can be detected faster (about half a second). NeuroSky has tutorials about this method for PC Windows, Apple Mac OSX, Android, and IOS at this website: I decided to not use this method because it would involve having to learn how to program the software on the computer or smartphone.

Maximizing the Attention Level

Ways to maximize the Attention level vary for different people. Here are some suggestions:

Concentrate on an object.
Carefully read the list of ingredients on a food container.
Memorize some nutrition facts on a food container.
Count backwards from 100 by sixes or sevens.
Do arithmetic operations in your head.
Listen to a rap song and try to understand the words.
Read something in a language you’re not fluent in.

Eye-blinks need to be strong in order to be detected. Normal eye-blinks are ignored.

The head should be held fairly still, to avoid false eye-blink detection. The method of detecting eye-blinks in this project involves checking the quality of the signal being received from the headset. A strong blink moves the skin on the forehead, which reduces the quality of the signal, and this is interpreted as a blink. If the head moves, the sensor of the headset could move slightly and thus reduce the quality of the signal, and this would be identified as a blink.

This method of detecting blinks does not use the brain’s nerve signals. My understanding is that NeuroSky’s computer/smartphone method does.

Parts for the electronics

NeuroSky MindWave Mobile 2 headset and 1 AAA battery
A computer (I used an Apple iMac)
Arduino Uno or another model and its USB cable
HC-05 Bluetooth module
Two servo motors (I used Solarbotics HXT900 Micro Servos)
Breadboard and breadboard wires
Green, yellow and red LEDs
3 x 330 ohm resistors
2 x 1K ohm resistors
2 x 2K ohm resistors
Power source, about 5 volts, such as 3 AA batteries in a holder
Parts for the servo connections to the remote control

Small plastic or cardboard box, or some other way to hold the servos in place
Glue or nuts and bolts to attach pieces of the box together
Some way to attach this to the remote control. (I used 2 screws.)
Tiny nuts and bolts to attach the servos. (I used some solid-core wire and also size 2-56 bolts, and had to slightly enlarge the holes in the servo for the bolts.)”

Link to article