LOCODUINO

Aide
Forum de discussion
Dépôt GIT Locoduino
Flux RSS

mardi 19 mars 2024

Visiteurs connectés : 110

Conférence sur Arduino faite à Trainsmania (avril 2017)

Arduino Pour le Train Miniature

.
Par : Christian

DIFFICULTÉ :

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.
PNG - 515.9 kio
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.

<

PNG - 458 kio
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.

PNG - 1017.4 kio
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.

PNG - 716.7 kio
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.

PNG - 727.8 kio
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.

PNG - 841.1 kio
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)).

PNG - 212.1 kio
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).

PNG - 397.3 kio
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.

PNG - 1.1 Mio
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.

PNG - 1.5 Mio
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.

PNG - 1.8 Mio
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.
PNG - 1.4 Mio

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.
PNG - 110.7 kio

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 !

17 Messages

Réagissez à « Conférence sur Arduino faite à Trainsmania (avril 2017) »

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

Rubrique « Atelier »

LOCODUINO, l’Arduino pour le train miniature

Débuter en Arduino sans Arduino ! (1)

Débuter en Arduino sans Arduino ! (2)

Comment alimenter l’Arduino sans ordinateur ?

Faire de jolis schémas avec Fritzing

Les entrées sorties de l’Arduino

Installer une bibliothèque

La compilation d’un projet Arduino

Entrées numériques et résistance pull-up (1)

Entrées numériques et résistance pull-up (2)

Monter une bibliothèque !

Démarrer en électronique

Conférence sur Arduino faite à Trainsmania (avril 2017)

LOCODUINO à Fédérail 2017

Comment réussir son projet Arduino

Utiliser les composants CMS

Que peut-on alimenter avec un Arduino

Salade de broches

Comment utiliser Arduino sans apprendre à programmer ?

Du sketch à l’exécutable

Programmer vos Arduino avec un fichier hexadécimal

Où et comment demander de l’aide ?

LOCODUINO raconté sur la chaîne Aiguillages

Les derniers articles

LOCODUINO raconté sur la chaîne Aiguillages


Dominique

Débuter en Arduino sans Arduino ! (2)


Christian

Où et comment demander de l’aide ?


Christian, Dominique, Jean-Luc, msport, Thierry

Débuter en Arduino sans Arduino ! (1)


Christian

Comment utiliser Arduino sans apprendre à programmer ?


Christian

Programmer vos Arduino avec un fichier hexadécimal


Christian

Du sketch à l’exécutable


Christian

Salade de broches


Thierry

Que peut-on alimenter avec un Arduino


Jean-Luc

La compilation d’un projet Arduino


Thierry

Les articles les plus lus

Les entrées sorties de l’Arduino

Comment alimenter l’Arduino sans ordinateur ?

Entrées numériques et résistance pull-up (1)

Que peut-on alimenter avec un Arduino

Démarrer en électronique

Utiliser les composants CMS

Débuter en Arduino sans Arduino ! (1)

Programmer vos Arduino avec un fichier hexadécimal

Comment utiliser Arduino sans apprendre à programmer ?

La compilation d’un projet Arduino