Differences between revisions 14 and 15
Revision 14 as of 2010-02-18 23:56:00
Size: 2305
Editor: BobAdamson
Comment: specify decimal numbering
Revision 15 as of 2010-02-21 15:45:24
Size: 2416
Editor: BobAdamson
Comment:
Deletions are marked like this. Additions are marked like this.
Line 25: Line 25:
  *PWM duty lengths
  #3= 0.51 ms
  #4= 0.64 ms

  #5= 0.76 ms
  #6= 0.89 ms
  #7= 1.0 ms
  #8= 1.14 ms
         #9= 1.28 ms
        #10= 1.4 ms

        #11= 1.52 ms (closest to servo center)
        #12= 1.66 ms

        #13= 1.78 ms
        #14= 1.90 ms
        #15= 2.04 ms
        #16= 2.16 ms

        #17= 2.3 ms
  *PWM duty lengths <<BR>>
  #3= 0.51 ms <<BR>>
  #4= 0.64 ms <<BR>>

  #5= 0.76 ms <<BR>>
  #6= 0.89 ms <<BR>>
  #7= 1.0 ms <<BR>>
  #8= 1.14 ms <<BR>>
         #9= 1.28 ms <<BR>>
        #10= 1.4 ms <<BR>>

        #11= 1.52 ms (closest to servo center) <<BR>>
        #12= 1.66 ms <<BR>>

        #13= 1.78 ms <<BR>>
        #14= 1.90 ms <<BR>>
        #15= 2.04 ms <<BR>>
        #16= 2.16 ms <<BR>>

        #17= 2.3 ms <<BR>>

The control trimming and centering presents a number of problems for the LURC, as the serial control allows us to push the servos past soft-limits imposed by standard remote control transmitters. This means we need to do sanity checking on values sent, both in the car (on the avr) and on the desktop. The in-car sanity checking should only check if the value is outside the physical capabilities of the servo, while the desktop software should check the values are within 'useful' ranges. As such, the in-car checking does not need to be varied and can be hard-coded in, while the desktop ranges need to be adjustable so that the controls can be trimmed and centered.

The physical capability boundaries for each servo are as follows, given in hex values. Even though the servos are very similar or identical, the values differ due to different timer modes:

  • Servo 0 (webcam tilt)
    • Left:
    • Right:
  • Servo 1 (steering)
    • Left:0x35

    • Right:0xF0

  • Servo 2 (speed control)
    • Lower:0x33

    • Upper:0xfb

  • Servo 3: (webcam pan)
    • Left:
    • Right:

The 'useful' values for each servo are subject to change because of adjustments to the car and parts. Here are some one-off values to give an idea of what they should be close to:

  • Servo 0 (webcam tilt)
    • Down:
    • Level:
    • Up:
    • PWM duty lengths

      • #3= 0.51 ms
        #4= 0.64 ms
        #5= 0.76 ms
        #6= 0.89 ms
        #7= 1.0 ms
        #8= 1.14 ms
        #9= 1.28 ms

      • #10= 1.4 ms
        #11= 1.52 ms (closest to servo center)
        #12= 1.66 ms
        #13= 1.78 ms
        #14= 1.90 ms
        #15= 2.04 ms
        #16= 2.16 ms
        #17= 2.3 ms

* Servo 1 (steering)

  • Left:0x7b

  • Center: 0x92
  • Right:0xb3

  • Servo 2 (speed control) - note lower values are faster. Also, these boundaries will never change because it's an electronic controller.
    • Reverse:0xb8

    • Neutral Range:0x98 to 0x9c

    • Stop: to stop, simply send a signal for the opposite direction, braking strength is variable. You can always go forward from reverse, but to reverse you have to go from neutral with the car stationary (this allows the controller to tell the difference between braking and reversing)
    • Forward:0x79

  • Servo 3: (webcam pan)
    • Left:
    • Right: