Part 1: Three Groove Kinematic Coupling
This is the kinematic coupling that I built and tested.
I drew solid models of the Top and Base of the coupling and exported the top surfaces to DXF files. I then headed to the HobbyShop to use their wood router, to mill the pockets I needed for my dowel pins and roller balls.
After sanding the outer edges, I was ready to pressfit my dowel pins in place. The relief features helped guide the pins and place and I ensured that the pins were pressing up against the walls.
For the purpose of the experiment, I taped a laser pointer the Top of my coupling and looked at deviations in the position of the pointer, at a distance of 6 feet away. The results from the design spreadsheet (refer Week 2 Brainware) predict a 0.045 micron error along the Z axis. The width of the laser beam itself is about 2mm. Given the lack of proper measurement instrumentation, I didn't expect to see any deviations. Nonetheless, I setup the experiment as shown in the video. I taped a sheet of paper on a wall 6ft away and marked the position of the laser pointer on it, each time I engaged the coupling.
Given the quality of the experimental setup, I was surprised to find so much deviation in the location of the points, on the sheet of paper. The books only partially constrain the Base. This could cause relative movement of the base between measurements. Further, the laser pointer is not rigidly mounted to the Top which can cause small angular displacements which amplify over lengths. I intend to repeat this experiment after clamping the Base to the table securely and rigidly securing the laser pointer to the Top.
After setting up the toolpaths, I was ready to machine. I used a 3/16 flat end mill for the pocket and contour operations.
Part 2: Running the Sepper Motor
To control my stepper motor, I purchased a CNC Shield for the Arduino Uno. This shield is made by Protoneer. I wanted to try out the newer DRV8825 stepper driver as it offers 1/32 microstepping which the A4988 does not. After following the schematics for the connections, I flashed my Arduino with the GRBL library. Before powering the stepper, it is important to limit the current draw of the motor. This is done to ensure that the motor does not draw more current than what the drivers can handle. For the DRV8825 driver, the recommended max current is 1.5A per phase without convective cooling options. This value is set by adjusting the on-board potentiometer. Measuring voltage across the potentiometer and ground, measures reference voltage. According to the specifications sheet,
Current Limit/phase = Vref * 2
Following this expression, I adjusted the potentiometer until the Vref dropped below 750mV.
After settign the current limit, I was ready to power my stepper. I stripped the ends of a scavenged 12V 2A DC supply and connected they to the terminals on the shield.
Finally, I was able to control the stepper using the 'UniversalGCodeSender' application.