Auteur Sujet: Comment piloter 23 servo moteurs pour aiguillages avec des cartes Arduino  (Lu 19848 fois)

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Bonsoir

Citer
Je veux dire qu'il n'y a pas de code sur le fil pour piloter un servo c'est du 0-5V.

Bah si désolé c est une forme de codage car c est du pwm avec variation du rapport cyclique entre deux bornes de timing
pas du tout ou rien

Cordialement

Bien sur qu'il y a de l'information sur le fil, sinon ce serait de magie. Mais c'est une information analogique et non numérique.

Il faut voir que si il y a une perturbation à un instant, il y aura un décalage du servo moteur juste à cet instant. Si il est en butée, ça passera inaperçu.
C'est sans rapport avec la conséquence d'un code erroné en I2C qui peut rendre toute la séquence suivante inopérante voire catastrophique si il s'agit de la configuration des registres.
Cordialement

Pierre59

  • Sr. Member
  • ****
  • Messages: 346
    • Voir le profil
Re : Comment piloter 23 servo moteurs pour aiguillages avec des cartes Arduino
« Réponse #16 le: novembre 11, 2020, 09:43:13 am »
Bonjour

Bon je pense que pour aborder un tel projet avec un (ou des) Arduino il faut l'aborder par le haut. Il faut commencer par compter le nombre de fils qu'il faudrait connecter à l'Arduino :
- 23 fils pour les servos
- 2x23=46 pour les leds du TCO
- 23 ou 46 pour les boutons du TCO

C'est loin de tenir sur un Arduino (même un Mega), on peut multiplier les Arduinos ou essayer de limiter le nombre de fils connectés.

Pour limiter le nombre de fils on a deux solutions (entre autres) :
- utiliser des "expandeurs" qui augmentent le nombre de fils connectables. Le PCA9685 en est un, il est utilisable pour les servos mais aussi pour les leds. Il existe aussi des expandeurs pour les fils en entrée comme pour les boutons du TCO. Ces expandeurs se connectent en I2C avec seulement deux fils sur l'Arduino

- utiliser un TCO virtuel sur un PC, une tablette, un écran I2C (pouvant être tactile), … cela nécessite que zéro fils (utilisation du câble USB) ou deux fils (utilisation de l'I2C) et supprime tous les fils du TCO

Pierre

simontpellier

  • Full Member
  • ***
  • Messages: 115
    • Voir le profil
Re : Comment piloter 23 servo moteurs pour aiguillages avec des cartes Arduino
« Réponse #17 le: novembre 12, 2020, 11:08:28 am »
Bonjour Will,

je vais tenter de vous aider à répondre à ce souci tout à fait compréhensible :
Citer
Concrètement est ce que quelqu'un peut vraiment m'aider en me disant ce que je peux et dois faire pour piloter dans un premier temps mes aiguillages à partir d'un TCO tout simple avec le dessin des aiguilles , des poussoirs et des leds pour signaler leur position ?  C'est peut être basique pour vous mais comprenez que pour moi c'est un monde nouveau et j'ai regardé sur ce site mais je n'ai pas trouvé un sujet où l'on parle de choses simples pour ceux qui ne connaissent rien .... sans parler obligatoirement de CAN de satellites , de PWN ,de BUS et tous ces termes inconnus à ce jour.
Donc si une personne ( ou plusieurs ) accepte mon ignorance en se portant à mon niveau afin que je puisse mettre en oeuvre quelque chose de correct pour mon réseau  alors d'avance un grand merci pour son aide.
will   

Ce que vous devez d'abord comprendre, c'est que 23 aiguillages c'est déjà énorme et va IMPOSER de l'apprentissage, du matériel, du code, des essais et que la question du TCO n'en est qu'une parmi les autres.

Donc ce qui pourrait vous aider vraiment à mon avis serait de procéder très progressivement :
- le réseau, pas trop de problème à se faire plaisir à le construire en anticipation de tout ce qu'il faudra développer ensuite pour le faire fonctionner à son idée
(idée qui évoluera, vous verrez...) si vous veillez à ce qu'il soit très évolutif lui aussi en ce qui concerne les possibilités de découpage en zones électriques.
- le contrôle commande... là il faut y aller doucement.
 Avec un seul Arduino, pour commencer c'est vraiment préférable !, vous pourrez tout de même et facilement commander deux ou trois moteurs par PWM, à vous de voir comment vous les enverrez sur les rails et sur quelles parties du réseau pour commencer.
Vous pourrez également manœuvrer quelques aiguilles (par solénoïdes au début avant de peut être passer à des servomoteurs ?) et donc brancher sur votre Arduino les poussoirs et les leds du TCO si vous partez sur un pseudo TCO physique, en provisoire.
Vous devrez ensuite regarder les solutions permettant d'étendre les possibilités et ça sera forcément un mix entre multiplier les Arduino (ou autres) et utiliser des expandeurs, il y en a de toutes sortes qui démultiplieront tout ce que vous voudrez : les PWM , les ports digitaux, les ports analogiques. Avec leur protocole de communication propriétaire que vous devrez accepter avec leurs avantages et ...inconvénients auxquels vous devrez remédier.
Et là vous en arriverez à vous poser la question d'un bus CAN et vous serez en plein dans le truc... c'est obligé !
Et je n'ai pas parlé des capteurs.
Ni du code car sans chef d'orchestre pas de musique !

C'est un chemin, quasi initiatique, absolument incontournable (au sens propre).
Mais "n'ayez pas peur" car ça n'était pas mon but en vous décrivant ce processus. Retenez pour l'instant qu'avec un seul Arduino on peut déjà faire beaucoup et très simplement commencer à faire vivre votre réseau.

Bon courage (et retenez aussi que vous avez Locoduino)

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Comment piloter 23 servo moteurs pour aiguillages avec des cartes Arduino
« Réponse #18 le: novembre 12, 2020, 07:10:45 pm »
Bonsoir,

je pense qu'effectivement vous ne pouvez pas faire l'économie de vous familiariser avec l'environnement Arduino et son vocabulaire car vous devrez construire votre projet à partir des briques que vous trouverez sur Locoduino et ailleurs.

Locoduino a pris l'option du CAN pour gérer les réseaux étendus.
Actuellement cette architecture est représentée par le Locoduinodrome avec la série d'article "La carte Satellite V1" qui gère les servos des aiguillages.
https://www.locoduino.org/spip.php?article249
Vous souhaitez une solution plus simple pour votre projet qui est néanmoins étendu.
 
Vu le nombre d'aiguillages que vous prévoyez, vous pouvez expérimenter :

1. le PCF9574 avec un clavier en matrice qui gèrera 16 boutons à impulsion (donc 48 avec trois exemplaires)
2. le PCA9685 qui vous permettra de gérer 16 servos  (donc 32 avec deux exemplaires)
  et un autre pour gérer 16 LED  (donc 32 avec deux exemplaires et 64 avec quatre exemplaires)
  Donc six PCA9685 pour votre projet, or on peut en chainer 62.

L'I2C est très sensible aux parasites, et je ne conseillerais pas de dépasser 50 cm. C'est donc le signal des servos qu'il faudra transporter. A vérifier donc que les servos choisis supportent la distance.

Vous trouverez ci-après les schémas de câblage pour les trois cas d'emploi. LED, SERVOS et KEYPAD (schemas.zip)
Les liens pour le matériel. (eBay.zip)
Les liens vers les sites donnant des exemples. Dont les github des bibliothèques (voir également les exemples fournis avec les bibliothèques) (liens.zip)
Certains ne vous seront pas immédiatement utiles.
Les exemples des sites signalés. (sketches.zip)

Vous aurez besoin de mettre en application "comment installer une bibliothèque" du site éditorial.
https://www.locoduino.org/spip.php?article71

Bien noter que la vocation de Locoduino n'est pas d'écrire des programmes pour ses lecteurs mais bien de les aider sur une base concrète.

Bon courage.
« Modifié: novembre 12, 2020, 07:14:58 pm par msport »
Cordialement

will6454

  • Newbie
  • *
  • Messages: 5
    • Voir le profil
Re : Comment piloter 23 servo moteurs pour aiguillages avec des cartes Arduino
« Réponse #19 le: novembre 13, 2020, 09:27:48 am »
Bonjour,
Un grand merci à tous pour votre aide , je vais suivre vos conseils , me familiariser petit à petit avec l'environnement Arduino , j'ai déjà plus de connaissances qu'à mon arrivée sur ce forum .....
Je vais progresser lentement mais surement , j'ai encore beaucoup de travail de structure sur le réseau et je ne manquerai pas de revenir vers vous pour un complément d'informations en ce qui concerne la gestion .
A bientôt
Will