TeleToyland Sandbox How It Works
Overview
The TeleToyland Sandbox system consists of two main components: The camera, and the control system.
The camera is a DLINK DCS-910 Internet Camera, which has it's own built in web-server hosting the images.
The control system starts on the web server, where we use JavaScript to draw the dots and coolect the points. PHP scripts manage the XY Table bay making a connection to a NetMedia SitePlayer Telnet which connects to the Internet and has an RS232 port for the servo control board. The servos are run from a Lynxmotion SSC-32 servo motor control board. This board is a nice one since it allows all the servos to be moved in synchronization to a timer, and we have the system set to do all moves in a few seconds to avoid jerking the servos around too much.
This Instructable covers the table construction.
Next, we used some servo extension cables to get all the servos connected to the servo control board. Once they were hooked up, we used the Lynxmotion control program to find the range limits for each servo. From those limits, the control software on the web server can convert image clicks to the servo position:
Instructable
Here's the Instructable that we did on the Construction:
For this project, we wanted to build a lower cost, lower precision XY table for an installation at TeleToyland. The goal is to allow web users to draw shapes in a sand box, so we wanted a simple XY table that is easy to control from a web application. Since we already have the Web to Hobby Servo connection working well for other installations, using a hobby servo was the desired approach. Most homebrew CNC XY tables use motors like steppers and acme screw drives, but we don't need that much precision, and they are a bit slower than we'd like. The Hobby Servo approach also gives us absolute position control, and helps keep the cost down too - using industrial servos would be great, but a lot more expensive. We were also looking for a lower cost way to do the linear glides - trying to avoid costly linear bearings etc.
The Challenge So, the challenge is taking a hobby servo and getting 2-3 feet of linear motion out of it. ServoCity is working on servo linear actuators (link), but we'd prefer lower power, lower cost, and longer reach that they currently offer (though new ones may be pending). We also built a basic SCARA type arrangement with 3" lazy susans, servos, and counter weights (link). This works OK, but the workspace was limited, and due to the polar approach with hobby servos, the resolution is uneven - higher nearer the servos. This may not be a huge problem, but the approach shown here yields the same precision over the entire workspace. We could also consider a hybrid - using one rotational arm with a liner slider on it - the math would be easy in that it would use polar coordinates directly. We could also reverse the two - use on linear slider and add a rotating arm to it. A project for another day!
Using Hobby Servos With a Hobby Servo, you typically get just 90 or 180 degrees of rotation, so the trick is getting that to work over a longer span - 2-3 feet. We could modify a servo for continuous rotation, but then you lose the positioning capability and we'd like to keep the internal PID circuitry and potentiometer approach. If you use the internal potentiometer and add a big servo horn, you could get a wider range of travel. With a circular horn, the distance traveled is Pi * Diameter of the horn / 2 - that last divide by two is to account for the max 180 degree of travel (we'll get into that later). So, for a 2' travel, you'd need a servo horn with a diameter of over 15"! We could use that approach with a lazy susan type of setup, but the momentum in moving that much material puts a huge mechanical strain on the servos (the same issue we had with the SCARA prototype). Another approach is to gear up the output, so you get more motion on the output. We didn't dig into this, and there may be issues with the power required to move those gears, and in addition, using gears is a bit ticker mechanically - we came up with a much simpler approach.
So, for our system, we pulled the potentiometer out of the servo case, and replaced it with a 10-turn potentiometer. So, right away, you can multiply the distance traveled by 10, so for the above case, it takes the horn diameter for a 2' travel from 15" to 1.5" - much more reasonable!
In terms of coupling the output we could drive a threaded shaft with a follower nut (ACME threading seems to be preferred). This appears to be the most common drive mechanism for homebrew XY Tables - due to it's power and precision. It does result in slower travel, though, and again, a lot of gearing to get the potentiometer to move at the right speed to cover the span of travel.
What we opted for was a very simple timing belt approach where the servo drives a timing belt pulley, and the 10-turn potentiometer is connected directly to the shaft. With this very simple arrangement, then, we get 2-3' of travel in a few seconds with no complex mechanics. You could scale this approach up by gearing down the drive or potentiometer to the limits of the mechanics of a hobby servo.
Intro | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
The TeleToyland Sandbox system consists of two main components: The camera, and the control system.
The camera is a DLINK DCS-910 Internet Camera, which has it's own built in web-server hosting the images.
The control system starts on the web server, where we use JavaScript to draw the dots and coolect the points. PHP scripts manage the XY Table bay making a connection to a NetMedia SitePlayer Telnet which connects to the Internet and has an RS232 port for the servo control board. The servos are run from a Lynxmotion SSC-32 servo motor control board. This board is a nice one since it allows all the servos to be moved in synchronization to a timer, and we have the system set to do all moves in a few seconds to avoid jerking the servos around too much.
This Instructable covers the table construction.
Next, we used some servo extension cables to get all the servos connected to the servo control board. Once they were hooked up, we used the Lynxmotion control program to find the range limits for each servo. From those limits, the control software on the web server can convert image clicks to the servo position:
Instructable
Here's the Instructable that we did on the Construction:
For this project, we wanted to build a lower cost, lower precision XY table for an installation at TeleToyland. The goal is to allow web users to draw shapes in a sand box, so we wanted a simple XY table that is easy to control from a web application. Since we already have the Web to Hobby Servo connection working well for other installations, using a hobby servo was the desired approach. Most homebrew CNC XY tables use motors like steppers and acme screw drives, but we don't need that much precision, and they are a bit slower than we'd like. The Hobby Servo approach also gives us absolute position control, and helps keep the cost down too - using industrial servos would be great, but a lot more expensive. We were also looking for a lower cost way to do the linear glides - trying to avoid costly linear bearings etc.
The Challenge So, the challenge is taking a hobby servo and getting 2-3 feet of linear motion out of it. ServoCity is working on servo linear actuators (link), but we'd prefer lower power, lower cost, and longer reach that they currently offer (though new ones may be pending). We also built a basic SCARA type arrangement with 3" lazy susans, servos, and counter weights (link). This works OK, but the workspace was limited, and due to the polar approach with hobby servos, the resolution is uneven - higher nearer the servos. This may not be a huge problem, but the approach shown here yields the same precision over the entire workspace. We could also consider a hybrid - using one rotational arm with a liner slider on it - the math would be easy in that it would use polar coordinates directly. We could also reverse the two - use on linear slider and add a rotating arm to it. A project for another day!
Using Hobby Servos With a Hobby Servo, you typically get just 90 or 180 degrees of rotation, so the trick is getting that to work over a longer span - 2-3 feet. We could modify a servo for continuous rotation, but then you lose the positioning capability and we'd like to keep the internal PID circuitry and potentiometer approach. If you use the internal potentiometer and add a big servo horn, you could get a wider range of travel. With a circular horn, the distance traveled is Pi * Diameter of the horn / 2 - that last divide by two is to account for the max 180 degree of travel (we'll get into that later). So, for a 2' travel, you'd need a servo horn with a diameter of over 15"! We could use that approach with a lazy susan type of setup, but the momentum in moving that much material puts a huge mechanical strain on the servos (the same issue we had with the SCARA prototype). Another approach is to gear up the output, so you get more motion on the output. We didn't dig into this, and there may be issues with the power required to move those gears, and in addition, using gears is a bit ticker mechanically - we came up with a much simpler approach.
So, for our system, we pulled the potentiometer out of the servo case, and replaced it with a 10-turn potentiometer. So, right away, you can multiply the distance traveled by 10, so for the above case, it takes the horn diameter for a 2' travel from 15" to 1.5" - much more reasonable!
In terms of coupling the output we could drive a threaded shaft with a follower nut (ACME threading seems to be preferred). This appears to be the most common drive mechanism for homebrew XY Tables - due to it's power and precision. It does result in slower travel, though, and again, a lot of gearing to get the potentiometer to move at the right speed to cover the span of travel.
What we opted for was a very simple timing belt approach where the servo drives a timing belt pulley, and the 10-turn potentiometer is connected directly to the shaft. With this very simple arrangement, then, we get 2-3' of travel in a few seconds with no complex mechanics. You could scale this approach up by gearing down the drive or potentiometer to the limits of the mechanics of a hobby servo.
Intro | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8