I am totally new to robotics and I need some helpful advice for the
project I'm working on. It is a very simple robotic arm with 2
degrees of freedom powered by two motors. I want it to execute a very
simple sequence of about four steps, activated by the push of a
button. What is the best type of kit or system to use? I am thinking
about using a basic stamp, but I really have no preference. My budget
is no more than $500.
Also, I mentioned that input would come by a button, but I would like
to try and have it be voice-activated. The only way I think I could
do this is by having a simple software program that is voice-activated
which would control this robotic arm. Is it very complicated to have
all input for control be activated by software?
This is exactly what you want for about half of your your projected
Use you remaining cash for added features.
On May 27, 3:40�pm, email@example.com wrote:
No, that's not complicated. You just need to use a serial motor or
servo controller; Pololu (http://www.pololu.com ) makes several of these.
You can then drive the controller directly from your desktop machine,
which will also be what responds to the voice command. Total budget
should be about $20 for the controller, maybe $40 or so for servos or
motors, and whatever misc. hardware you need for the arm, assuming you
already have a desktop computer with speech recognition. (It's built
into all Macs, but you may need to add a USB microphone.)
As for the motor vs. servo issue, for an application like this, I'd
suggest using servos, since they have built-in position control.
Lynxmotion sells some good (though not cheap) brackets that make it very
easy to connect servos in various ways.
That is helpful, but the controllers I looked at require the signals
be sent manually through the serial port. I have no idea how to do
something like that. Is there not a simple software program that I
can use to activate the servo controller, without entering low-level
Thanks for that tutorial, but unfortunately even that is too
complicated for my abilities at this point. I have no background
experience whatsoever in these kinds of things. Is there a device I
can purchase the does the same thing as the one you created in your
Creating voice commands is far easier than giving serial commands
since I have a commercial product that easily does that. I need a
software program with a button you can click on to activate the
sequence of steps from the robot. The voice-activated software will
then automatically press the button based on my command.
ServoCity.com sells a servo controller/recorder (about $100) where you
operate the servos using knobs, and the device will record your
movements. You might be able to achieve what you want using this, and no
PC is required.
There are a number of serial servo control programs with a pretty
graphics interface. You still need a serial port, but you don't have to
write any code. Rentron.com has provided a nice-looking one for years.
Look on their site for 'Robo-Ware'.
Try also pontech.com; they offer some GUI software to use servos for
creating animatronic playback, which basically is what you're trying to
do. Their software is free, and they have several versions of the
controller board, including one that has stand-alone features (allowing
you to disconnect it from a PC).
There are more - check outy MSN or Yahoo.com for additional searches.
Those are some helpful suggestions that might really work. However, I
think there might be a small problem in that all of those products
control servo motors which do not have continuous rotation. One of my
motors must be able to continuously rotate because its function is to
raise and lower the robotic arm with a screw thread actuator. Is
there a motor controller that can use motors with continuous rotation
and servo motors?
The problem with a setup like that, is that the controller (whatever
that might be) has no way of telling when it has moved the arm far
enough. You need some form of feedback -- at a minimum, I would say,
something that can count how many times the screw thread has rotated.
That's pretty easy to do with a simple sensor (for example, an optical
interrupt switch) and a bit of code. But if you're averse to
programming, I'm not sure how you would accomplish this.
But then, I'm a newbie to this field too -- maybe someone else knows of
a ready-made solution.
Couldn't I just determine through trial and error how many times the
motor needs to rotate in order for the arm to reach the desired
height. Once I have figured that out, I will never need to change the
type of movement I need. I will always be having the robotic arm
perform the same sequence for my application.
I'm assuming that you already know that. The issue is, how does the
controller know, at any given point in time, how many times it has
rotated? For that you need a sensor.
Without a sensor, the best you can do would be to just turn the motor on
for X seconds. But that will be very imprecise -- the amount it
actually turns in that amount of time will vary with the current, what
other loads are on the system, how much weight it's carrying, etc. If
you can be sure that all those other variables are exactly the same from
run to run, and you don't need too much precision anyway, then you can
probably get away with doing it this way. Otherwise, you really need a
sensor to measure what the motor is actually doing.
If this is a fixed-position pick and place application, you
can do everything with limit switches.
Or even cams. (http://www.camcoindex.com )
Even today, much industrial automation is purely mechanical.
Once, at a Detroit robot show, I stopped by the Camco exhibit,
where indexers, turntables, and pick and place machines were
picking up objects, dropping them into slots on turntables,
moving them onto slotted conveyor chains, putting them into feeders,
and endlessly cycling them through the exhibit. None of this
was computerized, or even electronic. The whole setup
was running perfectly, with one sales guy standing around.
As a friend remarked, "It may not be high-tech, but it's very
You might be able to rig up a limit switch to trigger when the arm has
reached a certain point. I'm not sure if any of the devices I noted has
a switch input, but they might. You'll want to check that. Otherwise,
the controller couldn't care less whether it's driving a regular or a
I doubt you're going to find something commercially-made that does
precisely what you want, at least not without it costing a fortune. How
about asking around your work or school to see if the electronic parts
of the project can be done by someone else. It would be cheaper than
buying something ready made.
I recall at the start you said your budget was up to $500. As the parts
to this shouldn't cost more than $100 (not including the computer) that
leaves $400 to pay someone. You probably couldn't find an automation
expert at that price, but a senior in high school or a
freshman/sophomore at the local college that's into robotics would
probably jump at the chance to make that kind of money.
On 29 May 2007 09:12:23 -0700, firstname.lastname@example.org wrote:
Depending on the servo controller, programming can be as simple
as copying the below, pasting it in notepad, saving it as
servo.bat, and then double clicking the bat file to make a servo
go to three different positions with a two second delay in
between. It doesn't have to be super complex.
echo #0 P600 >com1
ping -n 3 127.0.0.1
echo #0 P1000 >com1
ping -n 3 127.0.0.1
echo #0 P1600 >com1
On May 30, 11:29 pm, shb*NO* email@example.com (Si Ballenger) wrote:
thanks for that suggestion. could you interpret the code for me. or
could you direct me to a website that could give explanations of your
type of example.
also, could I use this method to operate any kind of motor controller.
I need a motor that can do continuous rotation
On Fri, 01 Jun 2007 00:26:19 -0000, firstname.lastname@example.org
The batch file code uses the command processor to send the string
of ascii charactors to the com port. The ping is just a simple
bach file way to delay between sending the different strings to
the com port. This is one way to send ascii strings to servo
controllers that use ascii strings. For controllers that use byte
strings, the link below shows how to send byte values to the
controller. As for motor controllers, the way they are controlled
depends on how they are made to be controlled. This may vary
depending on who makes them.
There is a book called "Humanoid Robotics" (will confirm), or something
similar, from memory it has a step-by-step project to build robotic arm
from sheet metal, uses a PIC16F84A programmed in BASIC (PIC BASIC Pro),
or just machine code if you want to use the "canned" solution. There is
artwork to make your own PCB, and an extension is to program it using
Visual BASIC, and then uses a voice-recognition chip.
Can you get any better than that?
Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here.
All logos and trade names are the property of their respective owners.