The rapid advancement of the automated auto industry. This is a look into what the future holds. We were also really interested in showcasing the future of human-computer interfaces, mind controlled devices.
What it does
Mind control of a Tesla Model S.
How we built it
tl;dr - An EEG headset determines whether the user is thinking "Stop" or "Go," which is translated into an analog signal, then broadcast by an RC radio, and articulated by actuators on the pedals and a motor on the steering wheel.
Teslapathic is comprised of three primary systems: Machine learning with OpenBCI, a digital to analog interface through Arduino, and a hardware control system.
OpenBCI: We created a machine learning training program that compiles averages of the user's neural activity when thinking "Stop" and "Go." The user is also encouraged to assign the thought of a physical action with each command when creating their activity profile, as focusing the EEG nodes around the brain's motor cortex while imagining physical motion in tandem with the desired command had the highest rate of success. For example, Casey would think of tapping his right foot for "Go" and clenching his left hand for "Stop." A k-nearest neighbors algorithm was employed to reduce signal noise. After ascertaining the user's intent, corresponding variables are then generated and passed off to an Arduino for conversion to an analog signal.
Analog conversion: In order for our digital system to interact with our analog hardware, we leveraged an off the shelf RC radio - a Futaba T9CHP - and exploited its trainer feature to allow for communication between the OpenBCI and the driving hardware. By having an Arduino mimic the PPM timings sent by a slave radio, the T9CHP effectively becomes an analog pass-through and delivery method. The PPM signal is manipulated in accordance with the user's intent, which results in articulation of the driving hardware. The head-mounted gyro was spliced inline between the Arduino and the radio and results in additional signal manipulation.
Hardware control: Linear actuators were affixed to the pedals, and a windshield wiper motor fitted with a potentiometer was mounted to the steering wheel. "Go" (in the form of the corresponding analog signal) results in the brake actuator receding and the accelerator actuator engaging, "Stop" results in the opposite. Left and right movement from the gyro results in left and right movement from the wheel. Still reading? Congratulations! You made it through my convoluted explanation!
Safety: We implemented multiple safety measures: an emergency brake in the Arduino portion of the code in case of failure, the user needs to be holding a dead-man's switch in order for the signal to broadcast, we wedged a physical block behind the accelerator to prevent it from going too fast, the user can take manual control through the radio at any time, and if all else fails the actuators were pressure fit so the user could reach their leg into the driver footwell and kick them away from the pedals.
Challenges we ran into
Training our machine learning algorithms to clearly interpret Go and Stop signals. This took a lot of refinement but we've achieved a high degree of accuracy.
Accomplishments that we're proud of
We've achieved high accuracy in our machine learning algorithms. We've been able to take a very complex idea and break it down into parts that we can implement asynchronously. Most of all, we've learned so much during this 36 hour journey.
What we learned
Brain signal processing is hard! Doing it wirelessly is even harder but it's rewarding.
What's next for Teslapathic
We built Teslapathic to showcase the future of human-computer interfaces. We're very excited to take our knowledge and apply the same technology to help assist people in other tasks in their life. As the technology gets better, we can do more advanced brain activity processing and replace mundane tasks.