La vedette de toutes ces questions (et réponses !) étant ce petit truc dans le rond bleu sur l´image ci-dessus à gauche, un microprocesseur...
 |
1. Introduction |
Avertissement : vous qui connaissez les microprocesseurs ou qui
réalisez des montages à base de PIC depuis cinq ans, passez votre chemin.
Ces pages sont uniquement destinées aux “béotiens”, un puriste y
trouvera probablement beaucoup à redire. Mon seul objectif est de
permettre aux adeptes de Ptitrain et du Meccano électronique de s´informer et peut-être de mettre
en pratique une autre technique que les circuits intégrés classiques
(qui datent quand même des années 80 !).
Ce n´est écrit que dans le
cadre de notre hobby et pour notre plaisir.
 |
Nota : les encadrés jaunes marqués PTI+ seront des apartés, souvent plus “pointus” que le texte, des “petits plus” qu´il n´est pas indispensable de lire dans un premier temps, mais qui permettent de ne pas mourir idiot. Les cadres marqués FAQ seront... vos questions fréquemment posées (triées et classées par Jidé, mises à jour le plus fréquemment possible). |
|
|
 |
1.1. Qu´est-ce que c´est ? |
Fondamentalement, tous les microprocesseurs (dans la suite du texte
j´abrège en “microP”) se ressemblent, et vous les utilisez tous les jours.
Le coeur de l´ordinateur sur lequel vous lisez actuellement cette page est un microP, et vous en
avez au moins une dizaine à la maison : les machines à laver, votre télé
et chaîne hifi, le réveil sur la table de nuit, chez moi même la machine
à café. Des microP, il y en a aussi quelques milliers dans un T.G.V...
Dans les principes (qu´on verra plus loin), la différence
entre votre le processeur Intel Duocore machintruc de votre P.C. et la
puce à 8 pattes que vous venez de voir en photo et qui figure dans presque tous mes montages n´est
qu´une différence d´échelle (de taille) : nombre de pattes, vitesse,
mémoire... mais ils fonctionnent tous les deux de la même manière.
 |
1.2. A quoi ça sert ? |
Dans ce qui nous intéresse ici, c´est-à-dire l´utilisation des
microP dans les p´tits trains, cela sert surtout à remplacer tous les
circuits électroniques à base de CMOS, les 4000 et les 555 que le Meccano électronique utilise à gogo, et la majeure partie des composants qui vont autour (diodes, condensateurs, résistances) par une puce unique
qui fait tout, et qui peut même faire beaucoup plus.
Par exemple, nous allons recréer dans cette première partie tout le montage du Meccano que nous avons appelé Youbitonmatic, un montage sonore bien connu de nos lecteurs fidèles, et qui reproduit le klaxon deux tons des locos S.N.C.F. (taaa-tiiiiiii-taaaa). Dans ce cadre, on peut réellement, physiquement, remplacer tout ceci par cela :
Merveilleux, vous allez dire... Évidemment mais attention : en réalité on ne fait que déplacer le
problème. Ce qui est réalisé par les circuits intégrés (le 4017 pour la
séquence tiii-taaa, les 555 pour le son de 370 et 660 Hz) l´est maintenant par
le programme embarqué dans le microP, et ce programme, il faut bien
l´écrire.
Donc, en pratique, utiliser des microP revient surtout à
“traduire” les assemblages de circuits intégrés (et autres composants) chers à Jidé par des
programmes, sachant que les capacités des microP sont telles que les
logiques que l´on peut mettre en oeuvre sont presque illimitées en nombre
de circuits et d´opérations. Par exemple, dans notre exemple, comme j´ai
encore quatre “pattes” de libres sur les huit (les pattes 3, 4, 5 et 7), je peux définir quatre autres
successions de tiiii-taaaa différentes, simplement en ajoutant 4 autres
boutons poussoirs.
Attention : pour les besoins de PicTrain, je n´utilise
qu´une petite partie des fonctions des microP, je simplifie beaucoup, je
suis à la limite du simplisme. Même un tout petit microP comme le 12F675
que j´utilise fréquemment comporte des tas d´autres possibilités :
convertisseur analogique-numérique, comparateur de tension, compteur d´impulsions...
qu´on aura peut-être l´occasion d´utiliser un jour dans nos p´tits trains.
 |
FAQ Allons donc, c´est impossible de remplacer tous ces composants par un seul truc à huit pattes ! Une preuve matérielle serait la bienvenue... — JIDÉ : Eh si, c´est possible, je ne le croyais pas non plus, “avant”... Voici la photo du montage complet en train de faire tiiii-taaa-tiiii devant moi... Tu n´y crois toujours pas ? Eh bien, voici la vidéo du même sujet, et avec le son ! |
|
|
 |
1.3. Comment ça marche ? |
La grande différence entre les circuits
logiques et les microP est le cycle du programme :
  Souvent les
circuits logiques sont utilisés de manière “statique” : il y a un
événement à un bout (bouton poussoir par exemple), et il se produit
quelque chose à l´autre bout (une succession de tiiii-taaaa par exemple), et
puis on revient au repos en attente d´un autre événement.
  Un
microP “tourne” tout le temps, c´est-à-dire qu´il exécute en permanence des instructions du programme : dans notre exemple, le microP
“regarde” toutes les 3/1·000·000 (trois millionnièmes !) de seconde si quelqu´un a appuyé
sur le bouton ; si c´est le cas il exécute les instructions spécifiques à
la production des sons tiiii et taaaa, et après retourne à la surveillance du
bouton. Mais il ne s´arrête jamais (sauf exception volontaire bien entendu, que
l´on verra plus tard). Pire, il peut faire deux choses en même temps !
 |
1.4. C´est quoi, un programme ? |
Un programme est une suite
d´instructions (de commandes) exécutées par le microP, et qui
permettent d´obtenir le résultat voulu. Dans la gamme de microP que
j´utilise, il y en a 35 instructions différentes, mais au plus 20 utilisées couramment, et qui
permettent cependant d´obtenir à peu près tout ce que l´on désire.
Dans notre exemple, on peut résumer le programme comme ça :
  Je
regarde si on appuie sur le bouton.
  Si oui, je mets “là où il faut”
les paramètres du son tiiii.
  J´émets le son tiiii.
  Je mets
“là où il faut” les paramètres du son taaaa et j´émets le son taaaa.
  Je
refais la même chose pour un autre son tiiii.
  Et je retourne au
début pour regarder mon bouton.
La totalité de ce qui est ci-dessus
fait 50 lignes de programme, ce qui peut paraître beaucoup, mais chaque
ligne est vraiment une seule instruction très élémentaire, facile à
comprendre.
La programmation est un jeu logique, que l´on peut
comparer au jeu, très fameux en modélisme ferroviaire, qui consiste à faire se
croiser deux trains sur des voies trop courtes pour les contenir. Chaque
manoeuvre est une instruction, et la succession des manoeuvres est un
programme.
La programmation n´est pas plus compliquée que cela
(elle est juste un peu plus longue...)
 |
1.5. Comment fait-on, pratiquement ? |
Là, c´est
effectivement un peu plus compliqué que les montages à circuits
logiques.
  Bien entendu, au départ, il faut vraiment savoir ce que
l´on veut faire : en termes de métier, il faut “spécifier” le montage, le décrire, en français... Un
gribouillis sur une nappe en papier est suffisant, mais il est en
général utile de le savoir avant de commencer.
  Ensuite, et en
parallèle, on définit ce qui sera fait par le microP et ce qui reste
électronique, et on commence la conception du programme et du schéma
électronique (pour ce qui est de cette dernière partie, je vous renvoie
à tous les articles généraux du Meccano électronique ici même).
  Pour
l´écriture du programme, on utilise un logiciel fourni par le fabricant
du microP (c´est une des raisons qui me pousse à utiliser les PIC de
Microchip : leurs logiciels sont gratuits). Cet outil possède des
fonctions sophistiquées, mais il est aussi et surtout un traitement de
texte permettant d´écrire et de contrôler ses programmes.
 |
PTI+ Le
langage utilisé s´appelle l´assembleur,
il est à mi-chemin entre notre langage parlé courant
et les zéros et les uns du microP. Voici une
phrase en français : "Le bouton poussoir
est-il appuyé ?". Voici la même
phrase en assembleur : "btfss entree1, poussoir".
Voici encore la même en “langage machine” binaire
: "00
01 11 00 00 11 10 01 10 11 10 11". |
|
|
Lorsque
le programme (en assembleur) est au point (ou lorsque l´on croit que cela va
fonctionner...), le même logiciel permet de le traduire en un fichier
(binaire) particulier utilisable par le microP.
 |
 |
 |
  La dernière opération est d´inscrire (on dit même “graver”) ce fichier final dans le microP, et puis de tester. C´est dans cette opération qu´intervient le seul investissement financier nécessaire : le programmateur de microP, une carte électronique spécialisée, branchée sur votre P.C. (sous Windows ou éventuellement Linux) via un câble série.
Cet outil sert à écrire le programme dans le microprocesseur. Pour ma part j´utilise un outil du commerce, le “mini-programmateur de PIC”, disponible chez Gotronic en V.P.C. pour 59 euros (référence 24230). [Ci-contre , photo © Gotronic.] |
|
 |
 |
1.6. Quelques caractéristiques générales |
 |
1.6.1. Mes microprocesseurs : PIC de Microchip |
Il existe une dizaine de fabricants de microP, et chacun
a une gamme de 50 ou 100 modèles différents, il devient donc difficile
de faire un choix.
Dans la plupart des montages, j´utiliserai le
microP 12F629 (ou 12F675) de Microchip (une de ces deux références précisément, aucune autre !), et ce pour trois raisons :
  Les outils de développement (hors le programmateur, la carte) sont
gratuits.
  Ces microP sont assez faciles d´utilisation et bien
adaptés aux utilisations non professionnelles comme les nôtres.
  Il
ne sont pas chers (12F675 = 1,60 euro la pièce par dix, chez
Sélectronic).
Et aussi parce qu´ils sont la matière première des cours d´un des papes francophones de
la vulgarisation, je veux parler de Bigonoff (voir les liens).
 |
1.6.2.
Caractéristiques électriques |
 |
 |
 |
Quoique puissants et minuscules [ci-contre un microP tel qu´il se présente avant qu´on le protège par un pavé de plastique et qu´on lui fixe ses huit pattes, photo © Microchip], les microP ne sont pas plus délicats que les circuits intégrés logiques, et les entrées/sorties permettent en général des intensités de 20 mA par patte , suffisantes pour des leds “normales”.
Cependant, les microP fonctionnent tous sous 5 volts, et nécessitent donc une alimentation séparée (facilement détournée de l´alimentation générale 12 volts du Meccano électronique ou de toute alimentation ferroviaire du commerce, sortie accessoires : voir notre nouvelle AlimFixe). |
|
 |
Par ailleurs, je pense qu´il est en général
utile de séparer les circuits logiques des circuits d´alimentation des
trains par des optocoupleurs, pour des raisons de sécurité de nos puces.
Les parasites générés par les moteurs et surtout par le contact
rail/roue sont quelquefois très gênants pour le bon fonctionnement des
montages, et par ailleurs une “remontée” du 15 volts dans un microP le
fait fumer... et mourir !
Mais cette discussion se tiendra lorsque l´on examinera
le “Numerax à microP”, une alimentation de train à boutons poussoirs.
 |
1.7 Liens Internet |
Microchip :
Le site du fabricant des microP que j´utilise, vous y trouverez
absolument toute la documentation, ainsi que les outils de programmation
(gratuits). Bien évidemment, c´est en anglais.
Bigonoff : Un des meilleurs
sites de vulgarisation des microprocesseurs, surtout les PIC de
Microchip. Je vous le recommande chaudement, beaucoup de mes
connaissances viennent de ses cours.
 |
FAQ On m´a dit que les ordinateurs, c´était compliqué, et qu´un type qui se lance là-dedans n´a plus le temps de s´occuper de son réseau ! — JIDÉ : C´est même pas vrai, voici le réseau en N que Psi est en train de se construire . Ainsi que les plus grands modélistes nous le conseillent, il a commencé par une maquette de maquette au 1/10 faite en carton et dessinée par Xtrcad... |
|
|
|