Auteur Sujet: TCO avec Processing  (Lu 26541 fois)

plume

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
TCO avec Processing
« le: décembre 26, 2017, 08:50:45 pm »
Bonjour,

Dans le cadre de l'exploitation du réseau du club de l'UAICF-Nevers-Vauzelles, nous avions besoin de plusieurs pupitres en fonction de la configuration que l'on peut mettre en oeuvre. Le réseau peut être commandé en analogique ou digital. Ceci devenait très compliqué sur un plan électrique afin d'envisager les différentes possibilités. On a simplifier un peu cela avec un pupitre et 3 câbles : prise 220 Volts pour les différentes alimentations, un câble pour le signal DCC et un câble pour le protocole XpressNet (compatible Roco, Lenz, Viessmann, ...).

Nous souhaitions visualiser la position des aiguillages et commander les aiguillages via un bouton.
On a testé l'utilisation d'un écran tactile en développant une application avec "Processing", petit frère de l'Arduino pour créer des applications. On n'utilise pas de souris et on appuie sur des boutons sous forme de cercles de couleurs. Le tracé des voies est affiché à partir d'un fichier image png ou jpg. On peut paramétrer les couleurs des voies, des boutons et passer d'une partie du réseau à une autre par une simple touche.

Le TCO, « Tableau de Commande Optique » permet de visualiser la position des aiguillages ou l’état des accessoires et de les commander en DCC. Il peut aussi être adapté pour fonctionner en analogique. Le projet est évolutif et se compose de plusieurs briques optionnelles.

Le pupitre TCO met en œuvre :

- Un Écran LCD ;
- Un ordinateur ou Raspberry Pi 3 pour piloter l’écran LCD, pour traiter les informations et pour servir de routeur Wifi ;
- Un Décodeur d’accessoires fonctionnant avec un Arduino pour recevoir les commandes des accessoires ;
- Une Souris XpressNet fonctionnant avec un Arduino pour envoyer les commandes à la centrale DCC : cette souris est optionnelle si on ne veut pas piloter d’accessoires via l’écran tactile ou le logiciel ;
- Une Application compatible sous Windows, Macintosh et Linux réalisée avec le logiciel gratuit « Processing » ;
- Un Clavier 16 touches fonctionnant avec un Arduino (reconnu comme clavier USB par l'ordinateur) pour disposer de raccourcis pour accéder rapidement à des affichages du TCO ;
- 2 Souris XpressNet avec des Arduino Méga ont été ajoutées au pupitre pour piloter les locomotives.

Hormis les 3 premiers éléments (écran, ordinateur et décodeur), les autres sont optionnels.
Le Raspberry Pi 3 peut être configuré en routeur ce qui évite d'avoir à proximité une box ou un routeur pour utiliser des applications sur tablette ou Smartphone (Rocrail, JMRI, Z21, ...). Tout est dans le pupitre qui est en cours d'assemblage et de câblage.


Les fichiers source des programmes et une présentation détaillée sont disponibles sur le site : http://modelisme58.free.fr/index.php/arduino.html

Pour les souris XpressNet réalisées avec un Arduino Méga, les librairies utilisées sont issues du site : http://sourceforge.net/projects/pgahtow/files/

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3044
  • 100% Arduino et N
    • Voir le profil
Re : TCO avec Processing
« Réponse #1 le: décembre 27, 2017, 12:35:35 pm »
Bonjour Plume,

C'est un beau projet, fait en club ! Bravo.
Et merci de partager cette réalisation et plein d'autres.

Bonne fêtes
Dominique
Cordialement,
Dominique

chris_bzg

  • Sr. Member
  • ****
  • Messages: 319
    • Voir le profil
Re : TCO avec Processing
« Réponse #2 le: janvier 05, 2018, 05:06:26 pm »
Pierre59 vient de publier aujourd'hui un article http://locoduino.org/spip.php?article222 pour fabriquer aisément un TCO en Processing sur l'écran d'ordinateur et ce TCO interagit avec la souris pour manœuvrer les aiguilles.

En m'inspirant de cet article, j'ai redessiné le TCO de mon réseau et j'ai trouvé que son programme est très facile à utiliser. Il suffit de modifier le nombre de lignes et de colonnes dans le premier onglet, de modifier le titre dans le setup (éventuellement) et enfin de construire son TCO ligne par ligne dans l'onglet TCO.

Mon TCO fait 11 lignes de 21 colonnes, et contient 1 TJD et 7 aiguilles. Pierre59 a aussi fourni un programme qui aide à construire le TCO, donc grâce à cet excellent article, la construction d'un TCO "virtuel" qui dans l'avenir pourra piloter un réseau "réel" est à la portée de tout le monde pour peu qu'il essaie...


chris_bzg

  • Sr. Member
  • ****
  • Messages: 319
    • Voir le profil
Re : TCO avec Processing
« Réponse #3 le: janvier 05, 2018, 05:35:02 pm »
A titre de comparaison, grâce au précédent article de Pierre59 http://locoduino.org/spip.php?article214 (Processing pour nos trains), j'avais dessiné un TCO fonctionnel capable de communiquer avec une carte Arduino Uno, elle-même programmée pour agir sur le réseau et manœuvrer les aiguilles. Je suis actuellement en train de construire l'interface entre l'ordinateur et le réseau (une sorte de grosse boite recueillant la carte Arduino, les cartes relais (car mes aiguilles sont à solénoïdes), et les alimentations en provenance du transfo).

Pour arriver à cela, j'ai dû dessiner tous les pavés nécessaires ; l'article de Pierre59, basé sur des transformations (rotation, symétrie) apporte tout ce qui est nécessaire, la preuve l'image du dessus à comparer avec celle du dessous ; il manque juste les heurtoirs et les numéros de voie, ainsi que le sens de l'alimentation des voies étant donné que je suis en analogique (bleu = départ de la gare terminus - jaune = retour et gris pour une voie non alimentée). Des interrupteurs ON-OFF virtuels ont été rajoutés sur les voies de garage. Les boucles de retournement sont gérées par de simples diodes. Bien entendu, l'informatique me permet de gérer simplement des enclenchements d'itinéraires en positionnant les aiguilles comme il se doit et en évitant les erreurs.

Auparavant, j'avais un TCO électromécanique et il ne faisait pas tout cela ! L'informatique permet une approche simplifiée de problèmes complexes et c'est bien son avantage. Pour s'en convaincre, il suffit d'aller voir mon article http://locoduino.org/spip.php?article226 (Ménage à trois) où j'explique comment une carte Arduino peut commander un réseau disposant d'un TCO virtuel sur l'écran d'ordinateur. Bien sûr, la solution de l'UAICF-Nevers-Vauzelles est encore un cran au-dessus puisqu'elle remplace l'ordinateur par une solution plus portable et un écran LCD. Que de progrès réalisés ces derniers temps avec les solutions de type Arduino ou Raspberry...  ;)

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3044
  • 100% Arduino et N
    • Voir le profil
Re : TCO avec Processing
« Réponse #4 le: novembre 25, 2018, 05:49:15 pm »
Bonjour,

Voici un essai de TCO en Processing sur l'écran 7" officiel du RPi 3B+



Ca rend très bien  ;D
Merci à Pierre pour la version de ton TCO adaptée à mon réseau. Ce n'est pas encore opérationnel, juste une copie d'écran avec "scrot".
« Modifié: novembre 25, 2018, 05:51:55 pm par Dominique »
Cordialement,
Dominique

DDEFF

  • Hero Member
  • *****
  • Messages: 760
    • Voir le profil
Re : TCO avec Processing
« Réponse #5 le: décembre 09, 2018, 10:49:16 am »
Bonjour,
C'est effectivement très beau. ;D

Je note deux choses :
1°) L'usage du RPi 3B+
2°) Tu as une zone de manœuvres. Et, justement, je cherche des exemples de zones de manœuvres pour mon programme de TCO pour voir les subtilités de cette signalisation. C'est un sujet quasiment jamais traité dans les bouquins et survolé dans les revues.
C'est très difficile de comprendre cette signalisation (et qui explique que ce soit dans la liste des "reste à faire" de mon TCO...)
Pierre connaissant la SNCF mieux que moi, il a équipé ton réseau d'une signalisation correcte et c'est donc un bel exemple d'application.
Cv1, Cv2 : OK
CV5, Cv7, celui qui n'a pas de n° et Cv4 : OK
Après, je ne pige pas tout.
Z14, encadré par C5 et C3 ne serait pas une zone de manœuvre. C'est bizarre. Ce serait logique. Et ça expliquerait Cv5 et Cv6. J'ai dû louper une marche.
Et, à mon avis, Cv5 et Cv6 sont des signaux bas.

"Ce n'est pas le puits qui est trop profond, c'est ta corde qui est trop courte" (proverbe chinois)

Pierre59

  • Sr. Member
  • ****
  • Messages: 346
    • Voir le profil
Re : Re : TCO avec Processing
« Réponse #6 le: décembre 10, 2018, 08:58:00 am »
Après, je ne pige pas tout.
Z14, encadré par C5 et C3 ne serait pas une zone de manœuvre. C'est bizarre. Ce serait logique. Et ça expliquerait Cv5 et Cv6. J'ai dû louper une marche.
Z14 peut servir comme voie d'évitement, on peut y entrer directement à partir des voies principales et sortir directement sur les voies principales, d'où les carrés C5 et C3. Elle peut aussi servir de zone de manoeuvre, dans ce cas C5 et/ou C3 peuvent présenter un feu manoeuvre (blanc lunaire)

Pour Z28 c'est un peu pareil, mais que dans un seul sens et C2 peut présenter un feu blanc pour les manoeuvres.
Et, à mon avis, Cv5 et Cv6 sont des signaux bas.
Cv5 et Cv6 sont bien normalement des signaux bas, cela permet des manoeuvres de changement de machine, de modifications sur une rame de voitures/wagons ... Pour ce faire C1, C2, C8 et C4 peuvent présenter un feu blanc.

Cette disposition avec des carrés violets bas est courante dans les gares. Dans ce cas le départ en manoeuvre se fait pratiquement toujours par les voies de sortie (pas par les voies de rentrée), le retour en gare est autorisé par le carré violet bas (feu blanc).

Certaines gares en voie unique ont aussi ce dispositif, mais dans ce cas les voies d'entrée et de sorties sont confondues, ce qui implique qu'un train arrivant en gare rencontre normalement un carré puis un carré violet qui est ouvert (feu blanc) si le carré est ouvert.

Pierre

frdechaume

  • Newbie
  • *
  • Messages: 25
    • Voir le profil
Re : TCO avec Processing
« Réponse #7 le: mars 21, 2019, 06:42:55 pm »
Bonjour,
Je voudrais utiliser le TCO en processing sur raspberry 3B+  mais le graph du TCO ne s'affiche pas avec l'option 'P2D' dans la commande 'size' : la console affiche
EGLDisplayUtil.EGLDisplays: Shutdown (open: 1)
EGLDisplayUtil: Open EGL Display Connections: 1
EGLDisplayUtil: Open[0]: 0x1: EGLDisplayRef[0x1: refCnt 2]

Sans le renderer P2D j'ai un graph tout "cassé".
La version de Processing est: 3.5.3
Aucun problème sur PC Windows

Vu que Dominique a installé son TCO sur RPi 3B+ je me permet de le solliciter pour m'aider à résoudre mon problème.

Merci d'avance et félicitations aux responsables de ce site.
PS: je débute sur RPi 3B+


DDEFF

  • Hero Member
  • *****
  • Messages: 760
    • Voir le profil
Re : TCO avec Processing
« Réponse #8 le: mars 22, 2019, 08:50:06 am »
Bonjour,

Je n'ai pas de RPI3B+, mais je connais bien Processing sur Windows.
Ce qui est certain, c'est qu'on ne peut pas se passer de P2D dans le size().
P2D = Processing 2D.
Ton problème est lié à OpenGL qui nécessite P2D.

As-tu essayé de mettre fullScreen(P2D); au lieu du size(largeur, hauteur, P2D);  ?

Denis

"Ce n'est pas le puits qui est trop profond, c'est ta corde qui est trop courte" (proverbe chinois)

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3044
  • 100% Arduino et N
    • Voir le profil
Re : Re : TCO avec Processing
« Réponse #9 le: mars 22, 2019, 09:08:06 am »
Vu que Dominique a installé son TCO sur RPi 3B+ je me permet de le solliciter pour m'aider à résoudre mon problème.

c’est le TCO de Pierre que j’ai installé sur un RPi à Orléans. Ça a marché du premier coup, sans doute parce que Pierre a fait ce qu’il faut pour cela.

Je te suggère de demander à Pierre son programme de TCO comme modèle pour le tien.
Cordialement,
Dominique

frdechaume

  • Newbie
  • *
  • Messages: 25
    • Voir le profil
Re : TCO avec Processing
« Réponse #10 le: mars 22, 2019, 11:13:03 am »
Denis et Dominique merci pour vos réponses.
J'ai essayé  fullScreen(P2D au lieu de size mais cela n'a rien changé.
Je vais essayer de contacter Pierre, je pense qu'il me manque un programme sur le Rpi ou une configuration particulière.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3044
  • 100% Arduino et N
    • Voir le profil
Re : TCO avec Processing
« Réponse #11 le: mars 22, 2019, 11:48:02 am »
Le mieux est sûrement d’installer la version du RPi avec Processing intégré :

https://pi.processing.org/download/

Cordialement,
Dominique

frdechaume

  • Newbie
  • *
  • Messages: 25
    • Voir le profil
Re : TCO avec Processing
« Réponse #12 le: mars 22, 2019, 12:07:10 pm »
Le mieux est sûrement d’installer la version du RPi avec Processing intégré :

https://pi.processing.org/download/



C'est à partir ce site que j'ai effectivement installé Processing sur le Rpi avec la commande " curl https://processing.org/download/install-arm.sh | sudo sh" .
Peut être vaudrait-il mieux que je l'installe avec le 2ème méthode donnée par le site, mais mes connaissances en Linux étant très très limitées je vais attendre un réponse de Pierre que j'ai contacté par MP avant de me lancer dans une nouvelle installation.

Pierre59

  • Sr. Member
  • ****
  • Messages: 346
    • Voir le profil
Re : TCO avec Processing
« Réponse #13 le: mars 23, 2019, 09:05:06 am »
Bonjour

Ce problème avec P2D est assez récurrent, pour le régler, dans les nouvelles versions du TCO, j'ai abandonné les formes (PShape) au profit de courbes de Bezier dessinées avec un tracé épais, le résultat pour l'affichage est strictement le même, mais c'est beaucoup plus simple et offre de nombreuses possibilités que je suis en train d'exploiter.

J'en parlerai bientôt. En attendant je peux assez facilement modifier l'onglet "Formes" du TCO, pour inclure ces nouveaux dessins des pavés. Si frdechaume veut bien m'envoyer son programme je le modifierai.

Cordialement

Pierre

frdechaume

  • Newbie
  • *
  • Messages: 25
    • Voir le profil
Re : TCO avec Processing
« Réponse #14 le: mars 23, 2019, 12:18:14 pm »
Merci à tous pour vous être penchés sur mon problème que je viens de régler tout au moins en partie.
En fait le graph s'affiche très bien avec la Rpi sauf lorsqu'on commande le Rpi à partir d'un PC par liaison VNC ( un problème de débit ?) ce qui était mon cas mon but étant d'utiliser le TCO Processing à partir d'une tablette. Il va falloir que je révise mon objectif peut être en utilisant un écran pour Rpi.
Merci à Pierre pour sa proposition de modifier mon programme. Mon circuit étant très réduit j'ai pu faire mon TCO en partant des articles de votre excellant site Locoduino et de vos discussions sur le forum.