Robot Control Board behaving strange?
Hi all,
got my robotic arm in and started playing arround with it. So far I just tested some servo's. The ones I got are equiped with a 10k Ohm resistor but also some others that worked fine before are acting funny.
I hooked up 3 servos (well more at first but the same happend) and modified the servo32.spin code into something like this:
·SERVO.Set(ServoCh1,1400)················· 'Force Rotating base Servo to Center
··· waitcnt(clkfreq*1+cnt)·················· 'wait for 3 seconds
··· SERVO.Set(ServoCh1,2000)·················· 'Move SRotating base furthest Counter Clockwise position
··· waitcnt(clkfreq*1+cnt)·················· 'wait for 3 seconds
··· SERVO.Set(ServoCh1,1400)················· 'Force Rotating base to Center
··· waitcnt(clkfreq*1+cnt)·················· 'wait for 3 seconds
··· SERVO.Set(ServoCh2,1400)················· 'Force·Arm1 Servo to Center
··· SERVO.Set(ServoCh3,1400)················· 'Force·Arm2 Servo to Center
··· waitcnt(clkfreq*1+cnt)·················· 'wait for 3 seconds
··· SERVO.Set(ServoCh2,1000)·················· 'Move·Arm1 furthest Clockwise position
··· SERVO.Set(ServoCh3,2000)·················· 'Move·Arm2 furthest Clockwise position
It works, partially. The base rotates as it should and when I separate the arm1 and arm2 with a waitcnt this also works. But when I used it as shown (the arm1 and arm2 are 2 servos that contra rotate and lift 1 joint together) things go wrong. I get little movement one the arm servos and the rotating base servo goes wild and doesnt stop turning anymore. They are currently just lying next to eachother and not lifting anything.
Anyone a clue?
got my robotic arm in and started playing arround with it. So far I just tested some servo's. The ones I got are equiped with a 10k Ohm resistor but also some others that worked fine before are acting funny.
I hooked up 3 servos (well more at first but the same happend) and modified the servo32.spin code into something like this:
·SERVO.Set(ServoCh1,1400)················· 'Force Rotating base Servo to Center
··· waitcnt(clkfreq*1+cnt)·················· 'wait for 3 seconds
··· SERVO.Set(ServoCh1,2000)·················· 'Move SRotating base furthest Counter Clockwise position
··· waitcnt(clkfreq*1+cnt)·················· 'wait for 3 seconds
··· SERVO.Set(ServoCh1,1400)················· 'Force Rotating base to Center
··· waitcnt(clkfreq*1+cnt)·················· 'wait for 3 seconds
··· SERVO.Set(ServoCh2,1400)················· 'Force·Arm1 Servo to Center
··· SERVO.Set(ServoCh3,1400)················· 'Force·Arm2 Servo to Center
··· waitcnt(clkfreq*1+cnt)·················· 'wait for 3 seconds
··· SERVO.Set(ServoCh2,1000)·················· 'Move·Arm1 furthest Clockwise position
··· SERVO.Set(ServoCh3,2000)·················· 'Move·Arm2 furthest Clockwise position
It works, partially. The base rotates as it should and when I separate the arm1 and arm2 with a waitcnt this also works. But when I used it as shown (the arm1 and arm2 are 2 servos that contra rotate and lift 1 joint together) things go wrong. I get little movement one the arm servos and the rotating base servo goes wild and doesnt stop turning anymore. They are currently just lying next to eachother and not lifting anything.
Anyone a clue?
Comments
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Powered by enthusiasm
Rich H
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
The Simple Servo Tester, a kit from Gadget Gangster.
rpdb
Is the board a MSR1?
I had problems with the translators (3.3v to 5.0v converters) on the MRS1 board going into oscillation with long leads on my servos. I soldered .100" headers on the board and installed jumpers to disable the translators and pick up the I/O signals directly from the propeller chip. You will want to put a 1k ohm resistor in series with the signal line attached directly to the prop chip to limit current when hooking up 5.0v logic to the propellers 3.3v logic. If your propeller chip puts out a 0 (0.0v) while your sensor outputs a 1 (5.0v) to that pin you can overload the prop or sensor pin. Look up the 28230-PropellerRobotControlBrd-v1.0.pdf and on page 6 of 9 the manual describes accessing the "direct I/O vias".
I hope that helps.
rpdb