how to make something that makes almost anything
Sam Calisch
CBA

This week and last, we were to work on end-effectors.

Finished tube cutter mechanics

I finished up the mechanics for the first version of my tube cutter. I combined the roller clamp, o-ring rollers, and a new z axis carriage from bent aluminum. I used Pololu's stepper drivers and an AStar micro for control. I wrote some simple ramping routines for the steppers, and servo signal driving for the brushless motor. The assembly and first version of control board are shown below. I made some changes to the board after milling (tied enable pins together and reduce microstepping capabilities to free up serial pins...whoops).

I pressed a dremel EZ-mount shaft into a brushless motor with the matching 3.17mm (1/8") shaft diameter. Then I could just swap abrasive wheels onto this shaft. Since I was only supporting the z carriage by three points, the innacuracy of the bend on the finger brake wasn't a big deal.

I wrote an abstract serial interface class, and in the microcode script I derive the interface for this machine by defining two functions: one for what an outgoing packet looks like, and one for what to do to an incoming packet. This makes it really easy to define new interfaces based on interactions with a client application. In this case, I'll whip up a quick javascript interface in the next few days. I really liked the level of generality of this serial interface class, and I plan to use it again for other machines.

You can see in the video I need to realign my belt!

TinyG peripheral interface

For a research push this past week, I spent time working with Matt Carney, Ben Jenett, Amanda Ghassaei, and Will Langford on an assembler machine. With Will and Amanda, I worked on a peripheral interface with the popular TinyG machine control board. This board is designed around the premise that many machines consist of stepper motors that need motion control (ramping, jerk minimization, etc.). There are pins on the board for controlling a spindle, but not much else in terms of peripherals. We decided to try using the Spindle ON, snd spindle DIR pins a rudimentary clock and data pins in order to talk with other microcontrollers. In this case, our microcontrollers were AStar Micros running control loops on DC gear motors. To let the microcontrollers report back when they finished their tasks, we used the TinyG's limit switch pins. With GCodes, we can tell the TinyG to wait until it recieves a signal on one of these pins before processing further tasks.

On the whole, this worked reasonably well, and allowed us to use the niceties of the TinyG without limiting ourselves to just stepper motors. We did ruin the Spindle pins on one TinyG board for an as-of-yet undetermined reason. I think in the future, though, I may just use stepper drivers and a more standard message passing interface between microcontrollers, because I'm not sure TinyG's motion control was worth the overhead of this hack.

A) Matt with assembler, tinyG, and DC nodes, B) Node board for tinyG peripheral interface.

DC Motor Position, Velocity, and Current control.

The Astar microcontroller nodes descibed above were driving micro metal gear motors, so we needed control loops for these. We set up position, velocity, and current control to drive a rack and pinion drive that we EDM'ed into a linear rail. To facilitate parallel kinematics, we included synchonization features to run between multiple motors.

MAS.865 2015