1/160 - Echelle N

Le Forum consacré à l'Echelle N
 
AccueilAccueil  PortailPortail  ÉvènementsÉvènements  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
N'hésitez pas à consulter le calendrier et les événements du forum pour voir les manifestations près de chez vous !
Le Deal du moment : -20%
-20% Récupérateur à eau mural 300 ...
Voir le deal
79 €
-39%
Le deal à ne pas rater :
Pack Home Cinéma Magnat Monitor : Ampli DENON AVR-X2800H, Enceinte ...
1190 € 1950 €
Voir le deal

 

 Décodeur accessoire DCC/analogique universel

Aller en bas 
+3
jlb
pilate68
Trusty
7 participants
Aller à la page : Précédent  1, 2, 3, 4, 5, 6, 7  Suivant
AuteurMessage
Invité
Invité




Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeVen 19 Sep 2014, 21:31

Trusty a écrit:
Je cherche de l'info sur les servos en général depuis un moment, et je n'ai pas encore vu de servo -+60°, mais je ne doute pas que tu ais raison !

Regardes la: http://www.servocity.com/

C'est une première approche sur les servos de marque.

Pour notre loisir, à pas cher, c'est plutôt la :
http://www.hobbyking.com/hobbyking/store/__287__189__servos_parts-micro_servo_5_10g.html

Constates que tous les temps sont donnés pour 60°, ce qui est le déplacement "standard"
Revenir en haut Aller en bas
Trusty
Membre
Membre
Trusty


Masculin Age : 61
Localisation : Melun
Nombre de messages : 942
Date d'inscription : 08/10/2012

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeVen 19 Sep 2014, 22:07

Je viens de mettre en ligne sur SourceForge la dernière version de UAD. Elle tente d'éviter le problème de la position de démarrage d'un servo en forçant la position minimum. Donc sam, ce n'est plus la peine de modifier ton source, il doit fonctionner tel quel.
Pour arriver à cela, j'ai fait deux choses: retarder le moment d'initialiser chaque servo jusqu'au moment ou je connais la position minimum possible, c'est à dire dans le setup de l'accessoire, alors qu'avant j'initialisais le servo dans le setup du port, bien plus tôt. Ensuite, je demande au servo sa position courante pour que le premier mouvement après un ordre donné, Dcc ou bouton, ne parte plus forcément de 0.
Revenir en haut Aller en bas
http://www.lapajaparis.net
Trusty
Membre
Membre
Trusty


Masculin Age : 61
Localisation : Melun
Nombre de messages : 942
Date d'inscription : 08/10/2012

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeVen 19 Sep 2014, 22:10

JPGO a écrit:
Constates que tous les temps sont donnés pour 60°, ce qui est le déplacement "standard"

Je constate, je constate. Effectivement tout est donné pour 60°. Pourtant la librairie 'servo' livrée en standard avec l'environnement de développement considère prioritairement les servos comme bougeant de 0 à 180°. Extrait du mode d'emploi, tiré du site arduino.cc :

Code:
attach()

Description

Attach the Servo variable to a pin. Note that in Arduino 0016 and earlier, the Servo library supports only servos on only two pins: 9 and 10.
Syntax

servo.attach(pin)
servo.attach(pin, min, max)
Parameters

servo: a variable of type Servo
pin: the number of the pin that the servo is attached to
min (optional): the pulse width, in microseconds, corresponding to the minimum (0-degree) angle on the servo (defaults to 544)
max (optional): the pulse width, in microseconds, corresponding to the maximum (180-degree) angle on the servo (defaults to 2400)
Revenir en haut Aller en bas
http://www.lapajaparis.net
Trusty
Membre
Membre
Trusty


Masculin Age : 61
Localisation : Melun
Nombre de messages : 942
Date d'inscription : 08/10/2012

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeVen 19 Sep 2014, 22:15

D'autre part, sur ServoCity, page 'How do servo works ?', tout en bas, on voit bien que les servos, d'une manière générale, vont de 0 à 180°...
Revenir en haut Aller en bas
http://www.lapajaparis.net
sam95
Membre
Membre



Masculin Age : 43
Localisation : Ermont, 95
Nombre de messages : 1396
Date d'inscription : 29/11/2009

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeVen 19 Sep 2014, 23:51

Trusty a écrit:
Je viens de mettre en ligne sur SourceForge la dernière version de UAD. Elle tente d'éviter le problème de la position de démarrage d'un servo en forçant la position minimum. Donc sam, ce n'est plus la peine de modifier ton source, il doit fonctionner tel quel.
Pour arriver à cela, j'ai fait deux choses: retarder le moment d'initialiser chaque servo jusqu'au moment ou je connais la position minimum possible, c'est à dire dans le setup de l'accessoire, alors qu'avant j'initialisais le servo dans le setup du port, bien plus tôt. Ensuite, je demande au servo sa position courante pour que le premier mouvement après un ordre donné, Dcc ou bouton, ne parte plus forcément de 0.


Je testerais durant le week-end. Et j'ai même compris l'explication !!!! Merci patron.
Revenir en haut Aller en bas
http://sam95.fr/
Invité
Invité




Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeSam 20 Sep 2014, 08:33

Trusty a écrit:
Effectivement tout est donné pour 60°. Pourtant la librairie 'servo' livrée en standard avec l'environnement de développement considère prioritairement les servos comme bougeant de 0 à 180°. Extrait du mode d'emploi, tiré du site arduino.cc :

Code:
attach()

Description

Attach the Servo variable to a pin. Note that in Arduino 0016 and earlier, the Servo library supports only servos on only two pins: 9 and 10.
Syntax

servo.attach(pin)
servo.attach(pin, min, max)
Parameters

servo: a variable of type Servo
pin: the number of the pin that the servo is attached to
min (optional): the pulse width, in microseconds, corresponding to the minimum (0-degree) angle on the servo (defaults to 544)
max (optional): the pulse width, in microseconds, corresponding to the maximum (180-degree) angle on the servo (defaults to 2400)

Sort de tes bouquins et prend un servo dans tes mains: tu verras qu'il y a une butée mécanique qui empêche de dépasser les 60°. Les rares exceptions sont constituées par les servo propgrammables Hitec, conçus spécifiquement pour fonctionner sur 180° (dessin en bas à gauche)
http://www.servocity.com/html/hs-5645mg_digital_torque.html#.VB0d3hZvNRY

Revenir en haut Aller en bas
Trusty
Membre
Membre
Trusty


Masculin Age : 61
Localisation : Melun
Nombre de messages : 942
Date d'inscription : 08/10/2012

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeSam 20 Sep 2014, 10:49

Ho, on se calme camarade.
Je n'ai pas de bouquins sur le sujet, et je me contente trouver des infos sur le net. Si tu me dis, toi le spécialiste, que les servos vont de -60° à +60°, qui je suis pour constester (Who am I to disagree ? disais eurythmics...) ?
C'est vrai que je n'y connais pas grand chose, je n'ai jamais utilisé les servos avant ces derniers mois. Tout ce que je dis, c'est que depuis que je tente d'en faire bouger sur mon banc d'essai, je n'ai jamais, et je pèse mes mots, jamais, vu d'info me permettant de contredire la librairie servo qui veut les faire bouger de 0 à 180°. Et ce n'est pas le site que tu m'a donné en exemple, servocity, qui dit le contraire. Dans l'exemple que tu cites, il vont de -90 à +90. Dans celui que je t'ai donné plus haut, ils vont de 0 à 180°...
Revenir en haut Aller en bas
http://www.lapajaparis.net
Invité
Invité




Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeSam 20 Sep 2014, 12:06

Trusty a écrit:

C'est vrai que je n'y connais pas grand chose, je n'ai jamais utilisé les servos avant ces derniers mois. Tout ce que je dis, c'est que depuis que je tente d'en faire bouger sur mon banc d'essai, je n'ai jamais, et je pèse mes mots, jamais, vu d'info me permettant de contredire la librairie servo qui veut les faire bouger de 0 à 180°. Et ce n'est pas le site que tu m'a donné en exemple, servocity, qui dit le contraire. Dans l'exemple que tu cites, il vont de -90 à +90. Dans celui que je t'ai donné plus haut, ils vont de 0 à 180°...

Ok Ok, si la bibliothèque le dit.

En parallèle de discuter sur ce forum avec mon mini PC qui est sur l'établi, je suis en train de monter des servos sur une maquette d'hélico turbine :
Décodeur accessoire DCC/analogique universel - Page 5 20140910

Les servos de la tête rotor sont trois BLS252 de chez Futaba (http://www.servocity.com/html/bls-252_brushless_servo.html#.VB1QiBZvNRY) qui, malgré leur technologie (numériques, moteur brushless, ...) ne dépassent pas les 60° ... et ils sont pas les seuls.

Bizarre, non ?
Revenir en haut Aller en bas
pm1309
Membre
Membre
pm1309


Masculin Age : 69
Localisation : Marseille
Nombre de messages : 1558
Date d'inscription : 16/10/2010

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeSam 20 Sep 2014, 12:43

Sur le site dont tu parles, il est écrit vitesse angulaire pour 60° et non pas déplacement maxi.
Sur d'autres sites, la vitesse angulaire pour le même servo est donnée pour 45°.
Cela veut il dire que le déplacement max est de 90°?
Revenir en haut Aller en bas
Invité
Invité




Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeSam 20 Sep 2014, 13:26

pm1309 a écrit:

Sur d'autres sites, la vitesse angulaire pour le même servo est donnée pour 45°.
Cela veut il dire que le déplacement max est de 90°?

Je ne sais pas à quels sites tu fais référence. Si je suis intervenu sur ce post, c'est uniquement pour informer ceux d'entre nous qui voudrait utiliser des servos de cette caractéristique. C'est plutôt utile quand il faut mettre en place une tringle de commande et choisir le trou à utiliser dans le palonnier.

Pourquoi cette habitude de limitation à 60° des servos? Simplement parce qu'un servo rotatif n'assure pas un déplacement proportionnel à la commande puisque se déplaçant sur un arc de cercle. Au delà de 60°, le déplacement résultant devient infime. Sur les émetteurs radios "modernes", il y a d'ailleurs une fonction dite "exponentielle" qui permet de "re-linéariser" le déplacement des servos (sensible au centre et mou en fin de course sans cette fonction).

Donc, en dehors d'utilisation spéciales (trains rentrant particulièrement), les débattements à 60° sont très bien adaptés.
Revenir en haut Aller en bas
Trusty
Membre
Membre
Trusty


Masculin Age : 61
Localisation : Melun
Nombre de messages : 942
Date d'inscription : 08/10/2012

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeSam 20 Sep 2014, 13:51

En même temps, et au vu de ton dernier commentaire, je me demande si on parle de la même chose... Les servos généralement utilisés dans le modélisme ferroviaire sont des modèles simples, rarement à plus de cinq euros pièce. Des modèles plus sophistiqués peuvent être utilisés dans des cas particuliers, mais je serais curieux de savoir lesquels...
Le lien vers ton servo Futaba est explicite. On parle là d'un modèle à 140€, capable de tirer 10 à 12Kg... Ce n'est pas du tout le même usage, et je ne doute pas que là des limites se fassent sentir sur la capacité de mouvement ou la linéarité du mouvement.
On est loin du cas d'usage de ma bibliothèque ! Mais encore une fois, je ne demande qu'à être contredit... Oui enfin pas trop quand même !
Revenir en haut Aller en bas
http://www.lapajaparis.net
pm1309
Membre
Membre
pm1309


Masculin Age : 69
Localisation : Marseille
Nombre de messages : 1558
Date d'inscription : 16/10/2010

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeSam 20 Sep 2014, 14:28

Je rejoins tout à fait Trusty dans son analyse.
Un servo à 140E est hors de propos dans cette recherche!
Toutefois, il est vrai qu'entre un déplacement de 180° et un de 120°, il n'y a qu'environ 5% de différence de déplacement linéaire.
Après, tout est une question de longueur de bras de levier.
Revenir en haut Aller en bas
pm1309
Membre
Membre
pm1309


Masculin Age : 69
Localisation : Marseille
Nombre de messages : 1558
Date d'inscription : 16/10/2010

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeSam 20 Sep 2014, 14:32

Oups! Erreur, pas 5% de différence, mais 10%.
Revenir en haut Aller en bas
Invité
Invité




Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeSam 20 Sep 2014, 15:33

Trusty a écrit:
En même temps, et au vu de ton dernier commentaire, je me demande si on parle de la même chose... Les servos généralement utilisés dans le modélisme ferroviaire sont des modèles simples, rarement à plus de cinq euros pièce.

Merci de tes explications. Pour ta gouverne, les "servos qu'on utilise en modélisme ferroviaire" sont les mêmes que ceux qu'on utilise en aéromodélisme. Je les achète en général par lot de 10 car ils sont fragiles et qu'à ce prix la il est inutile d'essayer de les réparer.

http://www.hobbyking.com/hobbyking/store/__287__189__servos_parts-micro_servo_5_10g.html

Ils servent généralement à équiper ce qu'on appelle des "mousses" c'est à dire des avions en Elapor ou équivalent, comme les Gemini de Multiplex que tu peux voir au premier plan:

Décodeur accessoire DCC/analogique universel - Page 5 20140911

Evidemment, pour le DR400 du second plan, c'est pas le même matos ...

Et tout ces servos se déplacent sur 60°, c'est bête, non ?

Maintenant, c'est vrai que j'ai une plus faible expérience de l'aéromodélisme que du train miniature: je n'ai commencé l'aéromodélisme qu'en 1976 alors que le train en N, c'était 1970!
Revenir en haut Aller en bas
sam95
Membre
Membre



Masculin Age : 43
Localisation : Ermont, 95
Nombre de messages : 1396
Date d'inscription : 29/11/2009

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeSam 20 Sep 2014, 19:32

Ben moi j'ai vue cela pour le servo qui me concerne:
http://www.servodatabase.com/servo/towerpro/sg90

ils disent 180° de débattement, et quand je teste avec le code plus haut le servo bouge bien de 180° sans butée mécanique.

Revenir en haut Aller en bas
http://sam95.fr/
sam95
Membre
Membre



Masculin Age : 43
Localisation : Ermont, 95
Nombre de messages : 1396
Date d'inscription : 29/11/2009

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeLun 22 Sep 2014, 13:56

Trusty a écrit:
Salut

Je vais tenter ce soir d'ajouter un mouvement pendant le setup du servo à la valeur mini, en espérant qu'il n'ira pas chercher plus loin et ira directement où je lui demande...
Tu pourrais le faire toi-même pour voir si ça améliore les choses. Ajoutes dans le setup

Code:
SERVO(accessories, SERVO1)->MoveMinimum();

ou maximum, c''est toi qui voit après chaque ligne

Code:
SERVO(accessories, SERVO1)->Setup(arduino, L293D_PORT_SERVO1, 10, 160);

Ca devrait donner:
Code:
SERVO(accessories, SERVO1)->Setup(arduino, SERVO1, 10, 160);
SERVO(accessories, SERVO1)->MoveMinimum();
SERVO(accessories, SERVO2)->Setup(arduino, SERVO2, 10, 160);
SERVO(accessories, SERVO2)->MoveMinimum();
SERVO(accessories, SERVO3)->Setup(arduino, SERVO3, 10, 160);
SERVO(accessories, SERVO3)->MoveMinimum();
SERVO(accessories, SERVO4)->Setup(arduino, SERVO4, 10, 160);
SERVO(accessories, SERVO4)->MoveMinimum();
SERVO(accessories, SERVO5)->Setup(arduino, SERVO5, 10, 160);
SERVO(accessories, SERVO5)->MoveMinimum();
Si ça marche, je ferais la modif pour la prochaine version.

Salut Trusty, j'ai essayé cette modif mais du coup quand on initialise l'arduino, le servo part à sa position 0. Par Contre ensuite au premier ordre DCC il ne va pas chercher la position 0.

J'ai ensuite effacé ces modif de mon code et suis allé téléchargé la derniere version de tes fichiers. Je les ai décompressé et j'ai remplacé mes fichier par ces nouveau sauf mon .ino perso.
Lors de l'initialisation le servo ne va pas en position 0°; par contre au premier ordre DCC il y va.
Revenir en haut Aller en bas
http://sam95.fr/
sam95
Membre
Membre



Masculin Age : 43
Localisation : Ermont, 95
Nombre de messages : 1396
Date d'inscription : 29/11/2009

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeLun 22 Sep 2014, 14:33

Avec la nouvelle version présente sur sourceforge, si j'ai
Code:
SERVO(accessories, SERVO1)->Setup(arduino, SERVO1, 90, 100);
SERVO(accessories, SERVO1)->MoveMinimum();
SERVO(accessories, SERVO2)->Setup(arduino, SERVO2, 10, 160);
SERVO(accessories, SERVO2)->MoveMinimum();
SERVO(accessories, SERVO3)->Setup(arduino, SERVO3, 10, 160);
SERVO(accessories, SERVO3)->MoveMinimum();
SERVO(accessories, SERVO4)->Setup(arduino, SERVO4, 10, 160);
SERVO(accessories, SERVO4)->MoveMinimum();
SERVO(accessories, SERVO5)->Setup(arduino, SERVO5, 10, 160);
SERVO(accessories, SERVO5)->MoveMinimum();
le servo va à 0° à l'initialisation de l'arduino
Sans ce bout de code il va à 0° au premier ordre DCC

Revenir en haut Aller en bas
http://sam95.fr/
sam95
Membre
Membre



Masculin Age : 43
Localisation : Ermont, 95
Nombre de messages : 1396
Date d'inscription : 29/11/2009

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeLun 22 Sep 2014, 14:43

J'ai tenté en remplacant le 90, 100 par 0, 10
Etrangement le servo à une course de 0 à 90° avec les ordre DCC ! Et il va par défaut se positionner à 90°
Revenir en haut Aller en bas
http://sam95.fr/
Trusty
Membre
Membre
Trusty


Masculin Age : 61
Localisation : Melun
Nombre de messages : 942
Date d'inscription : 08/10/2012

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeLun 22 Sep 2014, 14:53

C'est bizarre ce que tu me décris, parce que j'ai justement ajouté dans l'initialisation le mouvement vers l'angle minimum, mais pas 0°... Et il y va dès l'initialisation.

Code:
void AccessoryServo::Setup(DriverServo *inpMotor, unsigned char inPort, int inMinimumPosition, int inMaximumPosition)
{
   Accessory::Setup(UNDEFINED);
   this->pDriver = inpMotor;
   this->port = inPort;
   this->minimumPosition = inMinimumPosition;
   this->maximumPosition = inMaximumPosition;
   this->prevState = UNDEFINED;
   this->pDriver->SetupByAccessory(this->port, this->minimumPosition);    //<<<<<<<<<<<<<< là !
   this->prevState = MINIMUM;
   this->currentPosition = this->minimumPosition; // this->pDriver->GetPosition(this->port);
   this->targetPosition = -1;
   this->targetSpeed = 0;
}

Il appelle ça, qui fait le mouvement vers une position de départ de fonctionnement, l'angle minimum:

Code:
void DriverPortServoArduino::SetupByAccessory(int inStartingPosition)
{
   servo.attach(GPIO_to_Arduino_pin(this->pin));
   servo.write(inStartingPosition);
}

Le premier mouvement Dcc doit se faire entre CurrentPosition fixé par le setup à la valeur mini et la valeur à atteindre. Sur la console, tu vois qu'il passe par 0 ?
Revenir en haut Aller en bas
http://www.lapajaparis.net
Trusty
Membre
Membre
Trusty


Masculin Age : 61
Localisation : Melun
Nombre de messages : 942
Date d'inscription : 08/10/2012

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeLun 22 Sep 2014, 14:56

Après, j'ai tablé sur le fait que c'était la fonction d'initialisation 'attach' qui provoquait le mouvement, et qu'en donnant immédiatement un ordre de déplacement, il interromprait tout de suite le mouvement dû au 'attach' et ferait le mien vers minimum à la place. C'est ce qui s'est passé pour moi, mais c'est peut être différent pour tes servos...
Revenir en haut Aller en bas
http://www.lapajaparis.net
Trusty
Membre
Membre
Trusty


Masculin Age : 61
Localisation : Melun
Nombre de messages : 942
Date d'inscription : 08/10/2012

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeLun 22 Sep 2014, 15:28

Après réflexion, je me suis souvenu que la position d'un servo entre 0 et 180° est proportionnelle au voltage sur la broche Arduino : 0v->0°, 2.5v->90°, 5v->180° . A un pouillième près. Lorsque l'on fait le 'attach', sans doute que la pin est à LOW, ou 0v, et donc le servo va à 0°...
Il faut que je voie si je peux fixer la valeur de la pin Arduino à la bonne valeur avant de faire le attach... A moins que ce soit lui qui fasse ce boulot là, auquel cas la seule solution serait de faire la positionnement moi-même, sans passer par la librairie. Pas simple.
Est ce que ce ne serait pas plus simple de s'arranger pour que le 0° fasse partie de l'intervalle de fonctionnement correct ? (je pense tout haut là...)
Revenir en haut Aller en bas
http://www.lapajaparis.net
Trusty
Membre
Membre
Trusty


Masculin Age : 61
Localisation : Melun
Nombre de messages : 942
Date d'inscription : 08/10/2012

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeLun 22 Sep 2014, 16:09

J'ai trouvé une piste sur un forum, qui lui fait le mouvement avant même le 'attach'! C'est surprenant, et pourtant, si le 'attach' utilise la position courante du servo qu'il est en train d'initialiser, alors ça parait moins étrange...

Tu peux tenter d'inverser les deux lignes. Tu passes de
Code:
void DriverPortServoArduino::SetupByAccessory(int inStartingPosition)
{
   servo.attach(GPIO_to_Arduino_pin(this->pin));
   servo.write(inStartingPosition);
}
à
Code:
void DriverPortServoArduino::SetupByAccessory(int inStartingPosition)
{
   servo.write(inStartingPosition);
   servo.attach(GPIO_to_Arduino_pin(this->pin));
}

dans DriverPortServoArduino.cpp . Si tu ne le vois pas avec l'environnement Arduino, utilise le bloc note !
Revenir en haut Aller en bas
http://www.lapajaparis.net
sam95
Membre
Membre



Masculin Age : 43
Localisation : Ermont, 95
Nombre de messages : 1396
Date d'inscription : 29/11/2009

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeLun 22 Sep 2014, 16:43

Trusty a écrit:
Après réflexion, je me suis souvenu que la position d'un servo entre 0 et 180° est proportionnelle au voltage sur la broche Arduino : 0v->0°, 2.5v->90°, 5v->180° . A un pouillième près. Lorsque l'on fait le 'attach', sans doute que la pin est à LOW, ou 0v, et donc le servo va à 0°...
Il faut que je voie si je peux fixer la valeur de la pin Arduino à la bonne valeur avant de faire le attach... A moins que ce soit lui qui fasse ce boulot là, auquel cas la seule solution serait de faire la positionnement moi-même, sans passer par la librairie. Pas simple.
Est ce que ce ne serait pas plus simple de s'arranger pour que le 0° fasse partie de l'intervalle de fonctionnement correct ? (je pense tout haut là...)

Je voulais aussi inclure le 0 dans l'intervalle, donc avec un débattement de 10° nécessaire pour une aiguille N, j'avais mis 0, 10. Et étrangement quand je changeait la position de l'aiguillage sur ma commande, le servo allait de 0 à 90°, sans respecté ce que demandé dans le code. Alors que l'intervalle 90, 100 marche parfaitement.
Revenir en haut Aller en bas
http://sam95.fr/
sam95
Membre
Membre



Masculin Age : 43
Localisation : Ermont, 95
Nombre de messages : 1396
Date d'inscription : 29/11/2009

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeLun 22 Sep 2014, 16:52

Trusty a écrit:
J'ai trouvé une piste sur un forum, qui lui fait le mouvement avant même le 'attach'! C'est surprenant, et pourtant, si le 'attach' utilise la position courante du servo qu'il est en train d'initialiser, alors ça parait moins étrange...

Tu peux tenter d'inverser les deux lignes. Tu passes de
Code:
void DriverPortServoArduino::SetupByAccessory(int inStartingPosition)
{
   servo.attach(GPIO_to_Arduino_pin(this->pin));
   servo.write(inStartingPosition);
}
à
Code:
void DriverPortServoArduino::SetupByAccessory(int inStartingPosition)
{
   servo.write(inStartingPosition);
   servo.attach(GPIO_to_Arduino_pin(this->pin));
}

dans DriverPortServoArduino.cpp . Si tu ne le vois pas avec l'environnement Arduino, utilise le bloc note !

Je n'ai pas du tout ce code dans DriverPortServoArduino.cpp
Moi j'ai cela:
Code:
/*************************************************************
project: <DCC Accessory Decoder>
author: <Thierry PARIS>
description: <Driver port for a servo on Arduino>
*************************************************************/

#include "UniversalAccessoryDecoder.h"

#ifndef NO_SERVO

DriverPortServoArduino::DriverPortServoArduino()
{
   this->pin = DP_INVALID;
}

void DriverPortServoArduino::Setup(GPIO_pin_t inPin)
{
   CHECKPIN(inPin, "DriverPortServoArduino::Setup");
   this->pin = inPin;

   servo.attach(GPIO_to_Arduino_pin(this->pin));
}

void DriverPortServoArduino::MovePosition(unsigned long inDuration, int inEndPosition)
{
   CHECKPIN(this->pin, "DriverPortServoArduino::MovePosition");
#ifdef DEBUG_MODE
   Serial.print(F(" DriverPortServoArduino "));
   Serial.print(GPIO_to_Arduino_pin(this->pin));
   Serial.print(F(" MovePosition() "));
   if (inDuration != -1)
   {
      Serial.print(F("for "));
      Serial.print(inDuration);
      Serial.print(F("ms "));
   }
   Serial.print(F("to angle "));
   Serial.println(inEndPosition);
#endif
   //this->state = PORT_LEFT;
   servo.write(inEndPosition);
   //if (inDuration > 0)
   //   delay(inDuration);
}

#endif

Du coup est ce que tes dernières modifs n'ont pas été bien mise en ligne sur sourceforge ?
Revenir en haut Aller en bas
http://sam95.fr/
Trusty
Membre
Membre
Trusty


Masculin Age : 61
Localisation : Melun
Nombre de messages : 942
Date d'inscription : 08/10/2012

Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitimeLun 22 Sep 2014, 18:09

Oui, mais quel lien as tu utilisé ? Pour être sûr, je te donnes le bon : sourceforge 3.2.

Et en construisant le lien, je me rend compte que le fichier désigné comme la dernière version n'est pas le bon! Je débute sur sourceforge... Embarassed


Dernière édition par Trusty le Lun 22 Sep 2014, 20:16, édité 2 fois
Revenir en haut Aller en bas
http://www.lapajaparis.net
Contenu sponsorisé





Décodeur accessoire DCC/analogique universel - Page 5 Empty
MessageSujet: Re: Décodeur accessoire DCC/analogique universel   Décodeur accessoire DCC/analogique universel - Page 5 Icon_minitime

Revenir en haut Aller en bas
 
Décodeur accessoire DCC/analogique universel
Revenir en haut 
Page 5 sur 7Aller à la page : Précédent  1, 2, 3, 4, 5, 6, 7  Suivant
 Sujets similaires
-
» Bloc-système universel : Intégral
» [Digikeis] - Décodeur d'accessoire DK50018
» Projet : Décodeur d'accessoires universel DCC
» Test du nouveau décodeur d'accessoire DIGIKEIS DK 50 018
» Produit presque universel

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
1/160 - Echelle N :: Modèles réduits à l'echelle N :: Electricité / Electronique-
Sauter vers: