Shop OBEX P1 Docs P2 Docs Learn Events
Servo Motors Suddenly Stop... — Parallax Forums

Servo Motors Suddenly Stop...

rAiN2308rAiN2308 Posts: 3
edited 2008-04-16 02:31 in BASIC Stamp
Hi!

I am currently working on a robotic arm with 6 servos and a BS2p24 on a BOE. Everything is doing ok, but the servo motors just suddenly stop in the middle of a loop. If they don't stop, they don't move to the accurate angle. The BOE has a 12VAC power supply while the servo controller has 5VAC. I've tried using a 9V Battery on the BOE, but it still does the same thing. HELP!

Comments

  • dandreaedandreae Posts: 1,375
    edited 2008-04-10 14:22
    Can you post a picture of your project or a schematic?·



    Dave

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Dave Andreae

    Parallax Tech Support·
  • David H.David H. Posts: 78
    edited 2008-04-10 15:44
    A copy of the program would also help. It could be as simply as not having a long enough pause for your servos. This can mess up the timing. But without a program to look at,...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    David


    There are 10 types of people in this world,...
    Those that understand binary numbers, and those that don't!!!
  • allanlane5allanlane5 Posts: 3,815
    edited 2008-04-10 19:05
    Gosh, I hope your supply is "DC" not "AC", or there's gonna be smoke.
  • FranklinFranklin Posts: 4,747
    edited 2008-04-10 20:10
    5V may not be enough for the servo power.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - Stephen
  • allanlane5allanlane5 Posts: 3,815
    edited 2008-04-10 20:48
    5 volts is enough for servo power, IF you've got enough current available. Which for 6 servo's should be about 2 amps (depending on the servo and load). A 5 volt 1 amp supply MIGHT work, if the servo's are "lightly loaded" -- in other words, don't have much mechanical load on them.
  • rAiN2308rAiN2308 Posts: 3
    edited 2008-04-11 02:30
    Thanks for the quick reply... http://forums.parallax.com/forums/posticons/icon6.gif

    I tried using 7.5V to power the servos. It worked well for the first 5 minutes, but then the arm movement slowed down after that. There's no load on the servos whatsoever. I used an AC-DC adapter to power the servos and a 9V battery this time. Here's part of the program:

    [b]'      base    bicep   elbow  wrist  wristR gripper
    PUT Constraints, 0,150, 60,140, 0,150, 0,170, 0,180, 0,170
    
    '                   Bse  Bcpt  elbw  wrst  wrstR  grppr dly  ctrlByte
    Stream DATA 0,   100,  100,   90,   90,   150,  10, %00111111,
                        0,   100,  100,   90,   90,   150,  20, %00000001,
                        0,    85,   90,   60,   90,   150,   0, %00101110,
                        0,    70,   90,   60,   90,   50,    0, %00100010,
                        0,   100,   90,   90,   90,   50,   20, %00111100,
                        60,  100,  100,   90,   90,   50,   10, %00001111,
                        60,  100,  100,   65,   90,   50,    0, %00001110,
                        60,  100,  100,   90,   90,   50,    0, %00001111,
                        120, 100,  100,   90,   90,   50,   30, %00000001,
                        120,  85,   90,   60,   90,   50,   10, %00001110,
                        120, 100,   90,   90,   90,   150,  10, %00100000,
                        120, 100,  100,   90,   90,   150,  0, %00001111,
                       $FF 'END
    
    #DEFINE debugMode = 0
    ramp = $0
    
    Main:
      GOSUB  IGet_Stream                            
      PAUSE 100                                    
    GOTO Main                                       
    
    IGet_Stream:
      ptrStream = Stream                            
      READ ptrStream, array(Base), array(Bicep),    
                     array(Elbow), array(Wrist),
                     array(WristRotate), array(Gripper),
                     delay, ctrlByte
      DO WHILE array(Base) <> $FF                   
        GOSUB Move_Arm_Joints                      
        PAUSE (delay*100)                          
        ptrStream = ptrStream + 8                   
        READ ptrStream, array(Base), array(Bicep),  
                       array(Elbow), array(Wrist),
                       array(WristRotate), array(Gripper),
                       delay, ctrlByte
      LOOP                                         
    RETURN [/b]
    



    This program was just copied from one of the sample programs that came with the Basic Sample Editor (ver. 2.5). I just edited the data stream and the constraints part. Even if the original program was used, the same thing happens. Could it be that the problem is with the servos? What's the average lifespan of a servo? I'm using HiTec HS-645MG and HS-475HB servos...
  • pwillardpwillard Posts: 321
    edited 2008-04-11 02:42
    Honestly, 6.0V is usually considered MAX input voltage for standard hobby RC servos. I would also not expect that a 9V Battery would have anywhere neer the available current needed for that many servos at once for very long. You could also be stressing the servo by supplying 7.5 volts in addition to not have enough current for reliable operation. I imagine that the high current drain and resulting voltage drop is even causing resets on the Stamp.

    Time to re-evaluate what you are trying to do? Do you have a better "beefier? 5V power source?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    There's nothing like a new idea and a warm soldering iron.
  • Mr_FanaticMr_Fanatic Posts: 4
    edited 2008-04-11 06:05
    Well you can try using a cpu power supply for your input just use the 5V output from the hdd line, just make sure that you test it and really gives you the correct output, that should give you enough power....

    P.S. If you're using a 300 watt power supply you should have an ample Volt/Current ratio of 5V:2A.
  • allanlane5allanlane5 Posts: 3,815
    edited 2008-04-11 13:07
    If there was "no load on the servo's whatever", then they wouldn't be connected to anything. So I doubt that's true. Okay, there's no "additional" load on the servo's, besides the arm, the wrist, the gripper, etc.

    It sounds like 5 minutes of operation is all you're getting out of your battery before it goes dead. Have you measured the current you're using from your battery? Servo's can draw a LOT of current under mechanical load, and the "mechanical load" we're talking about with Servo's is in the range of inch-ounces of torque.
  • rAiN2308rAiN2308 Posts: 3
    edited 2008-04-14 01:36
    I tried using a Pentium 4 power supply as an external power source for the servos, and increased the voltage input from 5V to 5.2V, and have gotten positive results. But still, the servos slow down after 30 minutes to 1 hour. I need the servos to operate continuously for 8 hours a day. Is this possible?
  • allanlane5allanlane5 Posts: 3,815
    edited 2008-04-14 13:31
    Hmm. Servo's were designed (originally) for positioning control surfaces in model planes. If you're getting 30 minutes to an hour of continuous use out of them, you may be over-heating them. Because that much "continuous operation" doesn't usually happen if there's a coding error, that's more a symptom of mechanical lubrication or mechanical wear issues.

    Bottom line -- yes, it SHOULD be possible to do this, BUT you may need different higher-torque servo's to accomplish it.
  • rockybulwinklerockybulwinkle Posts: 36
    edited 2008-04-16 02:31
    You might want to look at servos at hobby-lobby.com if you are using regular hobby servos. They have ones that get up to 140 oz/in

    Also, you might want to try using smaller servos up at the wrist or gripper of the arm. I've never made a robotic arm, but it would make sense for you to get lighter, less "beefy" servos for jobs that would require less torque. That way, your stronger servos at the base won't have as much of a load from the other servos, and the less "beefy" servos would make more power available for the bigger ones.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    There are 10 kinds of people in the world;
    those who understand binary and those who don't.
Sign In or Register to comment.