Debattement d'un servo.

Questions de programmation / Offset FSUIPC et IOCP

Debattement d'un servo.

Messagede arcc » Ven 2 Oct 2015 18:27

Bonsoir

Sur une carte USB Servo j'ai deux servos (pour l'affichage de la pression ) de mon Twin.
les servos répondent bien mais en butée basse, ils font du bruit (grésillement)
J'ai remarqué avec "SIOC Monitor" que si je réduit la plage de débattement, j'arrive à supprimer ce grésillement.
Dans mon fichier Sioc, j'ai donc ecris :
Var 600, name Hyd_Main_svo, Link USB_SERVOS, Output 1, PosL 151, PosC 385, PosR 920

Mais le débattement reste comme avant du genre de 1 à 1023.

Merci pour votre aide.

A+
Christian
Un ancien sous-marinier qui a pris de la hauteur.
Avatar de l’utilisateur
arcc
 
Messages: 715
Inscription: 16/12/13
Localisation: La ou fini la terre (Finistere)

Re: Debattement d'un servo.

Messagede fab » Ven 2 Oct 2015 22:40

Bonjour,

Le grésillement d'un servo c'est pas bon peurefrayé

Les signaux produit par les cartes électronique ne respectent pas toujours la norme, ça passe sur certains modèles, sur d'autres, ça coince, ça chauffe, c'est pas bien !

Il faut toujours faire les réglages bas et haut en respectant les butées mécaniques, qui peuvent être à l'extérieur du servo, si non, à la longue, c'est le servo qui fume !

Donc, ce que tu fait est très bien, applaublanc le déplacement sera de 1024 positions, mais la couse du servo sera réduite en rapport du code SIOC.

Fabien
Avatar de l’utilisateur
fab
 
Messages: 4414
Inscription: 26/12/12
Localisation: Roubaix

Re: Debattement d'un servo.

Messagede arcc » Ven 2 Oct 2015 22:46

Merci pour ta reponse. Par contre meme avec le debattement que j'ai mis dans le fichier Sioc le servo va quand meme en butée. D'ailleurs il viens de rendre l'ame. Il est resté en butée et il à grillé. Bon je vais le changer' mais reste le probleme de debatement.
A+
Christian
Un ancien sous-marinier qui a pris de la hauteur.
Avatar de l’utilisateur
arcc
 
Messages: 715
Inscription: 16/12/13
Localisation: La ou fini la terre (Finistere)

Re: Debattement d'un servo.

Messagede fab » Sam 3 Oct 2015 08:16

arcc a écrit:D'ailleurs il viens de rendre l'ame.


CQFD furieuxfumée

arcc a écrit: mais reste le probleme de debatement.


Oui, c'est pas normal ça. Les posL, posC et poste R sont bien là pour quelque chose gratgrat
Je n'utilise pas les cartes OC pour mes jauges. En pratique j'ai pas testé.
Logiquement tu peux envoyer les valeurs que tu veux au servo, et SIOC devrait limiter ?

Attendons un autre avis gratgrat
Avatar de l’utilisateur
fab
 
Messages: 4414
Inscription: 26/12/12
Localisation: Roubaix

Re: Debattement d'un servo.

Messagede fab » Sam 3 Oct 2015 08:21

On se plante murrouge regarde ici :http://www.aircockpit.com/viewtopic.php?f=116&t=1452&p=12758&hilit=servo+posl#p12760

En pratique, c'est toi qui fera le travail de limitation .

Sur mes cartes FDbus, j'ai installé cette fonction de calcul de plage, c'est pour cela que je me suis planté !

Fabien
Avatar de l’utilisateur
fab
 
Messages: 4414
Inscription: 26/12/12
Localisation: Roubaix

Re: Debattement d'un servo.

Messagede pierre01 » Sam 3 Oct 2015 09:42

Bonjour,

Hé oui, PosL, PosC et PosR ne limitent pas la course mais adaptent une valeur lue par SIOC à la valeur d'un offset.
Je l'utilise par Ex pour les potentiomètres qui ne vont pas (jamais) en bout de course mécaniquement.
De cette manière une valeur mini du potentiomètre sera comprise comme "0" par SIOC et une valeur maxi du potentiomètre comme la valeur "255" par SIOC. On rétablit de cette manière une course "virtuelle" pleine échelle du potentiomètre.

Je n'utilise pas non plus la course complète des servos, à titre d'exemple, 2 routines que j'ai écrite :

- Fuel Flow moteur 1 :

Code: Tout sélectionner
//
// ££45 Fuel flow moteur 1
//
// Offset $0918 et $09B0 donne fuel flow en Pound/Heure (donc un poids/H)
// 1 pound = 0,454 kg     1 kg = 1,39 litres de 100LL (D=0,72)   &  1 gallon = 3,78 litres  :
// Coefficeint de conversion Pounds -> gallond : 0,454 * 1,39 / 3,78 = 0,166947
// Graduations de 3 à 30 (gallon / H)
// Servo : de 160 à 840 -->  a = 25,185  b = 84,445
//

Var 4130, name fs_fuel_flow1, link FSUIPC_IN, Offset $0918, Length 8, Numbers 3
// Var 4130, name fs_fuel_flow1, link IOCP, Offset 0135    // ne marche pas mieux !
{
  &val_FF1 = &fs_fuel_flow1 / 1000      // Offset FSUIPC
  // &val_FF1 = &fs_fuel_flow1 / 10     // Offset IOCP
  L0 = &val_FF1 * 0.1669               // Conversion Pound en Gallon / Heure
  L1 = L0 * 25.189                   // "a" pente servo (y = ax)
  L2 = L1 + 84.445                   // "b" (y = ax + b)
  L2 = LIMIT 150 950 0                // Limite amplitude servo de 150 à 950
  &serv_FF1 = L2                   // Envoie valeur au servo
}
Var 4131, name val_FF1


- Un peu plus compliqué : "Prop Sync" :

Code: Tout sélectionner
//
//      ££43 PROP SYNC   (Synchro hélices) PS = Prop Sync
//
// Index indiquant si RPM hélice 1 différent de RPM hélice 2
// Utilise un moteur CC récupéré sur une imprimante -> réf. : RS-385PH-14180 - RD550914
//
// Variables : &RPM_mot_1 (trs/mn) - &RPM_mot_2 (trs/mn) - &RPM_mot_1_2 (=1 si au moins 1 moteur tourne)
// Et &diff_RPM_1_2 (calculé dans routine ££8 en +/- Tr/mn)
// Sens de rotation : Anti horaire (CCW) si RPM_mot_2 < RPM_mot_1 et inversement(CW)
// Postulat :   X = &diff_RPM_1_2   : Différence de rotation des moteurs en tr/mn   de 0 à 200
//              Y = &mot_PS         : Valeur à envoyer au PWM du moteur de l'index  de 5 à 30
//              a = &mot_PS_a       : Valeur à partir de laquelle le moteur démarre soit 5
//              b = &mot_PS_b       : Valeur maxi PWM soit 30 -> le moteur tourne à la vitesse max
//              c = &mot_PS_c       : Valeur maxi de &diff_RPM_1_2 soit 200
//
// Equation à résoudre : Y = ((b-a/c)*X) + a
//

Var 4115, name prop_sync, link subrutine
{
  IF &RPM_mot_1_2 = 1               // Si au moins 1 moteur tourne
  {
    L0 = ABS &diff_RPM_1_2          // valeur absolue de "X" (diff. rotation hélices)
    L1 = &mot_PS_b - &mot_PS_a      // Valeur (b - a)
    L2 = L1 / &mot_PS_c             // (b - a) / c
    L1 = L2 * L0                    // (b - a) / c * X
    &mot_PS = L1 + &mot_PS_a        // (((b - a) / c) * X) + a : Valeur à envoyer au moteur PS
    &mot_PS = LIMIT &mot_PS_a &mot_PS_b 0          // Limite commande moteur : min 5, max 30
    if &diff_RPM_1_2 < 0            // Si RPM_2 < RPM_1 --> CCW
    {
      &MCC_prop_sync = 128 + &mot_PS
    }
    else
    {
      if &diff_RPM_1_2 > 0          // Si RPM_2 > RPM_1 --> CW
      {
        &MCC_prop_sync = &mot_PS
      }
    }
  }
  ELSE                              // Sinon &RPM_mot_1_2 = 0 (M1 et M2 à l'arrêt)
  {
    &MCC_prop_sync = 0              // Arrêt moteur PS
  }
}
Var 4117, name mot_PS, value 0      // Valeur à envoyer au moteur_CC de PS

Var 4119, name mot_PS_a, value 5    // Coefficient "a" : Valeur min moteur PS
Var 4120, name mot_PS_b, value 25   // Coefficient "b" : Valeur max moteur PS
Var 4121, name mot_PS_c, value 200  // Coefficient "c" : Valeur max diff. rotation hélices
Dernière édition par pierre01 le Sam 3 Oct 2015 13:11, édité 1 fois.
A+
Pierre.
Avatar de l’utilisateur
pierre01
 
Messages: 1768
Inscription: 19/04/09
Localisation: Vers Vesoul (Haute Saône)

Re: Debattement d'un servo.

Messagede fab » Sam 3 Oct 2015 10:00

Merci Pierre !

C'est en effet par ce genre de calcul qu'il faut passer !

Donc pas de miracle, Christian, au boulot !
Note toute l'utilité de la fonction "LIMIT"
Avatar de l’utilisateur
fab
 
Messages: 4414
Inscription: 26/12/12
Localisation: Roubaix

Re: Debattement d'un servo.

Messagede pierre01 » Sam 3 Oct 2015 10:30

Pour le calcul des fonctions (Y = aX + b), l'explication est ici : http://www.baron58.com/Servo_Calc.htm
A+
Pierre.
Avatar de l’utilisateur
pierre01
 
Messages: 1768
Inscription: 19/04/09
Localisation: Vers Vesoul (Haute Saône)

Re: Debattement d'un servo.

Messagede tabar57 » Sam 3 Oct 2015 11:43

Bonjour Pierre,

Question à 2 balles ? je te préviens j'ai les 2 balles lolaffiche

Comment pilotes tu ton moteur pour le prop sync, avec une carte OC dc motor ou avec un montage comme pour le trim ?

Cordialement

Bernard
Mon blog de construction : http://tabar57.blog4ever.com
Hémicockpit de Beechcraft B200 ( de FlightOne ) P3DV4.5 et 2 PC en réseau W7 64 bits et W10, cartes OC et FDbus, vibreur et yoke rdf de BFFsimulation, météo réelle asp4
Avatar de l’utilisateur
tabar57
 
Messages: 3651
Inscription: 29/12/10
Localisation: Dans ma cabine en Lorraine

Re: Debattement d'un servo.

Messagede pierre01 » Sam 3 Oct 2015 13:17

Ne tire pas Bernard, j'ai "les mains en l'air" ... rigolus

Pour la commande du moteur CC du "prop sync" on utilise une sortie PWM de la carte DCMotors+ de OC !
Il est alimenté en +12V et fonctionne entre les valeurs "5" et "25" envoyées au PWM.
A la valeur "5", il tourne très doucement, en dessous il s'arrête.
Au delà de "25" la rotation est trop rapide pour voir le sens de rotation.
A+
Pierre.
Avatar de l’utilisateur
pierre01
 
Messages: 1768
Inscription: 19/04/09
Localisation: Vers Vesoul (Haute Saône)

Suivante

Retourner vers Programmation Sioc





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités