Pour ceux qui n’ont (presque) rien compris à mes articles

Toutes les discussions sur l'Arduino !

Modérateur : MOD

Avatar du membre
Arduino
Prolixe
Messages : 1700
Enregistré le : mer. 25 sept. 2013, 17:14

Pour ceux qui n’ont (presque) rien compris à mes articles

Message par Arduino » mar. 06 mai 2014, 20:40

Bonjour à tous,

Suite à de longs échanges de mails entre Raym (un débutant en électronique) et moi (auteur des articles sur Arduino, publiés dans Loco-Revue), j'aimerais publier ce fil pour expliquer, en termes plus simples, l'utilité d'un module Arduino dans un montage électronique.

J'espère que ce fil vous donnera envie d'en savoir plus, et j'attends vos retours pour éventuellement mettre en place un premier tutoriel qui vous guiderait pas à pas (photos à l'appui) dans l'utilisation d'Arduino.

Voici, mis en forme, les échanges que nous avons eus Raym et moi (avec son autorisation) :

Qu’est-ce qu’un microcontrôleur ?
C’est un composant électronique capable de réagir à la présence de tensions sur ses broches d’entrée et d’exécuter un programme (défini par l’utilisateur) pour faire apparaitre des tensions sur ses broches de sortie, dans le but de commander des accessoires.

Avantage d’un composant programmable
Le microcontrôleur, avec ses composants internes, va permettre, selon son programme (ou celui qu’on va lui imposer), d'effectuer différentes tâches. Au fond, il va remplacer certaines actions manuelles (fermer un interrupteur ou l'ouvrir par exemple) par des actions automatiques. En changeant le programme, on peut changer les actions et obtenir un comportement différent pour un montage qui n’aura pas changé.

Par quoi sont déclenchées les actions automatiques ? Sans doute un signal à l'entrée du microcontrôleur ? Oui mais provenant d'où ?
Le microcontrôleur déclenche des actions automatiquement en fonction de signaux d’entrée. Ces signaux proviennent du réseau, et ils doivent être mis en forme car le microcontrôleur ne sait que détecter des tensions comprises entre 0 et 5 V. La façon de faire est décrite dans la série d’articles.

Comment le microcontrôleur peut-il agir sur le réseau ?
En fonction des tâches à réaliser, donc du programme inscrit dans le microcontrôleur, celui-ci va positionner des tensions égales à 0 V ou à 5 V sur ses broches de sorties. Ces tensions vont donner naissance à des courants qui sont trop faibles pour actionner des accessoires ; il faut donc les amplifier. La façon de faire est décrite dans la série d’articles.

Quelles actions peuvent être réalisées sur un réseau ?
Par exemple, allumer ou éteindre des signaux lumineux, positionner des aiguillages, faire tourner des moteurs, enclencher des relais pour alimenter des portions de voie, etc.

En fonction de quels signaux d’entrée ?
Par exemple, en fonction de la position d’un train repéré sur le réseau, ou bien en fonction d’une action de commande effectuée sur le TCO.

Pourquoi Arduino ?
Un microcontrôleur ne peut pas fonctionner tout seul ; il a besoin d’autres composants électroniques autour de lui. Arduino est un module (bon marché) qui contient tous ces composants, et qui fonctionne donc de façon autonome. En le reliant par un câble USB, on lui fournit sa tension d’alimentation et on peut le programmer pour lui faire réaliser ce qu’on veut. Donc, si on a déjà un ordinateur (presque tout le monde aujourd’hui en a un, surtout dans notre hobby), on peut s’initier très simplement à l’électronique programmable.

Arduino est donc un microcontrôleur spécial ou amélioré, que l'on peut relier à un ordi (par USB) pour le programmer, par l'utilisation d'un langage de programmation simple (!!)
Pour programmer Arduino, il faut télécharger un petit logiciel gratuit sur son ordinateur. Ensuite, et pour rester simple, on peut dire qu’Arduino se programme en anglais. Ceux qui ne parlent pas anglais, peuvent se contenter d’apprendre quelques ordres et sont alors capables de se débrouiller (un peu comme on peut se contenter de dire bonjour, merci, au-revoir, pour aller en Angleterre, si on est dans un voyage organisé et qu’on sait qu’il y aura quelqu’un pour traduire le reste).

Pour programmer Arduino, il faut donc aller sur le site du fabriquant, charger un logiciel dans l'ordi... grâce au logiciel on pourra fabriquer un petit programme (sur l'ordi), que l'on enverra à Arduino depuis l'ordi, via le câble USB .
C’est exactement cela ; cette étape est décrite pas à pas dans la série d’articles.

C'est quoi les langages C et C++ dont on parle dans la série d’articles ?
Langage C et C++ sont deux langages informatiques qu’il n’est pas nécessaire de connaître pour programmer Arduino. Si on a la chance de les connaitre, alors on peut réaliser des choses encore plus sophistiquées avec Arduino.

Arduino est doté sur sa périphérie de connecteurs (on les voit sur la photo) dans lesquels on peut enficher les cartes shield. On en voit une en photo, curieusement assez semblable d'aspect, semble-t-il, à l'Arduino ??? Ces cartes, il faut les acheter, mais où et à quel prix ?
Les connecteurs servent d’abord à enficher des fils électriques qui vont chercher les signaux d’entrée sur le réseau, ou bien qui vont apporter les signaux de sorties aux accessoires. Mais ces connecteurs permettent aussi de connecter des cartes shield (nom anglais qui signifie bouclier) toutes faites et réalisant déjà certaines choses, qui peuvent avoir une utilité pour un réseau (par exemple, commander des moteurs). La photo de l’article est mal choisie car elle montre une carte shield qui ne fait rien, mais qui permet de souder quelques composants électroniques dessus, permettant ainsi de réaliser ce qu’on veut. Les cartes shield ont des connecteurs qui s’enfichent dans les connecteurs de l’Arduino, ce qui fait qu’elles ressemblent beaucoup à Arduino. On peut les acheter sur de nombreux sites internet à des prix très divers (dépend de l’utilité de la carte), mais ma série d’articles ne les utilise pas (ce sera peut-être pour une autre fois).

On peut trouver sur Internet des infos et des programmes réutilisables ... pour faire quoi ?
Prenons l’exemple de commander un moteur pas à pas : d’autres personnes (qui ne font pas de train électrique, mais par exemple de la robotique) ont déjà écrit et publié des programmes et des montages électroniques pour utiliser Arduino pour commander leurs moteurs. Que ce soit pour faire bouger un bras de robot ou pour positionner une plaque tournante, c’est pareil. Tout est sur internet et la philosophie d’Arduino, c’est que cela doit rester gratuit. C’est cela l’Open Source (en anglais source ouverte à tous). Et ce qui est fait par d’autres, c’est du travail en moins à faire !

Arduino est relié au monde extérieur via les broches du microcontrôleur... OK ... Ces broches constituent des lignes pouvant être programmées en entrée ou en sortie : comment ?
Je pense ne pas avoir été suffisamment clair sur ce point : essayons de voir les choses d’un autre point de vue. Je l’ai dit plus haut, le microcontrôleur réagit à la présence de tension sur ces broches. Ce sont donc des broches d’entrée ; le signal provenant du monde extérieur (notre réseau par exemple) entre dans le microcontrôleur. En fonction de son programme, celui-ci délivre des tensions (0 ou 5 V) qu’il positionne sur des broches qui seront des broches de sortie. Pour le microcontrôleur, il n’y a pas deux types de broches différentes : ce sont les mêmes broches qui sont utilisées soit en entrée, soit en sortie. Il faut simplement lui spécifier l’usage qu’on veut faire d’une broche (il y a pour cela un ordre très simple (pinMode) dans le langage qui sert à programmer Arduino. Pin veut dire broche en anglais et mode veut dire mode : pinMode signifie « quel mode pour la broche ? »)

On peut avoir, sur une broche, une tension (0V ou 5V) (absence de signal ou signal) Si signal = ordre au programme d'effectuer certaines opérations, comme allumer une LED, activer un relais, etc.
C’est exactement cela et la série d’articles montre des exemples appliqués au train électrique.

OK mais pourquoi faut-il Arduino pour cela ? Un simple interrupteur ou un ILS suffit !!!
C’est vrai tant qu’on reste dans une application simple, mais Arduino permet de faire d’autres applications plus compliquées. Par exemple, pour simuler un poste de soudure à arc, Loco-Revue a publié en 1997 un montage qui utilisait 3 circuits intégrés, 5 condensateurs, 3 potentiomètres, 6 résistances, 10 diodes et la LED blanche ! Arduino fait la même chose avec uniquement la LED et on peut changer le comportement du simulateur de soudure à arc en modifiant simplement les variables du programme (cela a été publié sur le forum Arduino).

Avec Arduino, l’électronique du réseau est simplifiée, mais encore ?
Arduino est bon marché, il se programme simplement avec un ordinateur dans un langage qui ressemble à l’anglais, il peut réagir aux signaux provenant du réseau et envoyer des signaux vers le réseau, il existe plein de programme déjà écrits sur internet qu’on peut réutiliser, il existe des cartes interfaces (cartes shield) qui permettent de commander des accessoires, il y a toute une communauté d’utilisateurs qui peuvent aider les débutants via de nombreux forums dans toutes les langues. On peut changer le comportement d’un montage en changeant simplement certaines parties du programme ; plus besoin de dessouder et ressouder des composants.
Ainsi, et j’insiste car cela est très important, faire de l’électronique revient à monter un jeu de LEGO avec des briques (les programmes des autres, ou les cartes shields) qu’on assemble. On peut ainsi faire des choses très compliquées en n’y connaissant rien !

Des interruptions externes ... c'est quoi ? Ou des communications asynchrones avec des autres périphériques, pourquoi faire ???
Oublions tout cela pour l’instant, nous le verrons en temps utile. Ce sera la conclusion de cette conversation, la description que j’ai faite d’Arduino dans les deux premiers articles, était trop théorique (et donc trop ardue à comprendre) pour que les lecteurs béotiens aient envie d’aller plus loin. Ils ont décroché très vite, ce qui ne les incite pas à lire le reste. Pourtant, c’est bien le reste qui leur permettra de concrétiser ce qui peut être réalisé pour le train électrique.

Bien sûr, les modélistes ayant déjà quelques connaissances en électronique programmable ont compris le jargon utilisé, et ont été capables de commencer leurs applications, comme le prouvent les différents forums sur Arduino.

Les autres doivent-ils pour autant baisser les bras et renoncer pour toujours ? Je crois qu’avec un exemple pratique expliqué sous la forme d’un tutoriel, ils pourraient s’y mettre et se rendre compte que ce n’est pas compliqué du tout. Je suis prêt à faire ce tutoriel s’il y a suffisamment de demande, en oubliant les considérations trop théoriques qui ennuient plus qu’elles ne renseignent.

Alors, y-a-t-il des personnes intéressées ? :moi:

Avatar du membre
Steam
Passe-Partout
Messages : 1233
Enregistré le : lun. 23 oct. 2006, 00:15
Localisation : Là où l'on a préparé le record du monde

Re: Pour ceux qui n’ont (presque) rien compris à mes article

Message par Steam » mer. 07 mai 2014, 02:49

Personnellement, je suis très intéressé !
Et je vais me permettre de laisser un petit commentaire dans la rubrique "Arduino - pour les nuls et débutants"

Steam
Il y a pire que de ne jamais réussir, c'est de ne jamais essayer !

Avatar du membre
Raym
Fécond
Messages : 507
Enregistré le : sam. 31 mai 2008, 18:08
Echelle pratiquée : H0e
Prénom : Raymond
Site Internet : http://raymtrains.over-blog.com
Localisation : Castanet le Haut (34610)
Âge : 85
Contact :

Re: Pour ceux qui n’ont (presque) rien compris à mes article

Message par Raym » mer. 07 mai 2014, 08:01

Tu as pris ta décision, Christian ... BRAVO !!!
Je pense que ce ne sera pas facile et nécessitera parfois (souvent ???) des retours en arrière. Mais tu es tenace ( au point d'avoir fini par me convaincre) ...
Je t'ai dit les raisons qui faisaient que je ne peux me lancer tout de suite mais ce sera pour septembre ... promis !
En attendant, je suis le fil, bien sur !
Courage et bon succès !!!!
Raym
"Eih bennek, eih blavek " devise syldave...

Avatar du membre
Léo Dehurlevent
Fécond
Messages : 609
Enregistré le : mer. 01 févr. 2012, 15:08

Re: Pour ceux qui n’ont (presque) rien compris à mes article

Message par Léo Dehurlevent » mer. 07 mai 2014, 08:57

Arduino a écrit : ... Alors, y-a-t-il des personnes intéressées ? ...
Pas moi, il y a longtemps que j'ai jeté l'éponge.

Comme me disait tout récemment un ami de club "c'est un hobby faut pas que ça devienne une galère", il parlait des pages et des pages remplies par notre ami Arduino qui, faut bien l'avouer pour les néophytes que nous sommes, et bien que visant à démontrer que la chose est simple, sont d'une longueur à vous décourager d'emblée devenant imbuvables. Et puis faut arrêter d'écrire gros, c'est une agression visuelle. Je reste donc avec ma petite exploitation en analogique qui finalement me donne plus de plaisir qu'à cogiter logique.

MAIS comme il parait qu'il n'y a que les imbéciles qui ne changent pas d'avis, la porte n'est pas fermée, à preuve je continue à survoler ce forum :mrgreen:

Avatar du membre
jlb
Fécond
Messages : 694
Enregistré le : jeu. 04 oct. 2012, 16:38
Echelle pratiquée : N
Prénom : Jean-Luc
Site Internet : http://modelleisenbahn.triskell.org

Re: Pour ceux qui n’ont (presque) rien compris à mes article

Message par jlb » mer. 07 mai 2014, 09:44

Bonjour,

Il est vrai que si, dans la construction d'un réseau, les aspects techniques liés à l'électricité vous échappent, si la mise en œuvre d'une LED est déjà déroutante, l'Arduino ne vous viendra pas en aide.

En fait, la question fondamentale est :

Est-ce que mettre des micro-contrôleurs dans votre réseau _en tant que tel_ vous intéresse ou pas ? Est-ce que c'est un objectif ? Et, bien sûr, est ce que ça vous amuse ?

Ou bien est-ce juste un moyen ? un passage obligé qui faut bien subir mais qui ne sera pas une source de plaisir ?

Dans le second cas, l'Arduino ne sera pas plus facile que l'électronique classique : Recopier un programme auquel on ne comprend rien n'avance pas plus que de recopier un schéma électronique auquel on ne comprend rien non plus.

L'Arduino ou un autre système nécessite un apprentissage, des connaissances et peut-être des prédispositions que tout le monde n'a pas. L'acquisition de ces connaissances nécessite du travail, du temps, et ne peut être fait que si on y prend du plaisir :)

Avatar du membre
Prevost
Mon surnom à moi
Messages : 26968
Enregistré le : lun. 02 janv. 2006, 10:04
Echelle pratiquée : H0.fr & H0.usa
Prénom : Alain
Localisation : Au pays des lentilles AOP
Âge : 65

Re: Pour ceux qui n’ont (presque) rien compris à mes article

Message par Prevost » mer. 07 mai 2014, 12:57

Léo Dehurlevent a écrit :...Comme me disait tout récemment un ami de club "c'est un hobby faut pas que ça devienne une galère", il parlait des pages et des pages remplies par notre ami Arduino qui, faut bien l'avouer pour les néophytes que nous sommes, et bien que visant à démontrer que la chose est simple, sont d'une longueur à vous décourager d'emblée devenant imbuvables. Et puis faut arrêter d'écrire gros, c'est une agression visuelle. ...
Je te suis dans ton avis.

Avatar du membre
Arduino
Prolixe
Messages : 1700
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Pour ceux qui n’ont (presque) rien compris à mes article

Message par Arduino » jeu. 08 mai 2014, 19:02

Désolé d'avoir écrit gros, ce n'était pas pour agresser qui que ce soit mais pour essayer de bien différencier les paragraphes, car le "gras" ne le permet pas assez. Quant-à la police très grosse, c'est une erreur de sélection pour une page que je devais tout de même écrire vite (j'en avais parlé ailleurs).

Il est évident qu'un hobby ne doit pas devenir une galère. Si le texte initial de mes articles était trop ardu pour certains, j'aimerais au moins qu'on me dise si les précisions que j'ai données (avec l'aide de Raym) ont été de quelque utilité ...

Et aussi si l'idée d'un tuto peut aider ceux qui aimeraient s'y mettre. Maintenant, réaliser un tuto prend du temps, je ne vais donc pas m'y mettre pour le plaisir de remplir des pages, j'ai heureusement d'autres choses à faire.

Et comme l'a dit jlb, cela nécessite l'acquisition de connaissances. Si je prétends que tout le monde peut arriver à comprendre (avec un peu de volonté), je ne peux pas nier que cela demande le courage de s'y mettre. Et chacun est libre de mettre son courage là où cela lui convient le mieux. :roll:

macsddau
Papotier
Messages : 114
Enregistré le : jeu. 17 oct. 2013, 22:46
Echelle pratiquée : N

Re: Pour ceux qui n’ont (presque) rien compris à mes article

Message par macsddau » mer. 28 mai 2014, 17:56

Bonjour à tous,

Je vous propose ici un lien vers un cours sur les uC. J'ai suivi la session de l'automne dernier. C'est fort intéressant, adapté au débutant, en français (Suisse) et gratuit. Si le coeur vous en dit, pour quelques heures de travail par semaine (j'ai passé environ 3h par module) vous aurez à la fin une jolie attestation.

https://www.coursera.org/course/microcontroleurs

Cdt.
MS2 CC2 S-DEC-4-DC Rocrail

Avatar du membre
likiki
Éloquent
Messages : 301
Enregistré le : dim. 29 avr. 2012, 15:21
Echelle pratiquée : H0 3R
Prénom : Christian
Site Internet : http://passionnement.forumactif.org
Localisation : Corbeil Essonne
Âge : 52

Re: Pour ceux qui n’ont (presque) rien compris à mes article

Message par likiki » mer. 28 mai 2014, 18:23

Merci pour le lien, il est très intéressant
Cordialement,

Christian.

Jmi Amof
Messages : 26
Enregistré le : lun. 08 mars 2010, 13:30

Re: Pour ceux qui n’ont (presque) rien compris à mes article

Message par Jmi Amof » sam. 24 janv. 2015, 10:49

Bonjour à tous ,
Nouveau venu sur cette rubrique, j'aurais une question toute basique, étant équipé d'un Mac avec comme système d'exploitation Yosemite, puis je utiliser les module Arduino

Dans l'attente bien amicalement 8)

Avatar du membre
jlb
Fécond
Messages : 694
Enregistré le : jeu. 04 oct. 2012, 16:38
Echelle pratiquée : N
Prénom : Jean-Luc
Site Internet : http://modelleisenbahn.triskell.org

Re: Pour ceux qui n’ont (presque) rien compris à mes article

Message par jlb » sam. 24 janv. 2015, 11:02

Bonjour,

Oui tout à fait. J'utilise un Mac et Dominique qui a fait une centrale DCC avec un Arduino utilise également un Mac. Ils me semble que c'est aussi le cas de macsddau ci dessus

macsddau
Papotier
Messages : 114
Enregistré le : jeu. 17 oct. 2013, 22:46
Echelle pratiquée : N

Re: Pour ceux qui n’ont (presque) rien compris à mes article

Message par macsddau » sam. 24 janv. 2015, 11:55

jlb a écrit :Bonjour,

Oui tout à fait. J'utilise un Mac et Dominique qui a fait une centrale DCC avec un Arduino utilise également un Mac. Ils me semble que c'est aussi le cas de macsddau ci dessus
Oui je suis aussi sur Mac OS X mais avec Mountain Lion.
Voir http://arduino.cc/en/Guide/MacOSX en Anglais. Il ne faut pas oublier d'installer le driver http://www.ftdichip.com/FTDrivers.htm.
MS2 CC2 S-DEC-4-DC Rocrail

Avatar du membre
groumfit
Papotier
Messages : 143
Enregistré le : sam. 25 oct. 2014, 11:25
Prénom : Denis
Âge : 63

Re: Pour ceux qui n’ont (presque) rien compris à mes article

Message par groumfit » sam. 24 janv. 2015, 19:26

Mais ça marche aussi avec un PC :mrgreen:

Pour paraphraser Pierre Chenevez, célèbre auteur de "l’Électricité au service du modélisme" dans les années 60-70, il faut que l'Arduino soit au service du modélisme et pas l'inverse.
L'Arduino est une opportunité géniale qui permet de quasiment tout automatiser de façon assez simple.
Par contre, c'est assez "virtuel" (comme on dit maintenant).
Un contact d'un relais, on comprend facilement ce qui se passe : on le voit bouger ! On peut le toucher, le brancher et voir ce qui se passe quand les bonnes conditions sont remplies.
Écrire un programme, c'est assez indirect, ça passe par une phase immatérielle qui peut rebuter, surtout la première fois.
Mais, comme avec des relais, quelle joie quand ça marche comme prévu :ange3:
L'autre difficulté vient du langage lui même qui est en anglais, ce qui peut aussi rebuter. Mais, finalement, il n'y a pas tant de mots que ça à apprendre.
Ce sont souvent les mêmes qui reviennent.
La toute dernière difficulté est que l'Arduino tout seul ne "sait rien faire".
Tout seul, il allume une LED.
Il faut, pour qu'il puisse faire quelque chose, quelques composants électroniques autour, le plus souvent très simples à mettre en œuvre. Et souvent les mêmes reviennent.
Finalement, le plus dur, c'est de savoir vraiment (avec une grande précision) ce qu'on veut faire. :D Cette phase, qu'on soit en électronique pure, en relais purs ou en Arduino, c'est la plus dure !
Je terminerai en disant qu'on est suffisamment sur le pont pour pouvoir vous aider. Donnez-nous vos problèmes et on verra la meilleure façon de les résoudre.
J'y arriverai ... demain !

Avatar du membre
Arduino
Prolixe
Messages : 1700
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Pour ceux qui n’ont (presque) rien compris à mes article

Message par Arduino » dim. 25 janv. 2015, 12:25

Bonjour Denis,

Dans tout ce qu'on propose, Arduino est bien au service du modélisme et pas l'inverse. Car ce qu'on propose, ce sont des montages pour agrémenter un réseau.

Bien sûr, il est possible d'automatiser un réseau avec des relais (méthode Chenevez des années 60) et cela marche. Mais quelle galère quand on veut changer, même légèrement, ce que fait l'automatisme. Avec le programmable, cela devient très simple ; il faut l'avoir essayé pour le comprendre et c'était le but de ma série d'applications avec des LED sur le forum (feux puis chenillard puis enseigne de commerçant où le montage électronique était le même (un Arduino et 6 LED avec 6 résistances) et pourtant le résultat n'était pas du tout le même, et cela grâce au programme).

Il est vrai qu'il faut tout de même avoir quelques composants autour d'Arduino mais cette solution limite l'électronique à peu de chose. Par exemple, le simulateur de soudure à arc décrit dans ce forum ne nécessite qu'un module et une LED avec sa résistance, alors que le même système décrit dans Loco-Revue quelques années auparavant, nécessitait pas mal de circuits intégrés pour un fonctionnement non aléatoire. Le but des articles écrits dans Loco-Revue était d'apprendre comment interfacer Arduino avec quelques composants. C'est beaucoup plus facile que d'imaginer un circuit électronique câblé.

Enfin, tu as raison, quelle que soit la méthode choisie, relais, électronique câblée ou électronique programmée, on n'obtient rien si on ne sait pas déjà à l'avance ce qu'on veut faire. Il faut toujours faire simple et compliquer par la suite quand ce qui est simple fonctionne déjà bien. :wink:

Avatar du membre
groumfit
Papotier
Messages : 143
Enregistré le : sam. 25 oct. 2014, 11:25
Prénom : Denis
Âge : 63

Re: Pour ceux qui n’ont (presque) rien compris à mes article

Message par groumfit » dim. 25 janv. 2015, 23:32

Bonjour Christian,
Nous sommes parfaitement en phase.
Pour rien au monde, je ne reviendrais aux relais et je fais de l'Arduino, maintenant. C'est plus simple, plus souple et plus efficace.

Et je sais aussi que c'est très dur de faire des articles simples.

Je me réfère à un livre que j'avais acheté quand j'étais plus jeune et qui parlais des réussites avec des jeux de cartes. Quand je connaissais déjà la réussite, je trouvais l'explication très claire.
Mais quand je ne la connaissais pas, j'avais un mal fou à la comprendre...
Bon courage ! :D
J'y arriverai ... demain !

Répondre