Software > Software

iRobot Create HS-322HD Servo Not Working

(1/2) > >>

seyed:
Hi everyone,

I'm new to robotics and any hardware related stuff, so please bear with me.  I connected a Hitec HS-322HD servo to the BAM module on an iRobot Create, with the yellow wire connected to one of the digital outputs, the black wire connected to ground, and the red wire connected to power (I tried Vpw, Vsw, and +5V with the same results---which is best to use?), and when I turn on the robot, the servo jitters (moves a little back and forth once).  The manual says that the digital output should be on high for three seconds, but I'm pretty sure the jitter happens after the three seconds; it happens right after the light flashes and before the robot makes a sound.  Also when I send a digital output signal to the robot (using a Python wrapper over the OI), nothing happens, but when I set the digital output to low again, the servo jitters. 

Thus, it seems like in both cases when the digital output transitions from on to off is the only time it does something.  Do you have any idea what I'm doing wrong?  I tried an independent robot, servo, and BAM with the same results.

Thanks in advance!

seyed:
After talking to someone, I realized I need to be using PWM, but that doesn't seem to make the servo move either.  I noticed a couple other posts about this issue, but none seemed to get resolved.  I'm sending a PWM signal for 2 ms every 20 ms.  I tried different values and it didn't seem to change anything.  The duty cycle I'm sending is 13 (out of 128 max).  Does anyone know what the issue is?

seyed:
Okay, I've identified that the problem is that the low side driver is only giving 0.04 V!  It should be giving 5V or higher right?  I have the exact same problem for two separate robots, so I don't know what's going on.  Could the BAM Module be interfering with how much voltage gets passed to the low side driver?

jwatte:
A low side "driver" is an on-off switch that switches to ground. The voltage comes from some positive voltage. When the low-side "driver" is "on" then its pin is connected to ground, so a motor connected between positive voltage and the driver pin will get power. When it is "off," the pin is left floating (this is known as an "open drain") and thus no current can flow through the motor and thus it will get no power.

You cannot use a low-side driver (open drain) to signal directly on a TTL bus such as the PWM needed for RC servos, because it doesn't switch any voltage by itself. You *can* drive the PWM bus up to the control voltage (typically 5V) through a pull-up resistor; about 2.2 kilo-ohms would be a good first try. Note that, at that point, an "active" low-side switch will drive the pin DOWN and thus signal a zero on the PWM bus.

seyed:
Oh, I see.  So I tried doing PWM with the digital output instead of the LSD but the servo seems to jitter a bunch of times and not really move to the right location rather than moving continuously to the right angle.  Do you know why this might be?

Navigation

[0] Message Index

[#] Next page

Go to full version