Thursday, November 28, 2013

The 1.2  Application

It's not perfect yet but it's much better than the previous one.

Improvements:
- 1KHz frequency loop.
- Acceleration and deceleration adjustable.
- Symmetry adjust.- other improvements.

I don't play with it for a long time, but if I remember for optimal performance first try to adjust things in rate mode in order to have the less possible drift. You can use the midpoint parameter if you have built a program box or adjust it mechanically.
Adjust deceleration to a value you like. You will get a bounce in stops most in one direction. Try to reduce it with the symmetry parameter. If you don't have good results reduce deceleration.

If you are good in programming and improve it please let me know!

 Download it!


Parameters you can now adjust with transmitter:
Direction - LED - 1 blue, [1..2] red
EndPoint1- LED - 2 blue, 1 red
EndPoint2- LED - 3 blue, 1 red
RudderSpeed - LED - 4 blue, [1..8] red
Acceleration- LED - 5 blue, [1..8] red
Deceleration- LED - 6 blue, [1..8] red
Symmetry - LED - 7 blue, [1..4] red

Symmetry values:
    1 - automatic
    2 - side 1
    3 - side 2
    4 - disabled

New eeprom parameters structure:

 /* Configuration */
typedef struct _config_
{
    uint8_t version;
    uint8_t mark[3];
    uint16_t servo_freq;    // [50..333]
    uint16_t hi_endpoint;
    uint16_t low_endpoint;
    uint16_t midpoint;    
    uint8_t reverse;        // [0..1]
    uint8_t rudder_deadband;// [1..100]
    uint8_t speed;          // [1..8]
    uint8_t acceleration;   // [1..8]
    uint8_t deceleration;   // [1..8]
    uint8_t symmetry_dir;   // [1..4]
    uint8_t symmetry_value; // [1..128]
    uint8_t feed_forward;   // [1..128]
    uint8_t servo_speed;    // [1..140] ms
    uint8_t kP;             // [1..128]
    uint8_t kI;             // [1..128]
    uint8_t kD;             // [1..128]
} config_t;


2 comments: