Modifications

Sauter à la navigation Sauter à la recherche
12 524 octets ajoutés ,  18 septembre 2018 à 14:02
Ligne 1 : Ligne 1 : −
{{Railuino-NAV}}
  −
   
{{Railuino-NAV}}
 
{{Railuino-NAV}}
   Ligne 7 : Ligne 5 :     
Le plus simple c'est de commander la fonction d'éclairage... cela permet de s'assurer que:
 
Le plus simple c'est de commander la fonction d'éclairage... cela permet de s'assurer que:
# La communication est correcte pour Arduino + CanDIY + boitier 60133 + Rail + Loco MFX  
+
# La communication est correcte pour Arduino + CanDIY + boitier 60113 + Rail + Loco MFX  
 
# Que l'adresse de la loco est correctement assignée par la Mobile Station 2
 
# Que l'adresse de la loco est correctement assignée par la Mobile Station 2
# Que l'adresse de la Loco est correcte.
+
# Que l'adresse de la loco est correcte.
# Qu'une fonction primaire est accessible... ne restera plus qu'à se lancer dans les autres exemples.
+
# Qu'une fonction primaire soit accessible... ne restera plus qu'à se lancer dans les autres exemples.
    
== Montage ==
 
== Montage ==
Ligne 34 : Ligne 32 :     
Et c'est parti!!!
 
Et c'est parti!!!
 +
 +
=== Précision sur les exigences matérielles ===
 +
<small>Sept. 2018 : Desktop Station à bien évolué depuis l'écriture de ce tutoriel en 2014. Il est donc important de nuancer les exigences matérielles.</small>
 +
 +
<div style="margin: 15px 0; background: rgba(255,204,102,.3); display: block; padding: 15px 15px 15px 15px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; border: 1px solid #ff9900;" >
 +
Il n'est pas indispensable d'utiliser une Mobile Station. En effet, dans le cadre d'une installation utilisant "[https://desktopstation.net/ Desktop Station]" de Yaasan +  shield CANBus-DIY +  boîtier Märklin 60113, il est possible de contrôler son réseau Marklin sans la présence d'un Mobile Station.
 +
 +
En effet, Thierry D. (qui se reconnaîtra), pilote son réseau avec "[https://desktopstation.net/ Desktop Station]" de Yaasan, un Arduino Uno + shield CANBus-DIY et un boîtier Märklin 60113.
 +
Il n'a qu'une seule loco MFX, la 2302 de Van Biervliet (Loksound ESU V4). Elle a été reconnue par Desktop Station en effectuant quelques manipulations (lecture des CV en DCC, la loco étant seule sur le réseau) ; le n° UIC du décodeur est alors apparu en bas à gauche de l'écran Desktop Station.
 +
Il a suffi de l'entrer dans l'éditeur de locos et à présent la 2302 est instantanément reconnue au démarrage, même après plusieurs semaines hors tension.
 +
Voilà, en espérant que ces commentaires soient utiles et qu'ils pourront aider la communauté.</div>
    
== Commander l'eclairage ==
 
== Commander l'eclairage ==
 +
Ce qu'il y a de bien, c'est que la fonction d'éclairage est universel et porte toujours le numéro 0. Bien pratique pour faire une vérification.
 +
 +
Dans votre environnement Arduino, ouvrez l'exemple '''Fichier > Exemples > Railuino > Controller > Headlight'''
 +
 +
{{#Widget:Iframe
 +
|url=https://www.youtube.com/embed/xILfx-hVcC0
 +
|width=420
 +
|height=315
 +
|border=0
 +
}}
 +
 +
Nous avons repris l'exemple Railuino, ci-dessous, en ajoutant des commentaires en Français (pour vous aider).
 +
 +
Notez le type d'adressage MFX identifié à l'aide de la constante '''ADDR_MFX''' et l'adresse fixée dynamiquement par la Mobile Station  (soit 5).
 +
 +
<nowiki>/*********************************************************************
 +
* Railuino - Hackez votre Märklin
 +
*
 +
* Copyright (C) 2012 Joerg Pleumann
 +
*    https://code.google.com/p/railuino/
 +
*
 +
* Cet exemple est un logiciel libre; Vous pouvez le redistribuer et/ou
 +
* le modifier sous les termes de licence "Creative Commons Zero
 +
* version 1.0", tel que publié par par Creative Commons Organisation.
 +
* Cela place de fichier dans le domaine publique.
 +
*
 +
* Cet exemple est distribué dans l'espoir qu'il soit utile,
 +
* mais SANS AUCUNE GARANTIE; sans même la garantie implicite de
 +
* COMMERCIALISATION ou D'ADAPTATION À UN USAGE PARTICULIER.
 +
* Voyez le fichier LICENCE pour plus de détails.
 +
*
 +
* ----------------------------------------------------------------
 +
* Tutoriel Railuino disponible en Français sur
 +
*    http://mchobby.be/wiki/index.php?title=Railuino
 +
*
 +
* Traduction par MCHobby.be crédit sous CC-SA-BY pour l'effort de traduction
 +
* Translation by MCHobby.be credit under CC-SA-BY for translation effort
 +
*
 +
*/
 +
 +
#include <Railuino.h>
 +
 +
// Identification de la Locomotive en utilisant l'adressage MFX
 +
// et en ajoutant le numéro d'identification de la machine (5 dans ce cas)
 +
const word    LOCO  = ADDR_MFX + 5;
 +
const word    TIME  = 2000; // déclaration d'un délai de 2 secondes
 +
const boolean DEBUG = true; // activer le débogage
 +
 +
// Créer un contrôleur Railuino
 +
TrackController ctrl(0xdf24, DEBUG);
 +
 +
void setup() {
 +
  // établir une connexion avec le moniteur série d'Arduino IDE
 +
  Serial.begin(115200);
 +
  // Attendre l'établissement de la connexion
 +
  while (!Serial);
 +
 +
  // Démarrer le contrôleur
 +
  ctrl.begin();
 +
 +
  Serial.println("Mise sous tension - Power on");
 +
  ctrl.setPower(true);
 +
}
 +
 +
void loop() {
 +
  byte b;
 +
 
 +
  Serial.println("Allumer - Lights on");
 +
  ctrl.setLocoFunction(LOCO, 0, 1); // mettre la fonction 0 a la valeur 1
 +
 +
  // Interrogation de la fonction 0 de la Loco (si compatible)
 +
  if (ctrl.getLocoFunction(LOCO, 0, &b)) {
 +
    Serial.print("(Les lumieres sont ");
 +
    Serial.println(b ? "allumees)" : "eteintes)");
 +
  }
 +
 
 +
  delay(TIME); // attentre
 +
 
 +
  Serial.println("Eteindre - Lights off");
 +
  ctrl.setLocoFunction(LOCO, 0, 0);  // mettre la fonction 0 a la valeur 0
 +
 +
  // Interrogation de la fonction 0 de la Loco (si compatible)
 +
  if (ctrl.getLocoFunction(LOCO, 0, &b)) {
 +
    Serial.print("(Les lumieres sont ");
 +
    Serial.println(b ? "allumees)" : "eteintes)");
 +
  }
 +
 
 +
  delay(TIME); // attendre
 +
}
 +
</nowiki>
 +
 +
== Le commandes standards ==
 +
Le code permettant de commander la direction de marche et vitesse sont identiques pour une loco MFX et une Loco MM2.
 +
 +
Pas besoin de s'étendre sur ce point puisqu'il à déjà été abordé dans la section MM2. Pensez seulement à utiliser la constante '''ADDR_MFX''' au lieu de ADDR_MM2.
 +
 +
== Commander le son ==
 +
Avant de se lancer dans des fonctions plus avancées, prenons juste le temps de profiter d'une fonction MFX la plus spectaculaire... celle permettant de faire siffler le train (comme en rêve tous les enfants).
 +
 +
La fonction son porte le numéro 3 sur cette loco (nous y reviendrons plus tard). Ne reste plus qu'a l'activer
 +
 
Dans votre environnement Arduino, ouvrez l'exemple '''Fichier > Exemples > Railuino > Controller > Headlight'''
 
Dans votre environnement Arduino, ouvrez l'exemple '''Fichier > Exemples > Railuino > Controller > Headlight'''
    +
Et modifiez le code suivant:
 +
 +
ctrl.setLocoFunction(LOCO, 0, 1); // mettre la fonction 0 a la valeur 1
 +
 +
pour appeler la fonction 3... celle du son
 +
 +
ctrl.setLocoFunction(LOCO, 3, 1); // mettre la fonction 3 (son) a la valeur 1
 +
 +
Note: attention, il faut également modifier la ligne plaçant la valeur de la fonction à 0... sinon le train siffle en continu ;-)
 +
 +
{{#Widget:Iframe
 +
|url=https://www.youtube.com/embed/N7MScRbFkL8
 +
|width=420
 +
|height=315
 +
|border=0
 +
}}
 +
 +
Nous avons repris l'exemple Railuino, ci-dessous, en ajoutant des commentaires en Français (pour vous aider).
 +
 +
Notez le type d'adressage MFX identifié à l'aide de la constante '''ADDR_MFX''' et l'adresse fixée dynamiquement par la Mobile Station  (soit 5).
 +
 +
<nowiki>/*********************************************************************
 +
* Railuino - Hackez votre Märklin
 +
*
 +
* Copyright (C) 2012 Joerg Pleumann
 +
*    https://code.google.com/p/railuino/
 +
*
 +
* Cet exemple est un logiciel libre; Vous pouvez le redistribuer et/ou
 +
* le modifier sous les termes de licence "Creative Commons Zero
 +
* version 1.0", tel que publié par par Creative Commons Organisation.
 +
* Cela place de fichier dans le domaine publique.
 +
*
 +
* Cet exemple est distribué dans l'espoir qu'il soit utile,
 +
* mais SANS AUCUNE GARANTIE; sans même la garantie implicite de
 +
* COMMERCIALISATION ou D'ADAPTATION À UN USAGE PARTICULIER.
 +
* Voyez le fichier LICENCE pour plus de détails.
 +
*
 +
* ----------------------------------------------------------------
 +
* Tutoriel Railuino disponible en Français sur
 +
*    http://mchobby.be/wiki/index.php?title=Railuino
 +
*
 +
* Traduction par MCHobby.be crédit sous CC-SA-BY pour l'effort de traduction
 +
* Translation by MCHobby.be credit under CC-SA-BY for translation effort
 +
*
 +
*/
 +
 +
#include <Railuino.h>
 +
 +
// Identification de la Locomotive en utilisant l'adressage MFX
 +
// et en ajoutant le numéro d'identification de la machine (5 dans ce cas)
 +
const word    LOCO  = ADDR_MFX + 5;
 +
const word    TIME  = 2000; // déclaration d'un délai de 2 secondes
 +
const boolean DEBUG = true; // activer le débogage
 +
 +
// Créer un contrôleur Railuino
 +
TrackController ctrl(0xdf24, DEBUG);
 +
 +
void setup() {
 +
  // établir une connexion avec le moniteur série d'Arduino IDE
 +
  Serial.begin(115200);
 +
  // Attendre l'établissement de la connexion
 +
  while (!Serial);
 +
 +
  // Démarrer le contrôleur
 +
  ctrl.begin();
 +
 +
  Serial.println("Mise sous tension - Power on");
 +
  ctrl.setPower(true);
 +
}
 +
 +
void loop() {
 +
  byte b;
 +
 
 +
  Serial.println("Faire siffler - fonction 3");
 +
  ctrl.setLocoFunction(LOCO, 3, 1); // mettre la fonction 3 a la valeur 1
 +
 +
  // Interrogation de la fonction 3 de la Loco (si compatible)
 +
  if (ctrl.getLocoFunction(LOCO, 3, &b)) {
 +
    Serial.print("(La loco siffle t elle? ");
 +
    Serial.println(b ? "OUI)" : "non)");
 +
  }
 +
 
 +
  delay(TIME); // attendre
 +
 
 +
  Serial.println("Arreter de siffler - fonction 3");
 +
  ctrl.setLocoFunction(LOCO, 3, 0);  // mettre la fonction 3 a la valeur 0
 +
 +
  // Interrogation de la fonction 3 de la Loco (si compatible)
 +
  if (ctrl.getLocoFunction(LOCO, 3, &b)) {
 +
    Serial.print("(La loco siffle t elle encore? ");
 +
    Serial.println(b ? "oui)" : "non)");
 +
  }
 +
 
 +
  delay(TIME); // attendre
 +
}
 +
</nowiki>
 +
 +
Maintenant, si l'on regarde les messages envoyé vers la console série d'Arduino, vous pouvez constater qu'il y a une communication bidirectionnelle entre la Loco MFX et le shield CanDIY.
 +
 +
Il est possible de lire d'interroger la loco MFX pour lire l'état des CV (registre)
 +
 +
<nowiki>==> df24  1b 5 00 00 00 00 11
 +
Mise sous tension - Power on
 +
==> df24  00 7 00 00 00 00 09 00 0d
 +
<== 3b77 R 00 7 00 00 00 00 09 00 0d
 +
==> df24  00 6 00 00 00 00 08 07
 +
<== 3b77 R 00 6 00 00 00 00 08 07
 +
==> df24  00 5 00 00 00 00 01
 +
<== 3b77 R 00 5 00 00 00 00 01
 +
Faire siffler - fonction 3
 +
==> df24  06 6 00 00 40 05 03 01
 +
<== 3b77 R 06 6 00 00 40 05 03 01
 +
==> df24  06 5 00 00 40 05 03
 +
<== 3b77 R 06 6 00 00 40 05 03 01
 +
(La loco siffle t elle? OUI)
 +
Arreter de siffler - fonction 3
 +
==> df24  06 6 00 00 40 05 03 00
 +
<== 3b77 R 06 6 00 00 40 05 03 00
 +
==> df24  06 5 00 00 40 05 03
 +
<== 3b77 R 06 6 00 00 40 05 03 00
 +
(La loco siffle t elle encore? non)
 +
Faire siffler - fonction 3
 +
==> df24  06 6 00 00 40 05 03 01
 +
<== 3b77 R 06 6 00 00 40 05 03 01
 +
==> df24  06 5 00 00 40 05 03
 +
<== 3b77 R 06 6 00 00 40 05 03 01
 +
(La loco siffle t elle? OUI)
 +
...</nowiki>
 +
 +
== Les fonctions ==
 +
Les locomotives MFX supportent 16 fonctions, fonctions accessibles depuis la Mobile Station 2.
 +
 +
Hormis la fonction 0 dédiée à l'éclairage, les autres fonctions peuvent varier d'une machine à l'autre (d'après ce que j'ai compris).
 +
 +
Si l'on se penche sur la "Mobile Station 2", nous pouvons voir les 8 premières fonctions (dont la 3ieme correspondant à une fonction sonore). Les 8 fonctions suivantes étant accessibles par l'intermédiaire de la touche "Shift".
 +
 +
[[Fichier: Marklin-MobileStation2-Fonction.jpg]]
 +
 +
Nous pouvons clairement voir en position 3 la fonction sonore.
 +
 +
Si vous voulez tester les fonctions, vous pouvez simplement modifier l'exemple '''HeadLight''' en modifiant les lignes ''setLocoFunction'' 
 +
 +
ctrl.setLocoFunction(LOCO, 3, 1);
 +
 +
Où:
 +
* Le premier paramètre est l'identification de la locomotive,
 +
* Le deuxième paramètre correspond à la fonction (ici la fonction N° 3),
 +
* Le dernier paramètre l'activation/désactivation (1 ou 0).
 +
 
 +
== Les CV ==
 +
Un CV est une sorte de registre qui maintient la valeur d'une caractéristique (comme accélération, décélération, ...)
 +
 +
Nous allons maintenant utilisé l'exemple CV pour lire les CV de la locomotive MFX.
 +
 +
Démarrez votre Arduino IDE et ouvrez l'exemple '''Fichier > Exemples > Railuino > Controller > CV'''.
 +
 +
Indiquez l'adresse de votre loco dans la ligne
 +
 +
const word    LOCO  = ADDR_MFX + 5;
 +
 +
 +
Téléversez le programme sur votre Arduino et ouvrez le moniteur série (configuré sur 115200 bauds).
 +
 +
Vous obtenez alors la lecture des différents CV
 +
 +
[[Fichier:Railuino-MFX-CV-READ.jpg]]
 +
 +
<nowiki>==> df24  1b 5 00 00 00 00 11
 +
Power on
 +
==> df24  00 7 00 00 00 00 09 00 0d
 +
<== 3b77 R 00 7 00 00 00 00 09 00 0d
 +
==> df24  00 6 00 00 00 00 08 07
 +
<== 3b77 R 00 6 00 00 00 00 08 07
 +
==> df24  00 5 00 00 00 00 01
 +
<== 3b77 R 00 5 00 00 00 00 01
 +
==> df24  07 7 00 00 40 05 00 01 01
 +
<== 0300 R 07 7 00 00 40 05 00 01 14
 +
Register 1 - Address: 20
 +
==> df24  07 7 00 00 40 05 00 02 01
 +
<== 0300 R 07 7 00 00 40 05 00 02 16
 +
Register 2 - Min. Voltage: 22
 +
==> df24  07 7 00 00 40 05 00 03 01
 +
<== 0300 R 07 7 00 00 40 05 00 03 18
 +
Register 3 - Accel. time: 24
 +
==> df24  07 7 00 00 40 05 00 04 01
 +
<== 0300 R 07 7 00 00 40 05 00 04 17
 +
Register 4 - Decel. time: 23
 +
==> df24  07 7 00 00 40 05 00 05 01
 +
<== 0300 R 07 7 00 00 40 05 00 05 15
 +
Register 5 - Max. speed: 21
 +
==> df24  07 7 00 00 40 05 00 06 01
 +
<== 0300 R 07 7 00 00 40 05 00 06 1a
 +
Register 6 - Avg. speed: 26
 +
==> df24  07 7 00 00 40 05 00 07 01
 +
<== 0300 R 07 7 00 00 40 05 00 07 19
 +
Register 7 - Version: 25
 +
==> df24  07 7 00 00 40 05 00 08 01
 +
<== 0300 R 07 7 00 00 40 05 00 08 10
 +
Register 8 - Manufacturer: 16</nowiki>
 +
 +
== Pour terminer ==
 +
Voila qui termine l'introduction à Railuino avec les machines MFX.
 +
 +
Vous trouverez de nombreux autres exemples dans la bibliothèque Railuino (voir le menu '''Fichier > Exemples > Railuino > ...'''
    
{{Railuino-TRAILER}}
 
{{Railuino-TRAILER}}
29 917

modifications

Menu de navigation