Parallax Servo Controller (USB)
I have successfully sent commands to the servo motors through USB, and they seemed to respond correctly.
But my problem is I can only send velocity commands. That is, a given servo motor has a certain range of numbers. One number will correspond to a stop. And the rest of the values within the range will command the servo motor to move in one direction. The bigger the value away from "stop" number, the faster is the motion of the motor. At the opposite sides of the "stop" number are the opposite directions of motor motion.
What I want to do is send a position command. That is, one number sent corresponding to a unique motor displacement.
Even if I just connect the USB to my laptop and turn on the switch on the Parallax board, my motors would start turning non-stop until I send the "stop" number ( around 518 for a Parallax continuous rotation motor, and 617 for a Futaba S3003 motor).
Please help me determine what is wrong with my system.
Thanks,
indaybda
But my problem is I can only send velocity commands. That is, a given servo motor has a certain range of numbers. One number will correspond to a stop. And the rest of the values within the range will command the servo motor to move in one direction. The bigger the value away from "stop" number, the faster is the motion of the motor. At the opposite sides of the "stop" number are the opposite directions of motor motion.
What I want to do is send a position command. That is, one number sent corresponding to a unique motor displacement.
Even if I just connect the USB to my laptop and turn on the switch on the Parallax board, my motors would start turning non-stop until I send the "stop" number ( around 518 for a Parallax continuous rotation motor, and 617 for a Futaba S3003 motor).
Please help me determine what is wrong with my system.
Thanks,
indaybda
Comments
An unmodified servo will move to a particular position and stop with the position corresponding to the provided pulse width (from approximately 1ms to 2ms, sometimes over as much as 0.5ms to 2.5ms).
Is there a way I can achieve a position command using my current setup?
Thanks,
Indaybda
If you ordered an unmodified servo, perhaps you were sent the wrong type by mistake.
The Parallax (Futaba) Standard Servo in the Parallax website should be position controlled, right?
-Indaybda
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- Stephen
-Indaybda
I just buy the USB servo controller, hooked up, but no servo movement.
When I check the PSC version the only message will be: "Version...", so no number.
The red led burns on the board, and the green flashes when sending data with the PSCusb software V0.9h beta.
Also pressing the reset button on the board there is just a little movement of the servo's, but that's all.
There is also power on the servo pin's + and -. I use the standard Parallax servo's.
What's wrong???? (...help..)
Gr. Wil
ps. my BoeBot works good on the same usb cable/port.
Have you installed the USB Drivers? Are you selecting the correct COM Port (the one assigned to the PSC)? Since you have a BOE-Bot, could you try the PSC on the BOE-Bot? This will narrow down where the issue is.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Chris Savage
Parallax Tech Support
I found the problem: it won't work with an USB 1.0 port. When I use an USB 2.0 port it works good!
Thanks
I standard servo I ordered worked the way I wanted. So I am ordering eight (8) more motors for my application.
Thanks for the help,
Indaybda
I am almost ready with my demo using 9 Parallax Standard Servos and USB 16-channel Servo Controller. My mechanism requires sending simultaneous signal to all 9 motors. However, due to the pseudo-serial communication of the USB port, the signals to all the 9 channels are queued. The resulting motor motion would look like a wave, that is, one motor moved after the other and so on, instead of a single motion of all the motors moving at the same time.
Is there a way of working around this problem? I am willing to sacrifice a little motion delay, if necessary, to achieve a single motion for all motors.
One observed scenario:
1. Turn off the power switch to the motors
2. Send the command signals
3. Turn on the power switch
This will allow all motors to move at the same time according to the command signal.
I am thinking of turning off the power switch by software and turning it back on (but I don't know how to do this). Or is there a more elegant way of achieving a simultaneous motion for all motors?
Thanks,
Indaybda
SEROUT Pin#, baudconstant + $8000, [noparse][[/noparse] "!SCSBR", 1, CR ]
to make sure it worked you should capture the three-byte reply with
SERIN Pin#, newbaudconstant, [noparse][[/noparse]STR buff\3]
where buff is a three-byte array and it should return "B R 1" for the new 38k4 baud rate
baud constant is a constant specific to the specific stamp or uC your using
you should send the command in the default 2400 baud and recieve in the 38k4 baud
the constants can be found as follows:
BS2, BS2e, and BS2pe = (INT)(1,000,000