Six degrees of freedom (6DoF) controllers are used for manipulating an object in a CAD or 3d modeling program and are often called spacemice. You can twist it, push it, and even bop it. Most work with optical encoders, shining an LED through a slit to some form of photodetector on the other side. [Matthew Schubert] wanted to make his own spacemouse, but had some new ideas of how to go about it. His two-part project, dubbed haptic, focuses on measuring the forces, not the displacement.
He decided to try thick-film resistors as strain gauges and revisit load cells and proper strain gauges later. The actual structure quickly converged on the Stewart Platform, formed from three custom PCBs. A base to sit on, a knob for the top, and a middle board designed to take the strain with SMD resistors. A Teensy 3.2 talks to the ADS131M06 ADC and streams 4k samples per second to the host computer via serial. For prototyping, the calculations were done on the PC.
The first attempt showed a massive amount of noise in the reading as there were only a few filters already in place. Experimentation and referencing the spec sheets of the ADC showed that all the channels except channel 1 were near the noise levels specified by the ADC. A fourth-order Butterworth low-pass filter at 10hz offered significantly better signal-to-noise while remaining responsive. Using a known 390g mass, he placed it on the top disk, allowing him to measure the sensitivity of the gauges, which worked out to 7.8uV/newton. Ideally, [Matt] wants to measure forces down to 40-50mN, which is about 350nV, which is hard to detect even with the filtering. For the current version, he’ll just push a little harder but for the next version he’s switching to proper strain gauges for added sensitivity.
There are a few other issues such as measurement drift due to temperature differences and improving the ergonomics of a flat disk. The code and design files are all up on GitHub under CERN Open Hardware and GNU GPL3 licenses.
But it’s a wonderful journey with thought-out experimentation and investigation. We’re looking forward to the next revision. If you can’t wait, there’s a potentiometer-based spacemouse project that might tide you over.
Video after the link.
Thanks to [madpilot] for the tip!