graphics ⋅ em ⋅ random ⋅ mt ⋅ garden
Machine Tools
mill.jpg |
Current
when building mechanical devices there is really no substitute for being able to machine custom parts. sometimes you can find what you want at a hardware store, or more likely mcmaster carr's, but sometimes what you need is completely unique -- and that is where machine tools get really useful. with a lathe and a vertical mill you can make nearly any mechanical part you need. obviously, china-made grizzly mini machines are nowhere near as nice as bridgeport mills or south bend lathes, but if you live in nyc and your shop is also your bedroom, they're better than nothing.
dro_lcd.jpg |
lathe.jpg |
In Use
drilling.jpg |
turning.jpg |
finished.jpg |
History
machines.jpg |
after using the mill for a bit it quickly became apparent that it is pretty hard to cut accurately because not only do you have to do all the math mod 0.0625 but you have to remember which direction the leadscrew is pushing since there is so much backlash. a scale on each axis solves both these problems.
dro_x.jpg |
dro_y.jpg |
dro_z.jpg |
instead of bothering to find the matching connectors i just soldered wires to the contacts. i found that if the scale isn't grounded it malfunctions, so the shield is connected to the brass strap which is connected to the metal backplate of the readout.
update: only the 8" scale had the scale electrically isolated. the 12" horizontal has the scale connected to v+. (?) as such, plugging in both caused a power supply short and neither worked. fixed by connecting each of the scales to v+.
converter.jpg |
decoding three separately clocked synchronous streams is tricky. bit time is 1/80khz = 200 instructions on a 16mhz avr. in the worst case, though, when the scale outputs happen to all be in phase, you only get 1/3 that, or about 66 instructions. minus a few for saving/restoring registers. also, the interrupt handler actually runs twice per input bit because of the positive clock edge. that case is trivial but still costs time. loading / shifting by 1 / storing an int32 costs like 20 instructions. my solution was to have the interrupt handlers write the output on a 64 byte buffer with just one bit per byte. that means it just has to load and store a 1-byte bit count and write 1 byte to the array. 3ms after the last clock pulse another interrupt with lower priority converts the byte array to two int32's.
dro_disp.png |
pulley.jpg |
even without having added a "real" display to it the dro has been very helpful in making the parts for the next step: attaching pittman servo motors to each axis.
servo_y.jpg |
servo_x.jpg |
todo:
- make x and y axis servo drives swarf-proof
- procure ballscrew for z axis
- design and build servo driver electronics
i haven't updated this page in a while. the x & y axis servo mounts are still there but i never got around to adding the z-axis servo. the dro has been quite useful, however - despite never finishing the cnc conversion i have used the mill to manufacture several custom robot parts.
update, 2009-02-13.
replaced digital readout electronics with new improved version. it uses one avr to decode each channel and a fourth to poll them via i2c and update an lcd display. it would probably be possible to do it all with one avr but when you're just building one of something it's easier to just throw $10 of silicon at the problem.
dro2.jpg |
endmill.jpg |
© 2000-now
chris@jormungand.net