Différences entre versions de « Railuino-MFX-Loco »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Ligne 211 : Ligne 211 :
 
    
 
    
 
   Serial.println("Faire siffler - fonction 3");
 
   Serial.println("Faire siffler - fonction 3");
   ctrl.setLocoFunction(LOCO, 0, 1); // mettre la fonction 3 a la valeur 1
+
   ctrl.setLocoFunction(LOCO, 3, 1); // mettre la fonction 3 a la valeur 1
  
 
   // Interrogation de la fonction 3 de la Loco (si compatible)
 
   // Interrogation de la fonction 3 de la Loco (si compatible)
Ligne 222 : Ligne 222 :
 
    
 
    
 
   Serial.println("Arreter de siffler - fonction 3");  
 
   Serial.println("Arreter de siffler - fonction 3");  
   ctrl.setLocoFunction(LOCO, 0, 0);  // mettre la fonction 3 a la valeur 0
+
   ctrl.setLocoFunction(LOCO, 3, 0);  // mettre la fonction 3 a la valeur 0
  
 
   // Interrogation de la fonction 3 de la Loco (si compatible)
 
   // Interrogation de la fonction 3 de la Loco (si compatible)
   if (ctrl.getLocoFunction(LOCO, 0, &b)) {
+
   if (ctrl.getLocoFunction(LOCO, 3, &b)) {
 
     Serial.print("(La loco siffle t elle encore? ");
 
     Serial.print("(La loco siffle t elle encore? ");
 
     Serial.println(b ? "oui)" : "non)");
 
     Serial.println(b ? "oui)" : "non)");

Version du 23 février 2014 à 16:50


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Intro

Nous allons nous faire nos premiers tests de contrôle de locomotive MFX.

Le plus simple c'est de commander la fonction d'éclairage... cela permet de s'assurer que:

  1. La communication est correcte pour Arduino + CanDIY + boitier 60133 + Rail + Loco MFX
  2. Que l'adresse de la loco est correctement assignée par la Mobile Station 2
  3. Que l'adresse de la Loco est correcte.
  4. Qu'une fonction primaire est accessible... ne restera plus qu'à se lancer dans les autres exemples.

Montage

Choisissez votre Loco MFX, nous avons opté pour cette jolie loco MFX.

Materiel-Marklin-Loco-MFX.jpg

Rassemblez votre matériel et faites vos branchements.

Railuino-Brancher-MFX-02.jpg

Utilisez ensuite votre Mobile Station 2 pour fixer l'adresse de la Loco MFX.

Materiel-Marklin-MS2.jpg

Cette loco dispose maintenant de l'adresse 5 que nous pouvons utiliser.

Vous pouvez maintenant débrancher votre Mobile Station 2, nous n'en aurons plus besoin.

Branchez votre Arduino sur votre PC et démarrez l'environnement Arduino IDE (assurez vous d'avoir installé la bibliothèque Railuino).

Assurez-vous que votre boitier de connexion 60133 est bien sous tension.

Et c'est parti!!!

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=http://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).

/*********************************************************************
 * 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
}

Le commandes standard

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

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=http://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).

/*********************************************************************
 * 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
}


Documentation réalisée par Meurisse D. pour MCHobby.be.

Source: Projet Railuino de Joerg Pleumann, CanDIY Shield de Watterott.

Traduction et documentation réalisées avec l'autorisation expresse de Joerg Pleumann et Stephan Watterott - Documentation and translation built with authorization of Joerg Pleumann and Stephan Watterott.

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.