Voici un résumé de la présentation faite à Trainsmania pour les 80 ans de Loco-Revue. A tout moment, vous pouvez cliquer sur les images pour les afficher en haute résolution.
Cette conférence présente l’apport d’Arduino dans le modélisme ferroviaire. Elle s’adresse à des débutants pour leur présenter une gamme de produits. Elle ne rentre pas dans la technique et n’est pas prévue pour vous enseigner comment programmer Arduino ; elle donne simplement des généralités sur la mise en œuvre d’Arduino. La plupart des diapos répondra à des questions que vous vous posez sans doute. Cette présentation vous donnera une idée de tout ce qu’il est possible de faire sur un réseau de trains miniatures.
Conférence sur Arduino faite à Trainsmania (avril 2017)
Arduino Pour le Train Miniature
.
Par :
DIFFICULTÉ :★☆☆
Arduino est le nom donné à une gamme de cartes électroniques conçues autour d’un microcontrôleur. On peut aussi trouver le nom de Genuino, mais il s’agit du même produit et il fonctionne de la même façon. Arduino est le nom pour le marché des USA et Genuino est le nom pour le marché dans le reste du monde. Vous avez ici deux logos possibles. Retenons surtout qu’il s’agit du même produit et qu’Arduino et Genuino fonctionnent de la même manière. On trouve deux sites internet : .CC et .ORG. Le site .CC, qui existe depuis plus longtemps, est le plus fourni, mais rien ne vous empêche de consulter l’un ou l’autre pour trouver des réponses.
Cette diapo vous montre trois exemples de modules Arduino. Au centre, nous avons le plus célèbre car sans doute le plus employé, le module UNO. C’est celui-ci dont nous parlerons au cours de cette conférence car c’est celui que nous recommandons aux débutants. Son prix est de l’ordre de 20 euros, et ses possibilités sont suffisantes pour découvrir ce qu’Arduino permet de faire en modélisme ferroviaire. À gauche, nous trouvons un module MEGA, plus puissant et à droite un module NANO qui s’adresse plus à ceux qui bricolent en électronique. Les modules de la gamme Arduino diffèrent surtout par le nombre de connecteurs et la taille de la mémoire qui stocke le programme ou les données.
Voici deux modules UNO : l’un porte la marque Arduino, l’autre Genuino, mais on remarque qu’ils sont absolument identiques. En effet, les schémas de construction sont dans le domaine public, ce qui fait qu’un industriel peut tout à fait sortir un module identique sous sa propre marque. On trouve ainsi des clones bon marché en provenance d’Asie mais nous déconseillons d’y recourir si vous débutez car certains clones peuvent présenter des bugs de fonctionnement que seuls des amateurs confirmés sauront résoudre. Nous allons répondre à deux questions : qu’est-ce qu’un module Arduino ? Et pour quoi faire ?
Qu’est-ce ? Une carte électronique avec un microcontrôleur (µC) et tout ce qui est nécessaire pour le faire fonctionner et le programmer. On distingue le microcontrôleur (ATmega328P) entouré en jaune. Voici en bleu une définition très générale du microcontrôleur. Programmer un microcontrôleur revient à lui apprendre à réaliser ce qu’on veut qu’il fasse, un peu comme si on lui donnait une recette qu’il serait capable de suivre.
Pour quoi faire ? Sur un réseau : Détecter et Agir. On remarque en périphérie des connecteurs, entourés en jaune sur la diapo. Ces connecteurs sont reliés aux broches du microcontrôleur et donnent accès à tous les signaux du microcontrôleur. Certaines broches (appelées entrées-sorties) peuvent être programmées en entrées et dans ce cas, elles surveillent l’environnement par l’intermédiaire de capteurs, ou bien en sorties et dans ce cas, elles agissent sur l’environnement. Dans notre cas, l’environnement est le réseau. Par exemple, le module est capable de surveiller le réseau, de détecter l’arrivée d’un train et donc d’agir sur les barrières de passage à niveau pour les fermer.
Nous venons de voir qu’il faut apprendre à notre module ce qu’on veut lui faire faire, c’est-à-dire qu’il faut le programmer. Est-ce compliqué et avons-nous besoin de matériel sophistiqué comme un programmateur ? Non, voici juste ce qu’il faut pour programmer votre module et lui faire faire ce que vous voulez :
- Un câble USB de type A-B
- Un logiciel gratuit appelé IDE (version 1.8.1 ou supérieure). Ce logiciel existe pour les trois systèmes d’exploitation Windows, Mac OS, et Linux (IDE signifie Environnement de Développement Intégré)
La partie droite de l’image montre le logiciel en français où on reconnait une ligne de menus, des icônes, et la partie où on écrit le programme (à l’intérieur de la fonction setup (exécutée une seule fois) et de la fonction loop (exécutée en boucle)).
Quel langage faut-il connaître et utiliser pour commencer à programmer Arduino ? Ce doit être compliqué… Il y a souvent des idées préconçues à ce sujet !
Il existe un certain nombre de fonctions dont on peut voir une partie sur cette diapositive. Elles sont simples à utiliser si on respecte bien la syntaxe. Il existe aussi des bibliothèques livrées avec l’IDE ou bien téléchargeables sur internet qui facilitent la vie pour utiliser certains périphériques (servomoteurs, moteurs pas à pas, écrans à cristaux liquides, etc.). Enfin, de nombreux exemples de programmes livrés avec l’IDE permettent de se familiariser avec tout cela. En jaune, la connaissance de ces trois fonctions très simples permet d’écrire un premier programme faisant clignoter une DEL…
Il faut tout de même se rappeler que fonctions et bibliothèques sont écrites en langage C ou C++ ; en les utilisant, on programme en C ou C++ sans le savoir. L’existence de ces fonctions et bibliothèques fait qu’il n’y a pas besoin de maîtriser la complexité de ces langages pour arriver à programmer Arduino. Ceux qui sont à l’aise en langage C ou C++ peuvent programmer Arduino directement dans ces langages, les autres peuvent se limiter à utiliser fonctions et bibliothèques et pourront, s’ils le désirent, acquérir des notions de plus en plus poussées de ces langages pour réaliser des programmes de plus en plus puissants.
Pour pouvoir prendre les informations du réseau et agir sur celui-ci, Arduino a besoin d’un peu d’électronique autour de lui. Premier constat, l’électronique programmable (à microcontrôleur) permet de simplifier l’électronique d’un montage et fait preuve d’une plus grande souplesse pour la mise au point (pas besoin de dessouder un composant pour le changer par un autre, on change certaines variables dans le programme ou on modifie celui-ci).
Simplification de l’électronique : voici une comparaison entre un simulateur de soudure à arc en électronique câblée (publié dans Loco-Revue en mai 1997) et un simulateur de soudure à arc réalisé avec Arduino. On constate une économie de composants et un meilleur résultat, puisqu’on passe d’un fonctionnement pseudo-aléatoire à un fonctionnement complètement aléatoire.
Toujours dans le domaine de la simplification de l’électronique, il existe des cartes shield qui permettent une économie de temps (et d’argent). Cette solution est idéale pour ceux qui ne veulent pas concevoir d’électronique ni avoir à souder des composants ; il suffit de se brancher sur les connecteurs à vis. Ces cartes s’enfichent sur les modules, un peu à la façon d’un bouclier protecteur (d’où le nom de shield qui signifie bouclier en anglais), et s’empilent les unes sur les autres. Voici l’exemple de deux cartes très utiles en modélisme ferroviaire : 4 relais et carte moteurs.
Souplesse du montage : c’est un avantage indéniable de l’électronique programmable, changer le programme permet de changer le comportement du montage comme le montre la vidéo suivante.
Voici, pour terminer, des exemples de ce qui est faisable sur un réseau de trains miniatures. Nous traiterons le cas des réseaux analogiques, des réseaux numériques, et des réseaux en général en parlant de l’animation du décor.
Animation du décor : nous pouvons créer toutes sortes d’animations lumineuses (comme l’a montré la vidéo précédente), commander des moteurs (à courant continu ou pas à pas) ou bien des servomoteurs, ou encore afficher des textes sur des écrans ou des afficheurs.
Numérique : Arduino peut commander trains et accessoires selon la norme DCC ou bien un autre protocole.
Analogique : Arduino peut alimenter les voies et commander la vitesse des trains, et peut également allumer les différents signaux lumineux comme le montre la vidéo suivante.
Le nec plus ultra est sans doute de confier son réseau à plusieurs modules Arduino, chacun étant spécialisé pour certaines tâches. Ces modules peuvent communiquer entre eux, ou être complètement indépendants. Sur la diapositive suivante, le module UNO en haut à gauche s’occupe de gérer les éclairages des bâtiments (soudure à arc dans un atelier, enseigne de commerçant, différentes pièces d’appartement, etc.) ou l’éclairage public (lampadaires, feux tricolores, feux de travaux, etc.). Le module UNO en bas à gauche s’occupe de gérer le passage à niveau dès l’approche d’un train. Les deux autres modules UNO gèrent les aiguillages du réseau.
Ceci n’est qu’un aperçu de ce que vous pouvez réaliser avec Arduino pour votre réseau de trains miniatures. Pour vous accompagner dans votre apprentissage, le site de LOCODUINO est le seul site spécialisé en Arduino pour le train miniature. Il propose des articles de fond, des conseils, et a son propre forum. Il s’adresse aux amateurs de tous niveaux : débutants, confirmés, ou experts.
Nous espérons avoir suscité votre curiosité et vous avoir donné envie de pratiquer Arduino pour agrémenter votre réseau de trains miniatures. Nous sommes persuadés d’une chose : ce dont nous n’avons pas parlé, ce sera vous qui l’inventerez prochainement !