Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - nopxor

Pages: 1 ... 9 10 [11] 12
151
Discussions ouvertes / Re : Balises img du forum
« le: avril 03, 2018, 11:28:42 am »
Bonjour Jean-Luc,

Le lien est sur mon PC et je ne suis pas chez moi.
Je le mettrai ici quand je rentre.

152
Discussions ouvertes / Balises img du forum
« le: avril 02, 2018, 11:46:22 pm »
Bonjour,

Quelqun pourrait-il m'expliquer le fonctionnement des balises img du forum ?

Lorsque j'insère une URL de la façon habituelle: [img)URL de l'image[/img) l'image n'est pas affichée.

(J'ai volontairement remplacé les parenthèses fermantes pour l'affichage de la phrase)

153
Vos projets / servotiny13
« le: mars 22, 2018, 08:14:24 pm »
Bonjour,

Je souhaite équiper mon réseau de sémaphores avec feux pour la signalisation.
L'idée est d'utiliser un petit ATtiny13 (1k Flash) pour commander le servo qui va contrôler chaque sémaphore.

Les librairies classiques de contrôle de servos ne peuvent pas être utilisées avec un ATtiny13 qui ne dispose que d'un seul timer (8bits).
J'ai donc reprogrammé le timer pour qu'il génère une base de temps compatible avec les impulsions classiques de commande de servos.

Ci-joint le code qui utilise moins de la moité de la Flash:  ;)
/*
 servotiny13

 Permet le contrôle d'un servomoteur sur un ATtiny13 à 9.6 MHz.
 le programme configure le timer pour générer une interruption toutes les 10us soit à une fréquence de 100 kHz.
 Toutes les 20ms (50Hz) on active la sortie pour une durée d'impulsion comprise entre 1ms et 2ms.
 La fonction classique delay() n'est plus disponible puisqu'on a reprogrammé l'unique timer.
 Le programme utilise une fonction locale: delay_() pour ralentir les mouvements du servo.
 Cette fonction "attend" pendant un nombre de ticks multiple de 10us correspondant au délai souhaité.
*/


volatile unsigned int Tick;       // 100KHz pulse
volatile unsigned int sPulse;     // Servo pulse variable
volatile unsigned int Tick_10us;  // base time for delay_ function

void setup() {
  pinMode(3, OUTPUT);     // Servo pin on PB3 = pin 2 ATtiny
 
  cli();                  // Disable global interrupts
  TCCR0A = 0;             // Initialize timer 0 registers
  TCCR0B = 0; 
  TCCR0A |= (1<<WGM01);   // Configure timer 0 for CTC mode (Clear Timer on Compare Match)
  TIMSK0 |= (1<<OCIE0A);  // Enable CTC interrupt
  OCR0A = 95;             // Set CTC compare value for 100kHz interrupt
  TCCR0B |= (1<<CS00);    // No prescaler -> 9.6 MHz
  sei();                  // Enable global interrupts

  Tick = 0;
  sPulse = 100;           // 100 x 10us = 1 ms
  Tick_10us = 0;
 
}

ISR(TIM0_COMPA_vect)      // 100 KHz interrupt frequency
{
  Tick_10us += 1;
 
  if(Tick >= 2000)        // servo frame (20ms)
     {
        Tick = 0;
     }

  Tick += 1;
 
  if(Tick <= sPulse)        // Generate servo pulse
  {
    digitalWrite(3, HIGH);  // Servo pulse high
  }
  else
  {
    digitalWrite(3, LOW);   // Servo pulse low
  }
}


void loop() {
  for(int i=0; i<=100; i++)  // Servo test
    {
      sPulse = sPulse + 1;
      delay_(2000);          // delai 2000 x 10 us = 20 ms
    }

    sPulse = 200;

    for(int i=0; i<=100; i++)
    {
      sPulse = sPulse - 1;
     delay_(2000);
    }
    sPulse = 100;
}

  void delay_(int nombre)
  {
    Tick_10us = 0;                  // initialisation pour début de comptage
    while (Tick_10us < nombre) {}   // attend jusqu'à le nombre de ticks soit atteint
  }
 

154
Bonjour,

J'ai commencé à monter les moteurs d'aiguillages sous le réseau.
J'ai installé sur chacun un inverseur (PECO PL-13) commandé par la tige du solénoïde pour alimenter le coeur d'aiguille electrofrog.
En fait cela génère quelques frottements supplémentaires et l'alimentation de 10.35V s'est révélée insuffisante.

PECO préconise du 16V et c'est effectivement la tension requise pour un fonctionnement correct des moteurs.
Peu importe alternatif ou continu du moment que l'ampérage est suffisant.
J'utilise une alimentation de laptop 16V DC 4A.

155
Le logiciel DCC++ / Re : e-stop emergency stop avec DCC++
« le: mars 16, 2018, 05:59:58 am »
Bonjour,

Pour un arrêt d'urgence, pourquoi ne pas utiliser la commande <0>, coupure générale de l'alimentation DCC ?

156
Shields et Modules / Re : Module de détection pour canton DCC
« le: mars 14, 2018, 01:13:49 am »
Ci-joint une photo du module:


Le schéma:


Le PCB:

157
Bonjour,

Les circuits classiques de détection  de consommation de courant à diodes ont 2 inconvénients:
La chute de tension de 0,7V inhérente à l'emploi de diodes et l'exposition de celles-ci en cas de court circuit.

J'ai donc opté pour la détection par induction qui utilise un petit transfo torique.
http://www.sumidacrossing.org/LayoutControl/TrainDetection/InductiveDetectionCircuit/

Le principe est de prélever une boucle du fil du circuit DCC qui alimente le canton et de l'enrouler autour du transfo.
Le circuit est donc parfaitement isolé du DCC.

J'ai utilisé le célèbre circuit de Paisley qui a fait ses preuves.
http://www.circuitous.ca/DccBODvt5.html#PCB

Les transfos AS-103 sont disponibles chez Radio-Spares:
https://fr.rs-online.com/web/p/transformateurs-de-courant/3997317/?searchTerm=AS-103&relevancy-data=636F3D3226696E3D4931384E4B6E6F776E41734D504E266C753D6672266D6D3D6D61746368616C6C7061727469616C26706D3D5E5B5C707B4C7D5C707B4E647D2D2C2F255C2E5D2B2426706F3D313326736E3D592673743D4B4559574F52445F53494E474C455F414C5048415F4E554D455249432677633D424F5448267573743D41532D313033267374613D41532D31303326

J'obtiens une sensibilité de 0,7 mA pour un circuit DCC de 15V (détection d'une résistance de 21,3 K Ohm dans le canton).

J'ai réalisé un circuit imprimé simple face de 100 mm x 50 mm qui regroupe 4 circuits de détection indépendants.
Il s'alimente en 5V et les sorties sont au niveau bas pour une détection et au niveau haut en l'absence de détection.

Ci-joint les fichiers au format Eagle, ainsi que les fichiers Gerber pour la fabrication.

Si vous voulez faire fabriquer le circuit imprimé je vous recommande JLCPCB (Singapour) qui fait un travail soigné à des prix canons.
https://jlcpcb.com

Leur prix pour 5 circuits, port compris: 9€.
Livraison 15 jours après la commande.


158
JMRI et Arduino / Re : JMRI et DCC++
« le: mars 10, 2018, 08:21:20 pm »
Bonjour,

Oui, le RS485 fait un peu "old style" par rapport au CAN, mais l'adaptateur USB coute 1€, ce qui est environ 100 fois moins cher que l'adaptateur USB-CAN chez Lextronic.  ;)
Pourtant les interfaces USB-CAN de voitures sont bon marché. Seraient-elles compatibles ?

159
JMRI et Arduino / Re : JMRI et DCC++
« le: mars 09, 2018, 04:45:08 pm »
Bonjour,

Présentation de PanelPro:

C'est depuis ce logiciel que l'on va exploiter son réseau.
C'est à dire commander à distance les aiguillages, les accessoires, les itinéraires du réseau ainsi que visualiser la signalisation et l'état d'occupation des cantons.
On va utiliser pour cela un panneau de contrôle.

PanelPro propose 2 types d'éditeurs de panneaux distincts:
- l'éditeur de réseau qui crée un schéma unique complet du réseau.
- l'éditeur de panneau qui crée des vues partielles.

L'éditeur de panneau est plus dédié aux grands réseaux, mais on peut utiliser les 2.

Présentation des 2 là:
http://jmri.sourceforge.net/help/fr/html/apps/PanelPro/PanelPro.shtml

PanelPro va communiquer avec le réseau pour commander des aiguillages, des accessoires et pour recevoir l'état des capteurs d'occupation.
Il reconnait pour cela de nombreux systèmes d'Entrées/Sorties qui ont chacun leur standard.

Avec DCC++ il est possible de commander des aiguillages et des sorties de plusieurs façons:
- en envoyant des ordres au standard DCC à des décodeurs d'accessoires relié au bus DCC.
- en envoyant des commandes de changement d'états aux pins de sortie de la carte Arduino DCC++.

Plus d'infos là:
http://jmri.sourceforge.net/help/en/html/hardware/dccpp/Turnouts.shtml

Les entrées ne sont pas gérées par le standard DCC.
Mais avec DCC++ on peut quand même relier des capteurs d'occupation de cantons à des pins d'entrée de l'Arduino DCC++.
http://jmri.sourceforge.net/help/en/html/hardware/dccpp/Sensors.shtml

Pour un petit réseau, un Arduino Mega dédié à DCC++ peut suffire avec ses 70 entrées/sorties.
Cependant si le réseau est important il faut ajouter un autre système à JMRI.

Fort heureusement, parmi les nombreux systèmes reconnus par JMRI, il y en a un qui est compatible avec nos cartes Arduino.
C'est le système C/MRI (Computer Model Railway Interface).

A l'origine, c'est un système du commerce de cartes Entrée/Sorties communiquant en réseau relié au PC.
Mais Michael Adams a écrit une bibliothèque pour Arduino qui permet d'utiliser un Arduino à la place de ces cartes.
http://www.utrainia.com/65-arduinocmri-and-rs485

Les Arduinos sont reliés entre eux simplement par un Bus RS485 à 2 fils et un adaptateur USB-RS485 relie le BUS au PC JMRI.
Le bus RS485 est un système simple et robuste qui a fait ses preuves dans l'industrie.

Avec cette bibliothèque Arduino, il est possible de se fabriquer des cartes entrée/sorties pour un prix dérisoire et de les relier à JMRI.

160
JMRI et Arduino / Re : JMRI et DCC++
« le: mars 08, 2018, 05:51:12 pm »
Bonjour,

Avant de passer à PanelPro, on va tester la commande par WIFI:

D'abord il faut télécharger l'application sur sa tablette ou son mobile.
Il y a "WiThrottle" sur l'App store (Apple) et "EngineDriver" et "Digitrains" sur le Play store (Androïd).

Ensuite sur le PC, dans le menu Actions, cliquer sur Lancer Serveur WiThrottle.
La fenêtre affiche l'adresse IP du serveur ainsi que le port.
Allumer le bouton qui passe en vert.

Se connecter au réseau WIFI depuis depuis son appareil.
Lancer l'application.
La connection au serveur est soit automatique (Apple), soit il faut renseigner l'adresse IP et le port (Androïd).

Sélectionner la loco à télécommander et actionner le potentiomètre tactile.
Et là, c'est magique, la loco répond aux ordres.

A noter qu'avec un mobile il y a une option pratique qui arrête la loco en cas d'appel téléphonique.

Il y a 2 versions de "WiThrottle" une gratuite  et une payante plus complète pour Ipad ou Iphone. Je n'ai pas testé la payante.

Sur Androïd les 2 sont gratuites et "Digitrains" semble vraiment très complète puisqu'on peut commander les aiguillages, les accessoires et les itinéraires.

A noter aussi que l'on peut connecter en même temps une tablette Ipad et un mobile Androïd au serveur.

161
JMRI et Arduino / Re : JMRI et DCC++
« le: mars 08, 2018, 12:31:23 am »
Bonjour,

Je vous présente quand même brièvement la partie programmation de DecoderPro:

mettre la loco dont on veut programmer le decodeur sur la voie de programmation.
sélectionner le bouton: Programmation sur voie de programmation.
sélectionner DCC++ dans le menu déroulant en haut au milieu (pas internal)
Cliquer sur le bouton de mise en route.

Il faut sélectionner la loco en cliquant sur son nom dans la liste.
Ensuite on clique sur le gros bouton Programme.

On accède alors à la fenêtre de programmation de la loco.

Elle comprend pas moins de 18 onglets !

L'onglet Fiche de la loco reprend ses éléments d'identification.

L'onglet Basic concerne l'adresse de la loco, c'est là qu'on peut la reprogrammer à une adresse différente.
C'est là aussi qu' on peut changer le sens de la marche.

Je ne vais pas détailler les autres onglets, ce serait trop long, je vous renvoie vers la documentation:
http://jmri.sourceforge.net/help/fr/html/apps/DecoderPro/Tour.shtml

Pour la documentation générale de JMRI, il y a l'index des pages en français ici:
http://jmri.sourceforge.net/help/fr/webindex.shtml

Et l'index des pages en anglais (plus fourni) là:
http://jmri.sourceforge.net/help/en/webindex.shtml

Pour plus de détails sur les onglets de programmation, voir le paragraphe "The Comprehensive Programmer" en anglais:
http://jmri.sourceforge.net/help/en/manual/DecoderPro3/index.shtml

A suivre, la présentation de PanelPro...

162
JMRI et Arduino / Re : JMRI et DCC++
« le: février 26, 2018, 06:31:52 pm »
Bonjour,

DecoderPro:
C'est le "couteau suisse" du DCC.
Il va d'abord permettre de tester la Base Station DCC++ que l'on connecte au PC soit par USB, soit par Ethernet.

D'abord on va définir DCC++ comme étant le matériel connecté.

Cliquer dans le menu Edition -> Préférences.

Rubrique Connexions:

   - Fabricant système: Choisir DCC++ dans le menu déroulant.

   - Connexion système: Choisir le mode Serial port si la Base Station DCC++ est connectée en USB.
                         Choisir Ethernet si la Base Station communique via un shield Ethernet.
                         En mode non connecté on choisira DCC++ Simulator.      

   -Réglages: identifier le port com ou l'adresse IP selon la connexion choisie.

Cliquer sur Enregistrer pour sauver la configuration.
Le programme redémarre avec en mémoire la configuration DC++.


Dans le menu déroulant en haut au milieu à coté du bouton ON, sélectionner DCC++.

Il est temps de cliquer sur ce bouton ON:

Si vous avez connecté des diodes Led à la voie principale et à la voie de programmation, celles ci vont s'allumer, indiquant que les voies sont sous tension.
http://www.locoduino.org/spip.php?article187

Si ce n'est pas le cas, aller dans le menu DCC++ et cliquer sur Traffic Monitor pour voir si JMRI et DCC++ communiquent bien.
Il est possible dans ce menu, avec Send DCC++ Command, d'envoyer des commandes directes à la Base Station.
Il y a aussi, avec Track Current Meter, un ampèremetre digital qui mesure le courant consommé sur la voie.


DecoderPro répertorie dans une base de données les locomotives du réseau.

A la première mise en route, la fenêtre "Getting Started" aide à la prise en main.

On ajoute une nouvelle Loco en cliquant en haut à gauche sur le +
puis on renseigne, si on les connait, la marque et le modèle du decodeur DCC de la loco.

DecoderPro peut éventuellement détecter de quel type de décodeur il s'agit:
Sélectionner à droite: Programmation sur la voie de programmation et placer la loco sur celle-ci.
Mettre la voie sous tension avec le bouton ON.
Appuyer sur le bouton "Lire le type depuis le décodeur".

Donner un nom à cette loco et renseigner son adresse DCC.

Sauver.
Fermer la fenêtre.

Il faudra procéder de cette façon à l'enregistrement de toutes les locos du réseau.

Une fois celles ci enregistrées, elles apparaissent dans la liste inventaire (roster).



Pour vérifierle bon fonctionnement de DCC++, on va tester le fonctionnement d'une loco sur la voie principale:

Sélectionner le bouton programmation sur la voie principale.
Poser une loco sur la voie.
Cliquer sur ON.
Le bouton doit ëtre vert.
Sélectionner le nom de la loco dans la liste en cliquant sur sa ligne dans le tableau.(la ligne devient bleu)
Cliquer en bas à droite sur Régulateur.

La fenêtre du régulateur apparait avec le nom et l'adresse DCC de la loco.

Actionner à la souris le potentiomètre rectiligne vertical.

Si tout va bien la loco doit bouger.
Si elle part en sens inverse, cela se corrige facilement dans la fenêtre de programmation.
Les feux peuvent aussi s'allumer si on appuie sur le bouton Lumières.

On peut tester aussi le fonctionnement multiple de plusieurs locos:
cliquer sur une autre loco dans l'inventaire (la ligne devient bleu)
puis cliquer à nouveau en bas à droite sur Régulateur.

Un deuxième régulateur apparait pour contrôler le fonctionnement de celle-ci.

Si tout se passe bien, la Base Station DCC++ est opérationnelle.

Sinon Re-vérifiez son cablage et la programmation Arduino.
Le forum est aussi là pour vous aider si les ennuis persistent.

N'étant pas spécialiste de la partie programmation des décodeurs DCC, Je passerai volontiers la main pour la suite des explications concernant la fenêtre programmation DCC.

163
JMRI et Arduino / Re : JMRI et DCC++
« le: février 26, 2018, 03:12:39 pm »
Bonjour,
Excellente initiative de dédier un sujet à JMRI car c'est un très bon prolongement à DCC++ et à d'autres montages à base d'Arduinos.

JMRI est un logiciel gratuit de contrôle de trains miniatures.
Il s'interface avec une multitude de matériels du commerce mais aussi avec du DIY Arduino comme DCC++ et C/MRI.

JMRI est écrit en JAVA, il est donc "multiplatforme".
C'est à dire qu'il est compatible Windows, Mac et Linux pour autant que JAVA(runtime) soit installé préalablement.

Il est conseillé de télécharger la dernière version "Production release" car elle bénéficie des corrections de bugs.
http://jmri.sourceforge.net
La prise en charge de DCC++ a été améliorée dans la dernière version à ce jour, la 4.10.

Certains pourraient être tentés d'utiliser un (très) vieux PC.
J'ai personnellement essayé avec un PC 32 bits acceuillant un linux Debian 9,
mais je n'ai pas réussi à faire tourner JMRI (version JAVA incompatible).

Je me suis donc rabattu sur un Windows 7 qui fait bon ménage avec JMRI.
Je n'ai pas testé sur Mac.

Après installation on peut accéder à DecoderPro et à PanelPro.

DecoderPro permet la gestion et la programmation des locomotives.

PanelPro permet d'avoir un poste de commande centalisée (TCO) du réseau à l'écran et de gérer l'exploitation.

164
Le logiciel DCC++ / Re : commande d'aiguillage à solénoïdes avec DCC++
« le: février 21, 2018, 06:17:18 pm »
Bonjour,

Quand je disais que j'avais testé et que tout fonctionnait bien, je parlais de la commande des relais.

Depuis j'ai reçu les moteurs d'aiguillage PECO (PL-10WE).

J'ai donc procédé à plusieurs tests.

D'abord j'ai testé si mon alimentation de PC (200W) allait convenir.
Le 12V fait en réalité 10.35V mais cela suffit à déclencher les bobines.
On peut tirer jusqu'à 8A sur la sortie 12V, c'est plus qu'il n'en faut.

Ensuite j'ai cablé les deux bobines sur la sortie des relais pour le test final ou je commande l'aiguillage à l'écran de JMRI.

Cela fonctionne une fois, deux fois... puis plantage de JMRI avec message: Erreur DCC++ port série.
Je relance le test, mêmes effets... Manifestement l'Arduino n'aime pas et le fait savoir à JMRI.

Je cable l'alimentation +5V du PC à la carte des relais pour isoler l'Arduino des relais grâce aux Opto-coupleurs.
Jusque là, j'alimentais depuis l'Arduino.
Re tests, Re mêmes résultats !  :(

Je réfléchis et je pressens un problème de parasites venant des bobines PECO.

Lorsqu'on alimente une bobine et que l'on interrompt son alimentation, une surtension apparait à ses bornes.
La surtension se transforme en arc électrique au niveau des contacts et des parasites sont émis.

Pour remédier à cela il faut ajouter une diode (dite de roue libre) aux bornes des bobines.
A la coupure de l'alimentation, le courant inverse généré par la bobine peut se décharger dans la diode.

J' ai donc soudé 2 grosses diodes (fond de tiroir) pour tenter un nouveau test.

Et là, tout est rentré dans l'ordre et les bobines foncionnent parfaitement sans générer de parasites.  :D

Reste à savoir quelle type de diodes convient ?

Pour une commande ON/OFF d'un solénoïde (pas une commande PWM), une diode de redressement quelqonque fait l'affaire.
Il suffit que sa tension inverse soit plus grande que la tension d'alimentation et que son courant direct max soit plus grand que le courant dans la bobine.
Le tout avec un bon facteur de sécurité.
Je vais commander des 6A10 (6A, 1000V), ça coûte 1€ les 10...  ;)

165
Discussions ouvertes / Re : protection des aiguilles en gare
« le: février 18, 2018, 12:14:18 pm »
Bonjour,

Sur PC avec JMRI, il suffit de créer un itinéraire et d'y associer un bouton sur l'écran.
On détermine quels aiguillages doivent être actionnés pour chaque itinéraire.
La signalisation, si elle est définie, se positionne automatiquement.


Pages: 1 ... 9 10 [11] 12