go_away

Author Topic: iRobot Create HS-322HD Servo Not Working  (Read 773 times)

0 Members and 1 Guest are viewing this topic.

Offline seyedTopic starter

  • Beginner
  • *
  • Posts: 4
  • Helpful? 0
iRobot Create HS-322HD Servo Not Working
« on: March 13, 2013, 06:16:07 PM »
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!

Offline seyedTopic starter

  • Beginner
  • *
  • Posts: 4
  • Helpful? 0
Re: iRobot Create HS-322HD Servo Not Working
« Reply #1 on: March 14, 2013, 06:05:44 PM »
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?

Offline seyedTopic starter

  • Beginner
  • *
  • Posts: 4
  • Helpful? 0
Re: iRobot Create HS-322HD Servo Not Working
« Reply #2 on: March 15, 2013, 07:45:49 PM »
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?

Offline jwatte

  • Supreme Robot
  • *****
  • Posts: 1,274
  • Helpful? 79
Re: iRobot Create HS-322HD Servo Not Working
« Reply #3 on: March 16, 2013, 12:37:53 AM »
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.

Offline seyedTopic starter

  • Beginner
  • *
  • Posts: 4
  • Helpful? 0
Re: iRobot Create HS-322HD Servo Not Working
« Reply #4 on: March 16, 2013, 09:02:38 PM »
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?

Offline jwatte

  • Supreme Robot
  • *****
  • Posts: 1,274
  • Helpful? 79
Re: iRobot Create HS-322HD Servo Not Working
« Reply #5 on: March 17, 2013, 03:44:54 PM »
Quote
Do you know why this might be?

Many possible reasons. Perhaps the servo draws more power than your power supply can give, and the controller undervolts and resets?
Perhaps the pulse you're generating isn't properly what the servo wants (1500 microseconds on, 30000 microseconds off, repeat)?
Perhaps there is some interference somewhere?
An oscilloscope would be the best way to debug this, measuring the voltage and signal lines of the servo and see what they look like.

 


Get Your Ad Here

data_list