This novel 3D printer kinematic system uses a mouse sensor for closed-loop control | Arduino Blog

Robert Murray-Smith wants to experiment with a novel 3D printer kinematic system that drives a round bed through a friction interface — essentially a polar 3D printer, but without the backlash associated with gears.However, friction drives have a tendency to slip and so he will need closed-loop control of the system and that will require a sensor to monitor position.In a recent video, he demonstrated how it is easy to implement such a sensor using an Arduino and an inexpensive PS/2 optical mouse.

With any motion system, the designer can choose between open-loop and closed-loop control.With open-loop control, you simply tell the system how to move and trust that it will do so as expected.With closed-loop control, a sensor provides feedback and that gives the system the ability to verify that it moved as expected — and to correct itself if it didn’t.  There are many, many sensor options that are suitable for closed-loop feedback, but Murray-Smith’s solution is a great low-cost choice.

It makes use of an optical mouse sensor, which works by comparing rudimentary photos at a very fast rate (hundreds or thousands of times per second).The translation of the pixels between images tells the mouse how far it has moved.To harness that capability, Murray-Smith just needed to read the data coming from the mouse.

He chose a PS/2 mouse because it is easier to interface with than a USB mouse.And he selected an Arduino UNO Rev3 board to gather that data and pass it along to the computer.Doing so only requires two pins (in addition to the two for power): one for data and one for the clock.

Bob Grant’s Arduino-PS2-Mouse-Handler library made it easy to parse the incoming data and display it over serial as simple X/Y coordinate changes.Now Murray-Smith can use the mouse’s sensor for closed-loop control as he develops his 3D printer kinematics.

Read More
Related Posts