Loading ...
Sorry, an error occurred while loading the content.

Re: [beam] servoCore

Expand Messages
  • Wilf Rigter
    A few more comments of uServo4 : uServo4 - how it works The uServo4 circuit controls 2 servos with 2 PWM pulse generators . Each PWM generator has 2 preset
    Message 1 of 7 , Dec 15, 2002
    • 0 Attachment
      A few more comments of uServo4 :
       
      uServo4 - how it works
       
      The uServo4 circuit controls 2 servos with 2 PWM pulse generators . Each PWM generator has 2 preset pulse witdths adjusted with the 100K pots and selected with the PNP transistors. If neither transistor is selected the PWM generator output stays high.  A servo with no PWM input signal remains in the last position.
       
      The Microcore modulates the PWM generator.
       
      The PWM generator pulse width is controlled by a standard microcore. Nv1 turns controls the CW rotation and Nv3 the CCW of servo S1.  Similarly N2 controls the CW of S2 and Nv4 controls the CCW rotation of S2.
       
      Turning the walker
       
      Since the PWM pulse width pots sets the POSITION of the servo, no springs or other means are required to center the rotation and avoid overtravel.  However there is a  requirement that the microcore pulses are approximately long enough for the servos to just reach their CW and CCW positions. Then if the pulse of the microcore is shortened the leg will not rotate to its preset CW or CCW position and turning can be achieved. 
       
      Reversing the walker
       
      No reverse is provided in the uServo4 circuit but can be added by swapping the NV outputs that control either the front or rear motor (but not both front and rear).
       
      And now for something completely different:  uServoCore5
       
       
       
      As I mentioned questions usually result in new designs and yours are no exception.
       
      The original Servocore circuit indicated how a high frequency PWMcore could be  modulated by a low frequency microcore central pattern generator. Straight from the idea cauldron, it required some time to digest (food for thought?) More than 2 years later here is a regurgitated uServocore version 5 complete with turn and reverse. It uses two 74HC14 chips and is rather more complex than its raw progenitor circuit.    While still a thought experiment, the design incorporates an number of some interesting (innovative even)  bits to point out.
       
      PWMcore = tricore
       
      The PWM loop is a tricore, a single delay stage separates the active high PWM pulses for both servos. 
       
      MicroCore to Bicore translator
       
      There is an advantage in using continuously active PWM signals. The main reason is that the assynchronous frequencies of the PWMcore  and microcore can sometimes result in a forshortened PWM pulse. The Sevo reconizes this as a command for a new positions and twitches toward that posistion. This makes the motion somewhat jerky on the original uServo4 circuit.  In this application the micorcore is actually used as a quasi bicore. The microcore outputs are connected through 4 diodes to give the equivalent of a master-slave bicore waveforms but with individual control of the rising and falling phase angles. Since that can be used for turning a conventional "bicore" walker (but not the uServo walker), this technique may be exploited in other walker applications as well. 
       
      Normal the microcore generates 4 individual pulses from Nv1- Nv4.  The master - slave bicore waveforms are two ovelapping quadrature waveforms. The translator synthesizes the bicore waveforms  in two parts using diodes D3-D8  to OR the microcore outputs.  During forward motion the output of of Nv1 is not used   So when Nv1 is active, the PWM pulses for both S1 and S2 are not influenced through diodes D3-8. and the PWMs generate the  longest pulses driving both servos to CCW. When Nv2 is active it controls duration of the first half of the S1 CW position, Nv3 sets the second half of CW for S1 and the first half of CW for S2. Nv4 controls the second half of CW for S2.
       
      Servo Rotation Sequence
       
      The rotation sequence for the S1 and S2 servos is controlled by the active high microcore Nvs  as follows:
       
      S1 (front)      S2 (rear)
      CCW            CCW
      CW (Nv2)     CCW
      CW (Nv3)     CW(Nv3)
      CCW            CW(Nv4)
       
      Reversing the walker
       
      If the outputs of Nv1 and  Nv3 can be altelnately selected that would provide a 180 degree phase shift of the PWM signals required to reverse the walker.
      The microcore to bicore diode network also part of  the reverse circuit to select whether the rear legs lead or lag by 90 degrees and therefore reverse the walker. The reverse circuit is a multiplexer to select either the output of Nv1 or Nv3 similar to the Mx circuit but using two 74HC14 inverters  and diodes to "steer" Nv1 and Nv3 pulses and to set the reverse delay. During forward motion Nv1 output is blocked by D10 while the output of Nv3 is enabled by D9. Conversely when reversing  Nv1 output is enabled by D10 while the output of Nv3 is blocked by D9.
       
      The rotation sequence for the S1 and S2 servos to reverse the walker is  as follows:
       
      S1 (front)      S2 (rear)
      CW (Nv1      CW (Nv1)
      CW (Nv2)     CCW
      CCW            CCW
      CCW            CW(Nv4)
       
      The duration for the microcore Nv1-4 pulses should be checked  to be equal and slightly longer than the time for Cw and CCW rotation. The 74HC14 diode multiplexer / reverser may be used for other microcore applicatons.
       
       
      Turning the walker
       
      A somewhat primitive turning circuit has been used to add a left, right or neutral bias on the rear motor PWM pulse generator causing the walker to veer left, right or go straight.  The 1M pot (R9) is adjusted the turning radius limited by the stability of the walker. The next revision will use the remaining spare inverters for a more positive turning circuit however for now, lest I suffer some serious mental indigestion, that's it.  So long,  thanks for all the fish and watch out for falling petunias.
       
      wilf
       
       
       
      ----- Original Message -----
      Sent: Sunday, December 15, 2002 9:56 AM
      Subject: [beam] servoCore

      I'm trying to grasp how uCore's work with non-modified servo's. from the circuits i've seen, each servo requires 3 inverters. The first 2 are like a standard biCore setting timing for the left/right rotation. The third is setting the ocilation pattern for the servo, and its ocilation is influenced by the first 2.
       
      attached are 3 schematics (all from the amazing mind of Wilf)
      looking at:
      2servo4leg circuit, i see the ocilator for the servo is 0.1sec (R*C going into the 3rd inverter) C=0.1, R=1
       
      while on:
      uServo4 the same part (R*C going into the 3rd inverter) is .044sec C=0.022, R=2
       
      and on:
      4servorwalker1 has 0.001sec ocilations (I might be looking at the wrong resistor for this one) C=0.001, R=1
       
      I see a variation from .001 to .1 for the servo ocilator
       
      My question is this:
         Does the ocilation time for the servo change with make and models of servo's?
         What is the ideal frequency for this?
      Seems like there would be a standard as these are interchangable.
       
      I ask this because i got a couple of micro-mini servos off e-bay (9grams each) and would like to build a walker with them. (hopefully without ripping their guts out)
       
      stats for these:

        Size -in mm 22x11.2 x 22

        Weight - 9 grams or 0.34 ounces

        Speed sec/60 deg - 0.11

        Torque kg-cm/oz-in 0.8/11

      thx as always,

      diving into the deep end,

      DrewB


      To unsubscribe from this group, send an email to:
      beam-unsubscribe@egroups.com



      Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
    • Drew Brown
      going through the archives i found this: http://home1.gte.net/tdickens/68hc11/servo/servo.html#pwmcircuit new question: The high time of the pulse controls
      Message 2 of 7 , Dec 16, 2002
      • 0 Attachment
        going through the archives i found this:
        new question:
           The "high time" of the pulse controls speed or location?
        ( would a set high time always return the servo to the same angle?)
         
        DrewB
        ----- Original Message -----
        Sent: Monday, December 16, 2002 2:34 AM
        Subject: Re: [beam] Re: servoCore

        thx for the info,
         
        so for the 100k pot's adjust till functioning smoothly (no drift...) measure and replace.
         
        Cool all that can be done on the breadboard! and circuit size srinks! (no less components, just smaller ones   :-)
         
        as for servo rotation, i would think about 120deg. would give an able step.
         
        I remember seeing a discussion on pulse width modulation as i joined the list.
        i'll scan through the archives to catch up.
         
        again thanks for thr info,
        DrewB
         
        "i dont want to do the impossible,
        i only want to do what hasen't been done"
        ----- Original Message -----
        Sent: Sunday, December 15, 2002 2:43 PM
        Subject: [beam] Re: servoCore

        Hi Drew,

        The short answer is:

        the PWM servo control pulse width varies somewhere between 1ms and
        2ms for full cw to ccw rotation. The pulse repetition rate is
        generally 10 to 50 pps. The actual full cw/ccw rotation is dependent
        on the servo. One word of advise: driving the servo to the limit of
        its mechnical stops is hard on the gearbox and draws high currents.

        The long answer is:  

        As a result of the inquisitive nature and active participation of so
        many BEAM list members, we have a rich breeding ground of questions
        and ideas. It is a primal soup of information that everyone want to
        share and which, from time to time, spawns some new circuits or new
        creatures that crawl still dripping into the light of day.

        I frequently post circuits while they are still in the "wet" idea
        stage, to stimulate discussion and to get some feedback. The design
        may not get developed beyond the experimental stage unless it
        triggers some interest.

        The 4 servo schematic was posted, in a sense, as a generic with the
        component values shown to indicate order of magnitude. The timing and
        order of servo rotation may not be practical in a real
        implimentation.

        The original post triggered a lot of interest, in particular by Scott
        Burns. In the subsequent discussions on the list the microcore to
        hobby servo PWM circuit was refined and resulted in the fully
        functional uSERVO4 design. Designing the servocore schematic was
        simple but there were a quite a few twists to make the hardware work.

        The low accuracy of the servos and the pulsewidth of uservo4 PWM
        pulses means that is is not possible to use fixed component values
        and requires tweaking the 100K pots for adjusting the left/right
        rotation. 

        Scott used the uSERVO4 circuit as part of a creative mechatronics
        project/contest for an introductory university course. The students,
        most of whom never heard of BEAM before, build a wide variety of beam
        like "robots". The projects were scored on various factors including
        cost, mechanics and innovative  adaptation of the uSERVO circuit in a
        mobile robotic design. Scott posted the results on a website but I
        have lost the link.

        Hope that clarifies the range of component values that are sometime 
        shown in different versions of the same beam circuit ( mine in
        particular) and underscores the need to breadboard and test all but
        the most stable beam circuits in a plug board before hardwiring.

        regards

        wilf


        --- In beam@yahoogroups.com, "Drew Brown" <sa_brown@b...> wrote:
        > I'm trying to grasp how uCore's work with non-modified servo's.
        from the circuits i've seen, each servo requires 3 inverters. The
        first 2 are like a standard biCore setting timing for the left/right
        rotation. The third is setting the ocilation pattern for the servo,
        and its ocilation is influenced by the first 2.
        >
        > attached are 3 schematics (all from the amazing mind of Wilf)
        > looking at:
        > 2servo4leg circuit, i see the ocilator for the servo is 0.1sec (R*C
        going into the 3rd inverter) C=0.1, R=1
        >
        > while on:
        > uServo4 the same part (R*C going into the 3rd inverter) is .044sec
        C=0.022, R=2
        >
        > and on:
        > 4servorwalker1 has 0.001sec ocilations (I might be looking at the
        wrong resistor for this one) C=0.001, R=1
        >
        > I see a variation from .001 to .1 for the servo ocilator
        >
        > My question is this:
        >    Does the ocilation time for the servo change with make and
        models of servo's?
        >    What is the ideal frequency for this?
        > Seems like there would be a standard as these are interchangable.
        >
        > I ask this because i got a couple of micro-mini servos off e-bay
        (9grams each) and would like to build a walker with them. (hopefully
        without ripping their guts out)
        >
        > stats for these:
        >   Size -in mm 22x11.2 x 22
        >
        >   Weight - 9 grams or 0.34 ounces
        >
        >   Speed sec/60 deg - 0.11
        >
        >   Torque kg-cm/oz-in 0.8/11
        >
        > thx as always,
        >
        > diving into the deep end,
        >
        > DrewB


        To unsubscribe from this group, send an email to:
        beam-unsubscribe@egroups.com



        Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.

        To unsubscribe from this group, send an email to:
        beam-unsubscribe@egroups.com



        Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
      • Drew Brown
        you already answered. wilf, you psychic? DrewB ... From: Drew Brown To: beam@yahoogroups.com Sent: Monday, December 16, 2002 4:07 AM Subject: Re: [beam] Re:
        Message 3 of 7 , Dec 16, 2002
        • 0 Attachment
          you already answered.
           
          wilf, you psychic?
           
          DrewB
           
          ----- Original Message -----
          Sent: Monday, December 16, 2002 4:07 AM
          Subject: Re: [beam] Re: servoCore

          going through the archives i found this:
          new question:
             The "high time" of the pulse controls speed or location?
          ( would a set high time always return the servo to the same angle?)
           
          DrewB
          ----- Original Message -----
          Sent: Monday, December 16, 2002 2:34 AM
          Subject: Re: [beam] Re: servoCore

          thx for the info,
           
          so for the 100k pot's adjust till functioning smoothly (no drift...) measure and replace.
           
          Cool all that can be done on the breadboard! and circuit size srinks! (no less components, just smaller ones   :-)
           
          as for servo rotation, i would think about 120deg. would give an able step.
           
          I remember seeing a discussion on pulse width modulation as i joined the list.
          i'll scan through the archives to catch up.
           
          again thanks for thr info,
          DrewB
           
          "i dont want to do the impossible,
          i only want to do what hasen't been done"
          ----- Original Message -----
          Sent: Sunday, December 15, 2002 2:43 PM
          Subject: [beam] Re: servoCore

          Hi Drew,

          The short answer is:

          the PWM servo control pulse width varies somewhere between 1ms and
          2ms for full cw to ccw rotation. The pulse repetition rate is
          generally 10 to 50 pps. The actual full cw/ccw rotation is dependent
          on the servo. One word of advise: driving the servo to the limit of
          its mechnical stops is hard on the gearbox and draws high currents.

          The long answer is:  

          As a result of the inquisitive nature and active participation of so
          many BEAM list members, we have a rich breeding ground of questions
          and ideas. It is a primal soup of information that everyone want to
          share and which, from time to time, spawns some new circuits or new
          creatures that crawl still dripping into the light of day.

          I frequently post circuits while they are still in the "wet" idea
          stage, to stimulate discussion and to get some feedback. The design
          may not get developed beyond the experimental stage unless it
          triggers some interest.

          The 4 servo schematic was posted, in a sense, as a generic with the
          component values shown to indicate order of magnitude. The timing and
          order of servo rotation may not be practical in a real
          implimentation.

          The original post triggered a lot of interest, in particular by Scott
          Burns. In the subsequent discussions on the list the microcore to
          hobby servo PWM circuit was refined and resulted in the fully
          functional uSERVO4 design. Designing the servocore schematic was
          simple but there were a quite a few twists to make the hardware work.

          The low accuracy of the servos and the pulsewidth of uservo4 PWM
          pulses means that is is not possible to use fixed component values
          and requires tweaking the 100K pots for adjusting the left/right
          rotation. 

          Scott used the uSERVO4 circuit as part of a creative mechatronics
          project/contest for an introductory university course. The students,
          most of whom never heard of BEAM before, build a wide variety of beam
          like "robots". The projects were scored on various factors including
          cost, mechanics and innovative  adaptation of the uSERVO circuit in a
          mobile robotic design. Scott posted the results on a website but I
          have lost the link.

          Hope that clarifies the range of component values that are sometime 
          shown in different versions of the same beam circuit ( mine in
          particular) and underscores the need to breadboard and test all but
          the most stable beam circuits in a plug board before hardwiring.

          regards

          wilf


          --- In beam@yahoogroups.com, "Drew Brown" <sa_brown@b...> wrote:
          > I'm trying to grasp how uCore's work with non-modified servo's.
          from the circuits i've seen, each servo requires 3 inverters. The
          first 2 are like a standard biCore setting timing for the left/right
          rotation. The third is setting the ocilation pattern for the servo,
          and its ocilation is influenced by the first 2.
          >
          > attached are 3 schematics (all from the amazing mind of Wilf)
          > looking at:
          > 2servo4leg circuit, i see the ocilator for the servo is 0.1sec (R*C
          going into the 3rd inverter) C=0.1, R=1
          >
          > while on:
          > uServo4 the same part (R*C going into the 3rd inverter) is .044sec
          C=0.022, R=2
          >
          > and on:
          > 4servorwalker1 has 0.001sec ocilations (I might be looking at the
          wrong resistor for this one) C=0.001, R=1
          >
          > I see a variation from .001 to .1 for the servo ocilator
          >
          > My question is this:
          >    Does the ocilation time for the servo change with make and
          models of servo's?
          >    What is the ideal frequency for this?
          > Seems like there would be a standard as these are interchangable.
          >
          > I ask this because i got a couple of micro-mini servos off e-bay
          (9grams each) and would like to build a walker with them. (hopefully
          without ripping their guts out)
          >
          > stats for these:
          >   Size -in mm 22x11.2 x 22
          >
          >   Weight - 9 grams or 0.34 ounces
          >
          >   Speed sec/60 deg - 0.11
          >
          >   Torque kg-cm/oz-in 0.8/11
          >
          > thx as always,
          >
          > diving into the deep end,
          >
          > DrewB


          To unsubscribe from this group, send an email to:
          beam-unsubscribe@egroups.com



          Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.

          To unsubscribe from this group, send an email to:
          beam-unsubscribe@egroups.com



          Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.

          To unsubscribe from this group, send an email to:
          beam-unsubscribe@egroups.com



          Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
        • Drew Brown
          Wilf, I was looking over the uServo v5 circuit as i wait for my servos to arrive. You mentioned useing the spare inverters for a more positive turning
          Message 4 of 7 , Dec 23, 2002
          • 0 Attachment
            Wilf,
             
            I was looking over the uServo v5 circuit as i wait for my servos to arrive.
            You mentioned useing the spare inverters for a "more positive" turning circuit. (not sure exactly what you mean) but it got me thinking, and playing with my breadboard.
               From what i understand (which is usually very little), R6 and R8 set the limits S1's rotation by adjusting the pulse width. R10 and R11 do the same for S2.
              So one way to make this bot turn is to change amount of rotation of the rear servo. This could be done with a lower of value for R10 or R11 forceing the servo not rotate as far to the corresponding side. This would have to be done on a temporary basis though.
              Reading the stat sheet on the CD4066. It has a propagation time of 20 to 40 nsec. Thats way faster than the pulse width used to drive the servo. Could a CD4066 be used to switch resistors and change the pulse width? without noticable interference to the PWM?
               The attached schematic shows what i mean.
            In the natural state (both switches open) Pins 13 and 11 (74hc14 labled 2 in schematic) are high. So CTRL6 holds pins 8 and 9 closed (connected) and CTRL12 holds 10 and 11 closed. If 11 and 13 (on 2) are high then 10 and 12 (on2) are low, so 1 and 2 (as well as 3 and 4) are open (not connected). The ServoCore is running through the pots to the farthest right in the schematic. Close a switch (top one for example) and the 10uf cap loses its charge 13 goes low, 12 high, 1 and 2 close, 10 and 11 open. The circuit now uses the middle pot (set to a different value, giving the servo a different stop point. Switch  opens the 10uf recharges and the circuit resets.
              i'm not sure i got the trigger for the turn circuit set up right. I "barrowed" the same trigger for you used for reverse. If it works then i'll have to play withe the values to adjust how long the bot turns for after a "turn switch" closes.
             
            as always thx for the info
            DrewB
          Your message has been successfully submitted and would be delivered to recipients shortly.