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 budget!
Use you remaining cash for added features.
On May 27, 3:40�pm, firstname.lastname@example.org 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.
Best, - Joe
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 commands?
You know how to make your computer respond to speech commands, but sending serial commands intimidates you? That seems backwards to me. Sending serial commands is very easy -- see for example my tutorial here:
No. At some level, you have to tell the servos exactly how to move. Sending simple serial commands to a servo controller is the easiest way to do that.
Best, - Joe
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 tutorial?
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.
Best, - Joe
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.
Best, - Joe
Joe Strout wrote:
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 well debugged".
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 modified servo.
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, email@example.com 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 off 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* firstname.lastname@example.org (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, email@example.com wrote:
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.
Sounds like what you really need is a used industrial robot.
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?