Sub-mm Mechanical 3D Scanner With Encoders And String

[Scott Rumschlag] wanted a way to precisely map interior spaces for remodeling projects, but did not want to deal with the massive datasets created by optical 3D scanning, and found the precision of the cost-effective optical tools lacking. Instead, he built a 3D cable measuring device that can be used to map by using a manual probe attached to a cable.

The cable is wound on a retractable spool, and passes over a pulley and through a carbon fiber tube mounted on a two-axis gimbal. There are a few commercial machines that use this mechanical approach, but [Scott] decided to build one himself after seeing the prices. The angle of rotation of each axis of the gimbal and the length of extended cable is measured with encoders, and in theory the relative coordinates of the probe can be calculated with simple geometry. However, for the level of precision [Scott] wanted, the devil is in the details. To determine the position of a point within 0.5 mm at a distance of 3 m, an angular resolution of less than 0.001° is required on the encoders. Mechanical encoders could add unnecessary drag, and magnetic encoders are not perfectly linear, so optical encoders were used. Many other factors can also introduce errors, like stretch and droop in the cable, stickiness of the bearings, perpendicularity of the gimbals axis and even the spring force created by the encoder wires. Each of these errors had to accounted for in the calculations. At first, [Scott] was using an Arduino Mega for the geometry calculations, but moved it to his laptop after he discovered the floating point precision of the Mega was not good.

[Scott] spend around 500 hours building and tuning the device, but the end result is really impressive. There are surprisingly few optical machines that can achieve this level of precision and accuracy, and they can be affected by factors like the reflectivity of an object.

If you do want to get into real 3D scanning, definitely take the time to read [Donal Papp]’s excellent guide to the practical aspects of the various technologies. Most of us already have a 3D scanner in our pocket in the form of a smartphone, which can be used for photogrammetry.

Continue reading “Sub-mm Mechanical 3D Scanner With Encoders And String”

USB Etch-a-Sketch-Style Mouse Is More Analog Than You’d Think

[Mitxela] wanted to build a different kind of mouse, one that worked like an Etch-a-Sketch toy with one X knob and one Y knob. Armed with some rotary encoders and a microcontroller, that shouldn’t be hard. But when you use a pin-limited ATtiny85, you are going to need some tricks.

The encoders put out a two-bit Gray code and close a button when you depress them. Plus you need some pins for the V-USB stack to handle the USB interface. [Mitxela] decided to convert the encoders  to output analog voltages using a simple resistor DAC. That would only require two analog inputs, and another anlaog input could read both switches.

One problem: there still wasn’t quite enough I/O. Of course, with AVRs you can always repurpose the reset pin as an analog pin, but you lose the ability to program the device at low voltage. And naturally, there’s a workaround for this too, allowing you to keep the reset pin and still read its analog value. You just have to make sure that value doesn’t go below about 2.5V so the device stays out of reset. Once that was in place, the rest went easy, as you can see in the video below.

Continue reading “USB Etch-a-Sketch-Style Mouse Is More Analog Than You’d Think”