Notre ouverture
sur les microcontrôleurs, depuis aujourd´hui seize mois (premier
article par “Pierre Psi”, en mars 2007, de la série PicTrain)
a connu un succès certain : nombreux courriers d´encouragements et, surtout,
de nombreux lecteurs s´investissant dans l´aventure — et partageant avec Ptitrain
(“PatRuff”, Christian Gauthier,
J.-C. Grimaldi, Raymond Charlet),
ou la liste dédiée Ptitrainmatique, ou entre
eux de façon discrète (mais je le sais !)...
Moi-même j´hésitais depuis
quatre-cinq ans à passer de la logique “discrète” à la logique programmée :
c´est, comme à des dizaines d´entre vous, l´intervention de Pierre
Psi qui m´a donné le nécessaire coup de pied au derrière,
grâce à son choix (véritablement “inspiré”) du plus petit,
du plus répandu, du plus moderne et du moins cher des composants de cette “technologie”...
Ouf, j´allais pouvoir enfin matérialiser
des projets aussi simples que le Tourniket
complexifier les idées sur le Super4017 mais aussi simplifier
le ver luisant, réaliser des
affichages, voire requinquer la rubrique T.T.T. dont les derniers développements
devenaient tels, que même s´ils fonctionnaient correctement ,
je me refusais à publier des travaux aussi... compliqués.
 |  | |
Car
la logique “discrète” en prend, de la place, et des soudures : ce décodeur
, ultra-simple à concevoir,
demandera des heures de prise de tête pour dessiner l´implantation la plus
simple et compact en Cimec et des jours pour la même chose en circuit imprimé... | |  |
 | Enfonçons
encore le clou |
|  |  |
 | | Enfonçons
encore le clou : le schéma ci-contre ,
lui, n´a pas été simple à concevoir (quand on appuie sur un
ou plusieurs des quatre boutons poussoirs de gauche il se produit un événement
parmi six possibles). Il a fallu utiliser les épouvantables tables de Karnaugh
(voyez à “Karnaugh”
sur Google !) ou bien la solution bizarre des minterms
et maxterms (dont j´ai en un an tout oublié, mais qui me donne
encore des cauchemars)... |
Rajoutons une couche : ce schéma
théorique utilise deux
portes inverseuses alors qu´elles sont vendues par six, des portes et
alors qu´il n´existe pratiquement que des ou - non-ou, etc. Pour
le fabriquer en vrai, il faut donc traduire tout cela en portes différentes — ce qui
équivaut non seulement à des semaines de transes mais à une impossibilité
de parution (je ne vais pas dire à mes lecteurs : faites comme moi...).
À peu près
tout ce que viens de critiquer dans la logique “discrète” est l´affaire des
PIC, car toutes les connexions, les soudures, sont à l´intérieur
et gérées par... du traitement de texte ! Une fois le comportement décrit
(“si appui sur bouton gauche, alors accélérer le train... si appui prolongé
sur bouton de droite alors ceci cela...”), on le saisit en mode texte, on grave le PIC, on
teste... Quand on est content (jamais la première fois !), on publie le code
et tout le monde peut copier, modifier, améliorer...
Je me suis donc lancé dans le travail
perso sur les PIC, après avoir essayé et admiré toutes les réalisations
de Psi, PatRuff et leurs amis...
C´est là que j´ai pigé
que “yaka faire du traitement de texte” était une vue de l´esprit, et que
le boulot m´était ardu, à cause de l´utilisation de l´assembleur
de Microchip.
 | Un
peu d´histoire |
Je ne suis ni un débutant ni un professionnel
de la programmation ; si “on” ne me faisait pas changer d´ordinateur tous
les quatre ans, et si j´avais pu faire seulement une étude prolongée
d´un environnement, je serais (depuis 1980) un vieux routier mais la vie (Bill
Gates, l´Éducation nationale, la mode d´Internet...) en a décidé
autrement et je galère depuis ces quasi-trente ans entre Pascal UCSD (en français
le matin, en anglais l´après-midi, loi Toubon obligeait), assembleur Z80, Basic
ZX81, Pascal sur Sord (avec des étiquettes
collées sur chaque touche du clavier), MS-Basic, BBC Basic...
 |  |  |
... Assembleur
6502, Apple Pascal pour 68000, Applescript, Z-Basic, C, Java, HTML, Javascript, CSS, voire
Python (rien que pour utiliser PaintShop), Grep, batch, Excel, Word Basic... Le dernier
en date de ces 34 (je les ai comptés) langages étant Autohotkey pour faire
des macros (géniales) sous XP et Vista !
Croyez-vous que cette accumulation
à la Prévert m´ait formé ?
Non, ou peu, car chacun de ces 34 langages
est frappé de la malédiction de Babel : “Tu ne comprendras rien à
ce que dit ton voisin”... | |  |
Nonobstant, on pourrait quand même
en un mot dire que le passage de (par exemple) Excel à Pascal se résume à
des traductions de syntaxe : =si(Revenu<>5000; "Heureux";
CouleurRouge) pour l´un, pour l´autre if Revenu
<> 5000 then writeln('Heureux') else Couleur:=Rouge; (Remarquez l´énigmatique
signe := on dirait un smiley). Le langage C est carrément normalisé
et échangeable, la différence entre les Basic est cosmétique, les Pascal
sont frères...
Mais les concepteurs se sont amusés
à semer d´autres embûches, comme le choix de la présentation des
commentaires (et on nous dit toujours “mettez des commentaires pour vous y retrouver par
la suite”) : je pense qu´on doit compter 20 possibilités de syntaxe
différentes pour une chose qui n´est même pas utilisée par l´ordinateur !...
Vous travaillez sous HTML <!-- voici une remarque -->
, en C /*voici une autre remarque*/, en assembleur PIC
;voici une remarque, en Basic ´en
voici une autre, et chaque invention logicielle génère son vocabulaire,
sa syntaxe, sa ponctuation...
 | Revenons-en
à nos PIC |
Or donc — revenons-en à nos PIC.
J´avoue : je ne sais pas, après
un an, manipuler à l´aise l´assembleur !
Je sais recopier, comprendre, modifier, améliorer...
mais mis au pied du mur devant un projet aussi simple que le Balbid,
je sèche. Je pense que le bât blesse au niveau des compteurs (je n´arrive
pas à traduire un organigramme sans le secours des for...next
des langages évolués), au niveau des tests (je ne sais pas traduire un pauvre
if...then...else en codes PIC bsf
bcf decfsz..., sauf à passer une heure sur chaque “losange” de l´organigramme),
et, comme j´hésite encore au sujet des BANK,
je vous passe mes soucis sur les interruptions ou le rôle si différent des
movfw movwf !
Bref, en assembleur, je rame.

J´ai été tenté
d´aller voir ailleurs, donc, comme je l´ai (hélas !) fait à
d´innombrables reprises en informatique (le plus crève-coeur : Windows
remplaçant Macintosh, suite à la défection de Apple !)...
Mon itinéraire a été
guidé, comme pour le Meccano électronique,
par : la simplicité, la gratuité
(le plus possible), la reproductibilité (selon ma philosophie,
rien ne sert de faire quelque chose si les autres ne peuvent en faire autant ; et cela
s´applique au tournage-fraisage aussi bien qu´à la peinture !), l´abondance
de documentation (surtout sur Internet, car les livres d´électronique
sont hors de prix, ou en anglais), la modernité (ne pas
utiliser un outil délaissé par ses concepteurs en 2004 !), l´ouverture
(pouvoir aller du simple au complexe sans devoir changer d´outil)... Et un peu par
hasard, j´ai opté aussi pour l´intégration :
un ordi, un câble USB et une carte,
dont le PIC n´a même pas à être extrait.
N.-B. Les cartes
programmateurs USB sont bizarrement encore rares, alors que les ordi modernes n´ont
plus de prises RS232. Aussi à prendre en compte : pas de soucis avec Vista alors
que l´installation de Microchip sur cet O.S. est assez... délicate.
 |  |  |
 | |
J´ai choisi : un ordinateur sous Windows (désolé...),
un langage évolué (le compilateur MikroBasic
gratuit de MikroElektronika), le programme
PicFlash (de la même source, intégré,
gratuit) et enfin une carte EasyPic
qui sert à la gravure in situ du PIC aussi bien qu´aux tests et à
l´expérimentation, sans même devoir ôter le PIC de la carte ;
carte qui comporte boutons poussoirs,
leds, sept segments, RS232, quartz, commande via USB — bien plus qu´il ne nous en
faut pour commencer, mais à un prix presque incroyable de 129 dollars sur Internet
ou 129 euros via un distributeur français ! |
C'est moins que
le prix des composants présents sur la carte, la raison du phénomène
serait-elle l´origine, ex-yougoslave, du matériel ? Il y a des supports
pour toutes les tailles de PIC, jusqu´aux gros 40 pattes qui pilotent des écrans
graphiques à cristaux liquides, des sorties USB, des interfaces MP3... J´ai
ajouté dans un petit espace vide une “plaque sans soudures” au format d´un
Cimec... (La photo représente une “vieille” carte version 4 aujourd'hui
remplacée par la version Easypic 5 ; les différences sont minimes.) |
 |  |
Notez bien que
le code .HEX qui sort par logiciel pourrait être gravé dans le PIC avec votre
programme actuel (par exemple IC-Prog utilisé par Psi) et votre carte actuelle sans
aucun problème, si ce n´est de mettre et d´enlever le PIC à chaque
modif, ce que EasyPic fait, sans manip, en moins de huit secondes !
 | Tous
les pourquoi |
Pourquoi MikroBasic et pas PicBasic ou un
des cinq autres ? Pourquoi MikroElektronika ? J´ai longuement (six mois)
testé le pour et le contre. Cela fera l´objet de débats, que j´espère
sans haine ( je
crains surtout la réaction des C-istes !), sur la liste Ptitrainmatique.
En revanche je réponds tout de suite à votre question :
Est-ce qu´on
abandonne PicTrain ? Est-ce que ce qu´on a déjà fait avec l´assembleur
est lettre morte ? Est-ce qu´on reprend tout de zéro ?
Non. Vous ne pourrez pas suivre
la suite de mes aventures si vous n´avez pas lu et compris PicTrain :
ce qui s´y trouve concerne à 75 % tous les PIC,
car un langage évolué (comme son nom l´indique) n´est qu´une
évolution du langage de base du microP, l´assembleur. Psi a fait un travail
pédagogique en français quasi unique (l´autre phénomène
étant saint Bigonoff,
mais il se fiche du train) !
Je vous demande de voir cette nouvelle
série Basic, non comme concurrente de Pictrain,
mais comme la suite (avec des PIC) du Meccano électronique :
je n´ai pas envie de réécrire ou de vous voir réécrire
une alim à boutons poussoirs comme Pictrain2
ou traduire TramPic. Mais plutôt de vous
permettre de concevoir en dix minutes une minuterie simple comme le désormais célèbre
montage du Meccano, le mst555a ou un feu
rouge routier, ou un “lanceur de dé” pour décider au hasard qu´un
train s´arrête ou pas dans une gare, ou la gestion (qui pourra devenir hyperréaliste)
d´un grumier à motorisation par FÀM...
c´est-à-dire beaucoup de ce qui a été fait en Meccano
électronique.
 |  |  |
 | | Je
ne cache pas en revanche que le Youbiton ou
le Cheniyou seront, eux, des proies faciles
pour le Basic et bénéficieront du passage à l´environnement
évolué : il devenait (selon moi) excessif de devoir tant écrire
et réfléchir pour engendrer des actions aussi primaires !
Dans quelques jours, le premier article
de la série concernera une minuterie simple dont voici
le programme au complet ! Et,
pour que le clou ne ressorte plus du trou, voici une comparaison de schéma entre
une minuterie à 555 et la
même avec un PIC... |
|