Step 8: Conclusions, Notes, Room for Improvement

That's about it. For TeleToyland, we used some PHP scripts to command the servos via an Internet to serial connection to the SSC-32 board, which the servos plugged right in to. If there is enough interest, we may do a separate Instructable on that setup.

Both axes have issues with not quite centering due to the potentiometers - causing the the digital servos to whine a lot at rest. For occasional use, it's probably fine. For TeleToyland, we used a separate servo powered switch to just turn them off when not in use. We may get a digital servo programmer to see if narrowing the dead band will help. Higher quality potentiometers may help, but we may also be reaching a practical resolution limit in this approach.

(June 2009) For the linear slides, we used drawer glides. These are working fine so far, but they do stick out when the XY table is in the home position. So, we are thinking about using 16mm Linear glides from www.vxb.com - that seems like the lowest cost ones around.

(June 2009) Note that for the Y axis (the one on top), the servo motor is working fine, but for the X axis, we have had some issues. So the current system is using a
Pololu 3A Motor Controller with Feedback and a 12VDC 250RPM DC Gearhead Motor. The board from Pololu works just like a servo control board, and we already have the external potentiometer. The motor is much more robust, and has been working well. One minor issue is that the PID algorithm sometimes overshoots a bit, but it's not too much, and the board allows you to set the PID constants - just need time for fiddling. :-) You can also use a servo board and adapt it for the same use - we'll look into that sometime too.

Other Uses
This is an interesting approach, and might make an excellent arm configuration for a mobile robot. The Leaf Project members are interested in arms, and this could be used for part of it. You could even add a counterweight on the belt opposite the end effector so that the arm would balance automatically - as the hand moves out, the counter-weight would move back. Adding a second linear system behind it would allow the weight of the object picked up to be balanced too.

The following sites provided some of the inspiration for this project:
Easy to Build Desk Top 3 Axis CNC Milling Machine Tom McWire
Improving Servo Positioning Accuracy David P. Anderson
ServoCity Servo Power Gearboxes

We didn't use this, but it looks interesting - a timing belt pulley for MXL belts (0.08" pitch) for Hitec servos

We found this after building ours - uses gears in a similar way, and the drawer glides are similar:
Autonomous Foosball Table.

You can drive this project live at TeleToyland
<p>Hallo! I'm really interested in you project but the hard part for all of Us I think is how to manage all the software part of the project.</p><p>The missing steps are:<br>1) Ok I can also drive some RC servos with an Arduino also but how to make them to do a cooperative work? How to say: If you hit a rock in the sand while you are moving in pure X direction, the rock will slow you but the servo will keep up and you'll draw a perfect straight line in the end. What if you where going on 45 degrees and you hit against an X direction oriented straight obstacle? The Y run will be strongly slowed down by the forntal impact but the X run will not be slowed down at all !!! In the end will you obtain a perfect 45 degrees line? I think... NOP!<br>Sooo what do you manage those kind of issues?<br>2) How to translate a vectorial image (or a stl file) into commands to be sent to my Servos?<br><br>In conclusion: This project is to be developed a lot! Will you share your work? Thank you for the inspiration bro! :-)</p>
Take a look at my build.. Z-axis not yet complete..https://youtu.be/YEhp0V-Ah9A
Thank you
<p>Hi !</p><p>I made it by myself , and while i searching for more robust CNC plan i found your post. Its same to your project but i added extra support to stabilised Z axis. </p>
Looks like a fun project! I see you used stepper motors - definitely better for more precise movement.
<p>How do you coordinate the movements of the the two motors so one of them doesn't arrive at the destination earlier or later than the other..?</p>
You divide up the full move into move increments or time increments like 100 steps or 2 seconds etc. - those can be any number based on how fast the motors can move and how far you need to go. <br><br>Then you step through those and calculate the X &amp; Y position for the current step in the full path.<br><br>The sample code in this Indestructible has a simple version, based on time increments: http://www.instructables.com/id/Internet-Arduino-Controlled-T-Slot-XY-Table/<br><br>This one has similar code: http://www.instructables.com/id/Table-Sized-Arduino-Joystick-Controlled-T-Slot-XY-/<br><br>For stepper motors, you often use the longest dimension in steps.<br>
<p>Looks a little complicated, but thanks!</p>
<p>I saw this jig for routers, https://m.youtube.com/watch?v=ulblySFElo4 then i realized it could be controllable by servos, </p>
Could be - not sure how much torque is required for that setup. DC motors would work. It's a cool design, and relatively low cost, though! Lot's of fabricating special parts, though. Check out the T-Slot version of this project - very easy to make.<br>
<br> <br> Thank <br> you for this great tutorial! Thought I might share this website I came <br> accross which I found very useful:http://www.directindustry.com/industrial-manufacturer/xy-stage-76555.html
This is an awesome project, thanks for sharing.
Hey Carl amazing, i have an idea, and this will be very useful, <br>is there a way you can attach a powerful led light on the pointer end, and have it fade in and out? <br>the idea i have is to capture a lens flare. <br>as in do your camera move (in the computer) do a 2d track on the image of the light source.(track the cgi light source) <br>export the 2d tack coordinates to the XY table, <br>Have a camera pointing the other end. once the light is in position take an picture on the camera. <br>As to simulate depth/ occlusion the light source need to fade in intensity. <br>Problem i have, i have no idea how to program this for the XY table to read. any ideas?
Cool idea! Take a look at the T-Slot version of this project - there is a link to it in the intro. Since that one uses an Arduino, you can drive an LED with a transistor - just like the side lighting that project uses, but an LED instead of the Z-Axis servo. Maybe try to get an LED working and dimming with an Arduino first to see how it goes since you are learning? I have another instructable for permanent holiday LED lighting that shows how to dim an LED strip - same thing for an individual LED, and maybe even easier. There are a number of examples of a single LED dimming with an Arduino on the web. Good Luck!
Thanks - looking forward to seeing how it goes since I am curious about using stepper motors too.
I really enjoyed trying your sand CNC app--thanks! I am <a href="http://www.instructables.com/id/DIY-CNC-Router-Plans-How-to-Build/" rel="nofollow"><strong>building my CNC</strong></a> to use drawer slides and NEMA17 steppers.
Just had a thought; you could mark lines on the belt and use a light sensor to detect the light reflected. This method gives no wear at all and the parts are cheap. to get the markings accurate im sure you could use a contact transfer to mark the lines on.
could also use a rotary encoder at the shaft, gray code or something, it'd be like, the reverse of a stepper motor, unless the shaft jumped a whole rotation, you'd have an absolute position... same technique, but without worrying the belt will get the ultra tiny dots rubbed off. there's an ible for a jog shuttle made from a vcr head, the same printout dots and encoder would work perfectly.
Nice idea, but marking the belt would be a little tedious, to say nothing of what Skaar said, the possibility of them rubbing off, also makes it less ideal.. the contact transfer, would also need to be 100% accurate, even if using just 2 or 3 already-marked areas. Most inkjet printers, use a clear plastic disc, and yes, there is that danger of the shaft jumping a tooth, or two.. but those usually match to the splines on the gear, and have an 'End Of Travel' optical sensor at both ends. I imagine the multi-turn POT is also susceptible to the 'Jump a tooth' problem..
Indeed - I have added hose clamps on the tubing connecting the potentiometers since they can slip. There is a trade-off between locking everything down and allowing some parts of the system to slip in case something goes wrong. For a CNC machine, locking things down more may make sense since they are generally attended. For TeleToyland, they need to run for weeks or months without intervention. Having a stepper and a home switch may work - it can home itself periodically, thus adapting to small variations.
hey arent potentiometers supposed to go only 180 degrees? in this case it goes round and round
Good catch. You are right - normally only one turn, but we are using 10 turn pots. It was mentioned in the intro, but we updated the parts list and this page to avoid confusion. Thanks!
Can u show us the circuit of this thing. how it been connecting to ueach other.
i used the same drawer glides too. they're perfect for the job. although they do dip if you go past their contracted length. they keep things neat and low cost when compared to aluminum rods and linear bearings.
Thanks. The drawer glides are still working on the web site, but I have an updated design that uses nylon screen door rollers on t-slot extrusions. The advantage is that they don't extend past the table when in use.<br><br>http://www.instructables.com/id/Internet-Arduino-Controlled-T-Slot-XY-Table/<br>
Love your innovation using &quot;off the shelf&quot; items! <br> <br>Grrreat job! <br> <br>
Great Instructable!!! Ive been working on a machine of my own but I have some questions about my driver board. Has anyone used the HobbyCNC EZ Driver Board Kit or the PRO series?
Have you considered Kerk? I was aware of them having very low cost linear guide systems about 5 yrs ago...
Hi, I am a new-registered member in your site... <br>I have a question here regarding to the PID X-Y table... <br> <br>How do you know the maximum distance that the plate on the X-axis and Y-axis can reach when the potentiometer (the potentiometer in your diagram) is in saturation (potentiometer reach maximum)?? <br> <br>If I am using another two potentiometers as the controller to control the X-axis and Y-axis movement respectively, when I tune the controller to its maximum, it is expected that the potentiometer that linked to the servo motor will reach maximum as well, vice versa. <br> <br>Hence, if my hardware is built without priorly knowing these information, it will happen that when I tune my controller to its maximum, the plate that move along the X-axis or Y-axis will reach to the edge before the potentiometer (the potentiometer that linked to the servo motor) reach its maximum if the area of the hardware is too small. <br> <br>So, how are we going to know the exact length and width of the X-Y table that enable the potentiometer to rotate freely from 0% to 100%?? <br> <br>Please be tolerated while reading due to my poor english, haha. <br> <br>Thanks a lot, hope to hear from you soon.
CNC news! DIY CNC hits mainstream in an O'Reilly Radar tech blog report today. See<br><br>http://radar.oreilly.com/2010/12/diy-fabrication-hits-a-new-pri.html
The linear bearings could be a smooth flat metal track, with the carriage mounted to a standard ball bearing.
i run the bs2 stamp chip i got over 60 servos around&nbsp; i been trying to find a way to run servo's instade of stepper motor&nbsp;&nbsp; im working on a nothere project cnc tipe&nbsp; but i don't won't to run a 300 board i like to find a nothere way to run it or convert the servo wire's to run with a home made board
Very creative way of doing CNC ;-)<br /> <br /> ...but I still believe that using steppers is the way to go. <br />
I have an idea here...will it work&nbsp;fine if i replace the drawer slider with a robot castor&nbsp; attach under the top X-axis bar?
<p>if i were going to use roller-chain-sprockets instead of timing belt, is that possible to clamp the chain like what you've done here?</p>
Maybe you could even just put a screw through one of the links?&nbsp; We could have done that with the timing belts too, but we were reluctant to put a hole in the timing belt.<br />
another question here. in this step 5 (picture number 2), does the small wood block, which attach on the Y-axis top glide, glue/screw together with the X-axis ?
Yes, I think its described in Step 4 - we attached small blocks to the X Axis glides, then the Y axis board to the tops of those blocks.&nbsp; That was so the Y Axis was above the X Axis timing belt.<br />
I would like to use your table design in an upright position, i.e. vertical.&nbsp; I cannot tell whether the design is mechanically consistent with this configuration.&nbsp; Thank you!!<br /> &nbsp; <br />
Thank you!&nbsp; I will let you know how it goes.<br />
It should be since the drawer glides work in most orientations, but the weight of the Y axis would be a fairly big strain on the X axis.&nbsp; Maybe you can add a counterweight to it? <br />
very cool! i would love to see how you did your web interface with the SSC-32 board.
We use a SitePlayer Telnet device to go from the Ethernet to the serial port.&nbsp; That let's us use simple PHP code to send commands via telnet.&nbsp; Then, we connect a Lynxmotion SSC-32 right into that serial port to drive the servos.<br />
<p>Hi,carls, i have a few Questions here:</p> <p>Does the Y-axis Drawer Glide system which you did here slide from the bottom to the top of the whole mechnism? I dont understand how did you make the drawer glide slide in the position 'bottom-top'?what does it mean by 'bottom-up'?<br /> <br /> As my project is about a pick and place&nbsp;mobile robot,so i would like to make the Y-axis&nbsp;slider to slide from the bottom up to where&nbsp;the top end. Could you teach me?&nbsp;</p>
Both axes use the same approach:&nbsp; we took two drawer glides and bolted the thin sides (the part that gets connected to the drawer) together, so that leaves the two wider cabinet sides out.&nbsp; We did this just to save the cost of buying a really long drawer glide.&nbsp; Another way to go is get linear bearings from a place like http://www.vxb.com.&nbsp; We may try that on a newer version of the TeleToyland Sandbox.<br /> <br /> Just a note that this system is very low precision, so it may not be well suited to CNC apps.<br />

About This Instructable




Bio: A Maker since childhood with all the classic symptoms, a robot builder, and an Internet software CTO by day.
More by CarlS:LED Holiday Tree with Shared Internet Control LED Bar Light Tardis Door 
Add instructable to: