This is the first prototype of my 3d mouse. It was created to test out the precision of the sensors and lacks a grip and buttons.
To see it in action:
in stereoscopic 3d:
I am using a Phidget I/O board and 3 of their potentiometers.
The demo program was created in python using the phidget library, pygame, and pyopengl.
To hold it on to the table I am using Rotoscan's Clamp with some Sugru for grip:
I think for now I will explore the software side of things, I'd like to integrate alternative input support into Blender 3D, and maybe try to use Kinect to see what the quality of 3d tracking is. The reason I created this now is that I have actually wanted to create this several years ago (before Kinect, before Arduino), and had the Phidget i/o board and potentiometers sitting in storage for a long time and the difficulty for me was in creating the frame, and now that I have a 3D printer it is much easier to create things like this.
Bill of Materials:
1 USB Phidget i/o board, one that can connect 3 or more sensors.
3 potentiometers that work with the i/o board.
And of course you need a 3d printer to print the parts.
And a PC to run the software.
7zip to decompress the bird.7z file (which has arm.py the software in the video):
To run the arm.py:
you need python (I built with 2.x, not 3.x):
You need the phidget drivers and python libraries:
You need pyopengl:
The potentiometers in this design act as the connecting joints, so you will need 3 of them to put this together.
The bird.7z archive has everything you need. The STL files, the original OpenSCAD files and the demo python script.
The files are designed to fit snug for my potentiometers with my Red PLA plastic. I had added holes for screws but didn't end up needing them because it was snug.
You will likely need to update the OpenSCAD files to fit your potentiometers. If I do an update, I would probably make it easier to do this, but for now it is going to require a bit of work and testing to see what works for your pots.
Once you have it hooked up you will need to calibrate the demo by recording the values for the angles at 0 and 90 degrees and modifying the demo script. In the demo sensor 0 is the base, sensor 1 is the neck and sensor 2 is the arm. 0 degrees presents the base is forward and the other joints are all pointing upward.