Some time ago, a friend of mine asked me to make her a pair of mind-controlled cat ears, and I said, "Oh sure! I can do that."
In my defense, I'd had a bit to drink that night, and didn't think she was serious.
On sober reflection, I became curious about whether I could do it. All the pieces seemed to be present:
So instead of completely and utterly insane, the idea turned out to be merely odd. But doable.
Anyway, if you've ever woken up and said to yourself, "I'd like to strap a pair of robotic cat ears to my head, and interface them with my brainwaves," your wish has now come true.
The first prototype is complete. It's imperfect, a bit fiddly, and bulky, but it held up long enough for us to put it on and walk around downtown Boston with it.
Here's a video of the first prototype in action. It showcases the ears drooping, standing upright, and wiggling at different levels of mental activity:
Who should make this?
Let's be honest, this is a lot of work to do in order to make some kitty ears. The purpose of this thing was to learn how to do it and have fun. And I'm releasing it here because I'm curious what else people could make based on it.
Make Something Different
I'm very interested to see what can be made with this toolkit beyond cat ears.
The servo mounts can be used to attach motors to the MindWave headset, which was a bit of a tricky mechanical problem. Now that that's solved, what else could you do? Some suggestions for things you could make to mount on your head:
It's hard to make derivatives of .STL files, so I'll be uploading the Solidworks files for people to tinker with, as soon as I have a chance to clean them up a bit.
Many people helped me bring this project to completion. Some tried (vainly) to maintain my sanity. Others helped by listening to me rant like a madman (and didn't back away quickly enough). Some others contributed directly, and I'd like to thank them here.
Miriam Byroade designed and sewed the fabric for the ears and the holster holding the electronics.
Jeff Cutler contributed significantly to the arduino code, and is single-handedly responsible for the MoveToPosition(); function.
Amber Ying dared me to make the ears, modeled them, and has patiently tested three versions of them, all the while waiting for a working set.
Thanks again to all of you, and to the others I haven't mentioned. I promise to bother you more as I work on the next prototype.
In the near future I promise to put together a full set of instructions for printing, assembling, programming, tuning, and testing the ears. For now however, here's a very rough overview:
Print all the .stl parts
Mount the servos and ears on the headset
Connect the ears to an arduino and tune the movement and behavior
Connect the MindWave headset to the arduino
- Mount and route the wires and components, and make it wearable
Printing the servo horns shouldn't be difficult. I made them with a stock MakerBot Cupcake with a MK6+ Plastruder, using 3mm filament. (The ears, however, can be tricky. I printed them with no extra shells and with support material, on a really really big chunky raft. The ear shells themselves are almost certainly getting a redesign as soon as possible.)
I'm still taking assembly pictures, which should help a bit.
I've created a github repository for the arduino source code, and will maintain the code there:
Roughly speaking, you'll want to hook the servos up to their own 4-AA battery pack, bridge the ground to the arduino, and plug the control lines into pins 3,4,5, and 6.
Then you get to tune the "minimum" and "maximum" values for the servos, which will vary depending on exactly how you position them.
Once those are set, you get to make the arduino talk to your MindWave headset, which is documented on the NeuroSky website. I have some issues with their documentation, and will supplement it later.
But once that's done, you should be able to control the ears by putting the headset on. There will be a big mess of electronics next to you on your bench, though.
The final step is to make the whole thing portable. I'm still refining this part of it: the first prototype uses a board with "european-style" screw terminals and a ribbon cable running to a protoboard holding an arduino nano, the MindWave wireless adapter, and some batteries.
That's All, Folks
These instructions are inadequate and incomplete, but watch this space for updates. I'm happy to answer questions or concerns in the comments.