Evolution of The Mind-Controlled Robot

A project log for Mind Controlled Robot

Mind Controlled Robot - A device to make paralyzed people control their movements using brain waves.

adithya.shak.kumaradithya.shak.kumar 05/28/2016 at 19:120 Comments

I constructed the mind control robot using the Mindwave EEG headset, Arduino UNO and a motor controller (SN754410). I read the brain activity of the user using the EEG headset. I constructed the robot using the Arduino Uno and the motor controller. The motor controller was used for controlling the direction and the speed of the servo motors I used for the robot. The brain activity recorded by the Mindwave headset was transmitted to the Arduino Uno using an RF dongle.

I used the attention value transmitted by the Mindwave headset to control the robot. The Mindwave headset transmitted the attention value as a stream of bytes. The format of each packet was <Number of bytes sent> <Type> <Value> <checksum>, where the Number of bytes sent signifies the total number of bytes sent in the packet, Type denotes the type of value transmitted (attention, meditation, etc) by the headset, Value is the actual value and the checksum is used for validating if the packet is read in full. I programmed the Arduino to extract the attention value from the bytes transmitted. If the attention value read by the headset is above a particular threshold, I moved the robot forward. I increased the speed of the servo motors based on the attention value returned by the Mindwave headset. So if the more the user focuses, the more the speed of the motor would be. I did this by multiplying the maximum speed of the motor by the attention value (which was expressed as a percentage). So if the user is fully focusing, thus having an attention value of 1, the speed of the motor will be at its maximum. The same way, if the attention value is less than the threshold, I turned the robot left by making the right motor alone to move and make the left motor stop.

Since the robot was heavily relying on the attention value returned from the headset, I wanted to test the attention value returned by the headset for users of different ages. I took the attention value returned from the headset when the subject was focused and unfocused. I took readings for test subjects in the age of 7 to 49 and the results were plotted in a graph. The values found for the various age group is as follows:







35 TO 88

16 TO 35



42 TO 76

20 TO 40



40 TO 94

8 TO 40



38 TO 85

24 TO 38



40 TO 88

35 TO 40



44 TO 92

25 TO 44



40 TO 100

21 TO 40



38 TO 96

26 TO 38

I found that the attention value was more than 40 for most of the subjects when they are focused. I used this value as the attention threshold which was used for deciding whether the robot moves forward or turn.