Publications
> Technique
> Les microcontrôleurs PIC pour les débutants (avec MikroPascal)
Dernière mise à jour :
23/01/2022
Présentation
Débuter avec des PIC... Quelle drôle d'idée !
|
Les
microcontrôleurs PIC pour les débutants
(avec MikroPascal)...
Entre "trop facile" et "trop dur"... le langage Pascal pour écrire des
logiciels pour PIC
Paru le 16 décembre 2013
chez
l'éditeur Publitronic
/
Elektor.
ISBN 978-2-86661-193-4
|
Infos Elektor / Publitronic
Première
de couverture et
Quatrième
de couverture
Fiche
du livre et
Table
des matières
Descriptif
général du livre
Extrait
livre
Où acheter le livre "Les microcontrôleurs PIC..." ?
Le livre "Les microcontrôleurs PIC pour les débutants..." est
disponible chez les distributeurs suivants au tarif de
48,50 € en version
broché.
Tous les points de vente (liste mise à jour
le 13/02/2020) :
Contenu du livre
Le plan qui suit
est celui que j'ai conçu "de base", tel que je souhaitais le trouver
en me plongeant pour la première fois dans le sujet. 440 pages.
Le contenu de ce livre va-t-il répondre à vos attentes ?
Je
ne vous ferai pas l'affront d'affirmer que ce livre
comporte les
réponses à toutes vos questions. Ce serait un horrible
mensonge.
Vous avez tous des besoins différents. Sachez que pour ce livre, je
devais faire un
choix (lié au nombre max de pages) :
- soit détailler de façon très précise un nombre restreint de
sujets,
- soit aborder un grand nombre de sujets mais avec un
degré
de détails moindre.
Pas facile de trouver l'équilibre... mais j'ai fait de mon
mieux. Si vous avez la moindre question sur son
contenu, n'hésitez pas à m'écrire !
Remarques
- Les
circuits développé dans ce livre ne s'appuient que sur des "petits" PIC
12F/16F/18F (8 bits) facile d'accès. Les PIC24/dsPIC/PIC32 (16 bits et
32 bits) sont justes survolés. Pour un débutant, je pense qu'il est
beaucoup moins risqué de commencer... par la base.
- Certains sujets demandent beaucoup d'explications, le
principal se
trouve dans le livre et certains détails fins sur mon site. Les projets
concernés sont estampillés de l'info [Plus de détails sur mon site],
voir aussi Page Compléments.
Table des matières
1 Organisation du livre
2 Présentation des PIC
2.1 Au début était... la logique câblée
2.2 Arrivée du microprocesseur
2.3 Arrivée du microcontrôleur
2.4 Différentes familles de PIC
2.4.1 PIC « de base » 8 bits (PIC10, PIC12, PIC16, PIC18)
2.4.2 PIC « évolués » 16 bits (PIC24, dsPIC30, dsPIC33)
2.4.3 PIC « haut de gamme » 32 bits (PIC32)
2.4.4 Différentes versions d'un « même » PIC
2.5 Les mots qui fâchent
2.5.1 Bit, octet, mot, entier, … (bit, byte, word, integer, …)
2.5.2 Registres (registers)
2.5.3 Entrées/sorties (inputs/outputs)
2.5.4 Mémoire (memory)
2.5.5 Bus
2.5.6 I2C / SPI / OneWire
3 Assembleur et langage machine
3.1 Exécution de commandes
3.2 Langage machine
3.3 Langage assembleur
3.4 Compilation
3.5 Utilisation d'un langage plus « parlant »
3.6 Correspondance entre Pascal et assembleur
4 Présentation de MikroPascal
4.1 Constitution d'un programme
4.1.1 Structure d'un programme
4.1.2 Les variables
4.1.3 Quelques règles simples
4.1.4 Les opérateurs
4.1.5 Les fonctions spéciales
4.2 Introduction à MikroPascal
4.3 Principes de base
4.4 Principes avancés
4.4.1 Simulation
4.4.2 Débogage ICD
4.5 MikroPascal et programmateurs
5 Configuration d'un PIC
5.1 Mot de configuration (Config Word)
5.2 FOSC (Oscillator) – Horloge / oscillateur
5.2.1 Vitesse d'exécution des instructions
5.2.2 Localisation des broches affectées à horloge
5.2.3 Différents modes d'horloge
5.2.3.1 Mode INTOSC (oscillateur autonome intégré)
5.2.3.2 Modes LP, XT et HS (avec quartz ou résonateur
céramique externe)
5.2.3.3 Modes RC (avec condensateur et résistance externes)
5.2.3.4 Mode ER (avec résistance externe)
5.2.3.5 Mode EC (oscillateur externe)
5.2.3.6 Sortie d'horloge (CLKOUT / Clock out)
5.2.4 PLL et multiplication de fréquence
5.2.5 Blocage de l'oscillateur (fonction SLEEP / Power-Down)
5.2.6 Timers et compteurs
5.2.7 Fréquence et tension d'alimentation
5.2.8 Overclocking
5.2.9 Remarques diverses
5.3 MCLR (Master Clear Reset) - Reset général
5.3.1 Reset manuel
5.3.2 Reset automatique
5.4 WDT (WatchDog Timer) – Chien de garde
5.5 BOR (Brown-Out Reset) – Détection de chute de tension
5.6 POR (Power-On Reset) – Reset à la mise sous tension
5.7 PWRT (Power-up Timer) – Temporisateur de démarrage
5.8 LVP (Low Voltage Programming) – Programmation en basse
tension
5.9 CP (Code Protection) – Protections de la mémoire
5.10 Configuration des broches d'entrée/sortie
5.10.1 Des broches à tout faire
5.10.2 L'heure du choix...
6 Programmation d'un PIC
6.1 Cinq fils suffisent pour programmer un PIC
6.2 Modes de programmation HVP ou LVP
6.3 VPP-First ou VDD-First ?
6.4 Programmation sur support (off-board)
6.4.1 Programmateurs simples
6.4.2 Programmateurs évolués (platines de développement)
6.5 Programmation sur circuit final ICSP
6.5.1 Câblage d'un connecteur ICSP
6.5.1.1 Adaptateur ICSP vers support standard
6.5.1.2 Adaptateur support standard vers ICSP
6.6 Programmation avec bootloader
6.6.1 Utilisation d'un bootloader COM/RS232
6.6.2 Utilisation d'un bootloader USB
6.6.3 Autres types de bootloader
6.6.4 Plus besoin de programmateur ?
6.7 Alors, ICSP ou bootloader ?
6.8 Choix du programmateur
6.8.1 Programmateur à faire soi-même
6.8.2 Programmateurs universels ?
6.8.3 Durée de programmation d'un PIC
7 Interruptions
7.1 Interruption Timer
7.2 Interruption via les ports d'entrée
7.3 Autres types d'interruption
8 Utilisation des entrées / sorties
8.1 Activation d'une sortie
8.1.1 Des sorties... mais aussi des entrées
8.1.2 Clignotant à LED simple
8.1.3 Gradateur de lumière à LED
8.1.4 Pilotage d'un relais ou d'un moteur
8.2 Production d'un signal sonore
8.2.1 Signal sonore continu
8.2.2 Signal sonore bref (bip)
8.2.3 Signal modulé (sirène)
8.2.4 Mélodie (suite de notes)
8.2.5 Boîte à rythmes -
[Plus
de détails sur mon site] voir
page
Compléments
8.2.6 Lecture de fichiers WAV / RAW -
[Plus de
détails sur mon site] voir
page
Compléments
8.2.7 Lecture de fichiers MP3 (approche)
8.3 Capture de signaux logiques
8.3.1 Capture de signaux lents
8.3.2 Capture de signaux rapides
8.3.3 Encodeur optique
8.4 Utilisation des comparateurs
8.5 Mesure d'une tension
8.5.1 Mesure de tension(s) avec CAN interne
8.5.2 Mesure de tension(s) sans CAN interne
8.6 Mesure d'un rapport cyclique
8.6.1 Mesure du rapport cyclique après intégration
(analogique)
8.6.2 Mesure du rapport cyclique directe (numérique)
8.7 Mesure d'une fréquence
8.7.1 Mesure d'une fréquence après conversion N/A simple
8.7.2 Mesure directe d'une fréquence
8.8 Production d'une tension analogique
8.8.1 Production d'une tension analogique avec un réseau R-2R
8.8.2 Production d'une tension analogique avec un DAC intégré
8.8.3 Production d'une tension analogique avec un signal PWM
8.8.4 Production d'une tension analogique par moyen détourné
8.9 Usage de capteurs et détecteurs
8.9.1 Capteur de contact en tout ou rien
8.9.2 Capteur de lumière en tout ou rien
8.9.3 Capteur de lumière en proportionnel
8.9.4 Capteur de température analogique
8.9.4.1 Mesure avec thermistance
8.9.4.2 Mesure avec diode silicium
8.9.4.3 Mesure avec capteur calibré LM35
8.9.5 Capteur de température numérique
8.9.6 Capteur d'humidité analogique
8.9.7 Capteur d'humidité numérique -
[Plus de
détails sur mon
site] voir page
Compléments
8.9.8 Capteur de pression
8.9.9 Capteur capacitif et touche sensitive
8.9.9.1 Touche sensitive avec PIC 12F1840
8.9.9.2 Touche sensitive avec PIC 18F45K22 -
[Plus
de détails sur mon
site] voir page
Compléments
8.9.10 Capteur de position (accéléromètre) à 3 axes
8.10 Multiplexages des entrées / sorties
8.10.1 Multiplexage de sorties
8.10.2 Multiplexage d'un clavier et d'un afficheur à LED
8.11 Affichage sur écran LCD
8.11.1 Principe général de fonctionnement
8.11.2 Affichage LCD de type Texte
8.11.3 Affichage LCD de type Graphique
9 Gestion des données
9.1 Lecture / écriture en EEPROM
9.1.1 Quel type de données peut-on sauver en EEPROM ?
9.1.2 Ecriture / lecture d'une donnée de 8 bits (octet / byte)
9.1.3 Ecriture / lecture d'une donnée de 16 bits (mot / word)
9.1.4 Ecriture / lecture d'une donnée de 32 bits (mot long /
longword)
9.1.5 Ecriture d'une donnée de 7 bits ou moins
9.2 Données RS232
9.2.1 Emission et réception de données RS232
9.2.2 Utilisation d'un buffer circulaire
9.2.3 Différences entre RS232 et RS485
9.2.4 UART USB
9.3 Données MIDI
9.3.1 Emission de données MIDI
9.3.2 Réception de données MIDI
9.4 Données RC5 / RC6
9.4.1 Emission de données RC5
9.4.2 Réception de données RC5
9.5 Données DMX
9.5.1 Emission de données DMX
9.5.2 Réception de données DMX
9.6 Liaisons SPI et I2C
9.6.1 Présentation du bus I2C
9.6.2 Présentation du bus SPI
9.6.3 Lecture / écriture de valeurs logiques avec PCF8574
(I2C)
9.6.4 Lecture / écriture de valeurs analogiques avec PCF8591
(I2C)
9.6.5 Lecture / écriture avec mémoire EEPROM externe (I2C)
9.6.6 Convertisseur A/N à 8 voies avec MCP3208 et N/A avec
MCP4921 (SPI)
9.6.7 Lecture / écriture de valeurs logiques avec MCP23S08
(SPI)
9.6.8 Utilisation simultanée de composants I2C et SPI
9.7 Liaison USB
9.7.1 Concepts de base
9.7.2 PIC 18F2550 et liaison USB fonctionnelle
9.7.3 PIC 18F2550 et utilisation pratique
9.7.4 PIC 18F4550 et utilisation pratique
9.8 Liaison Ethernet
9.8.1 Concepts de base
9.8.2 18F45K22, ENC28J60 et liaison fonctionnelle
9.9 Liaison OneWire (1-Wire)
9.9.1 Mode d'alimentation parasite (parasitic power)
9.9.2 Protocole de communication
10 Annexe 1 – Binaire, décimal et hexadécimal
10.1 Des représentations numériques diverses
10.1.1 Représentation décimale
10.1.2 Représentation binaire
10.1.3 Représentation hexadécimale
10.2 Passer du binaire au décimal
10.3 Passer du décimal au binaire
10.4 Passer de l'hexadécimal au décimal
10.5 Passer du décimal à l'hexadécimal
10.6 Passer du binaire à l'hexadécimal
10.7 Passer de l'hexadécimal au binaire
11 Annexe 2 - Convertisseurs analogique / numérique
12 Annexe 3 – Choix du « bon » microcontrôleur
13 Annexe 4 - Logiciels
14 Annexe 5 – Ressources
Naissance de l'idée
Au départ, j'avais l'idée de développer
plusieurs chapitres de type "tutoriels" sur mon site. J'ai d'ailleurs
commencé à le faire, en m'appuyant sur
quelques bases et
exemples pratiques.
Une première personne m'a demandé si je comptais un jour écrire un
livre sur les microcontrôleurs de la famille ARM / AVR, question à
laquelle j'ai répondu par la négative car je n'ai ni la connaissance
suffisante ni la pratique pour cette famille de composants. Puis une
autre
personne m'a demandé si je comptais écrire un livre sur les
microcontrôleurs PIC. Sans être spécialement pessimiste, je me suis
demandé si cela serait judicieux, vu le nombre d'ouvrage traitant déjà
du sujet. "Oui, mais à ce jour il n'existe aucun livre écrit en
français qui aborde le sujet avec l'outil MikroPascal". Hum... je
commence à connaître assez bien le langage Pascal après pratique de
MikroPascal et de Delphi. Je ne voulais surtout pas écrire un
livre comme ça, juste pour "faire bien". Quand j'écris, je tiens à ce
que les lignes de texte soient utiles, et pour que ça
le soit il me faut une aisance suffisante avec le sujet. En même
temps, il y avait des points que je ne maîtrisais
pas totalement
(USB
et Ethernet) mais que je souhaitais développer. Il n'y a pas
si longtemps, je
ne savais pas comment écrire ou lire des données dans une
carte SD/MMC. J'ai mis un sacré bout de
temps pour assimiler le concept, ayant tout simplement eu un mal fou
pour
trouver l'info de base qui me manquait. En m'attaquant à
l'USB et à l'Ethernet, j'étais dans la même philosophie de
découverte
: me voir patauger (pas tant que ça en fait) me ravissait car je voyais
alors ce qui manquait aux
débutants. Tout simplement ! Pour les exemples pratiques, j'utilise des
PIC courants et bon marché
tels les 12F675,
16F628A, 16F88, 18F2550 ou encore 18F45K22.
Vie après le livre
Tout comme je l'ai fait dès le
début pour
mon
premier livre et pour
mon
second livre, j'ai prévu de la place sur mon site pour
partager avec vous toutes les questions
relatives au contenu du livre.
Correction erreurs, compléments, questions diverses
et retours des lecteurs
Correction des erreurs (on en fait
toujours), réponse aux questions diverses, compléments d'information,
vidéos "tutoriels", etc...
- Page Compléments
qui comporte de nouvelles idées et vidéos "tutoriels" qui s'appuyent
sur certains chapitres "pratiques" du livre.
- Page Corrections,
qui recense les erreurs qui sont passées au travers des mailles du
filet.
- Page Au
secours ! qui répond aux questions pour lesquelles vous
n'avez pas trouvé réponse dans le
livre.
- Page Avis
qui résume les retours (positifs et négatifs) des lecteurs.
Vos avis (avant parution)
Comme pour mon
dernier
livre,
j'attache vraiment une grande importance à "coller" aux attentes des
lecteurs.
C'est pourquoi je m'étais permis de vous réserver une place
pour
vos remarques, suggestions, attentes...
Un
grand merci à ceux qui m'ont écrit pour me donner leur
avis/suggestions,
j'apprécie
vraiment.
Ludo - 07/09/2013 (livre d'or)
Enfin
! Bientôt la parution. Je suis impressionné par le nombre de chapitres.
Il y a des chapitres fort intéressants pour débuter. Mais certains
sujets ne relèvent plus du simple débutant tel que les bus de
communication. En connaitre un est bien, mais tous les employer et
surtout les expliquer, relève d'un sacré défi ! J'ai un livre de
programmation écrit pour les débutant, et même si c'est expliqué,
mâché, il reste et demeure complexe en anglais. Cela demeure un facteur
d'incompréhension élevé, même si certain ne voudront jamais l'avouer.
J'ai beau avoir lu différents ouvrages techniques, j'ai appris beaucoup
de choses sur Sonelec.com. Si ton ouvrage reflète ton site, alors ce
sera un succès, j'en suis sûr. Je ne sais combien d'heures tu as pu y
consacrer mais pour ma part je te dis Merçi Remy tout simplement !
Bonjour
Ludo, je serais bien incapable de dire le nombre d'heures passées sur
ce livre, mais il y en a un sacré paquet ! Rien qu'en juillet 2013, j'y
ai consacré entre 10h et 12h chaque jour. Il faut écrire le texte, mais
aussi réaliser et tester tous les montages un à un, développer les
programmes correspondants, tout cela demande énormément de
temps.
J'y ai mis tout mon coeur et j'espère que le contenu plaira. On est
toujours un peu anxieux lors du premier tirage, à cause des erreurs qui
peuvent subsister, et puis surtout parce qu'on ne sait pas si ce qu'on
propose va plaire à la majorité. Je me suis largement appuyé sur les
demandes reçues jours après jours, j'espère ne pas être passé
à
coté de points importants. Bon, de toute façon j'ai mon site
pour
assurer le suivi, les corrections, les compléments d'infos, et je
réponds toujours aux mails ;-)
Matthieu - 28/08/2013 (mail)
Je
me réjouis de pouvoir lire ton nouveau livre sur les pics. J'ai déjà en
ma possession une platine Easypic 7, mais il est vrai que sans "guide"
les pics sont assez dur à appréhender. Alors j'attends avec impatience
de pouvoir acheter ton livre. Petite questions : est-ce que dans le
livre il y aura une section du genre : "matériel à commander" ? J'ai le
matériel de base mais il faudra que je commande des pics, quartz,
décodeur,... et je voudrais être prêt à commencer dès que j'aurais ton
livre ! Est-ce que c'est possible d'avoir la liste matériel que tu
recommandes d'avoir chez nous, avant la sortie du livre, pour passer
les commandes ? Je te remercie encore beaucoup pour ton travail et je
t'encourage à continuer et le plus important en te faisant plaisir ;-)
Bonjour
matthieu et merci. Je n'ai pas prévu de section "matériel à commander"
car cela dépend des besoins de chacun. Tel personne préfèrera réaliser
tel montage, telle autre sera attirée par une autre réalisation. Je
conseille bien sûr quelques références de PIC, peu coûteux et dotés
d'assez de ressources pour faire des choses sympa, mais ce n'est un
secret pour personne. Ceci dit tu peux jeter un oeil à ma page
Débuter,
où je donne une liste de composants qu'on utilise assez
souvent en
électronique. Coté PIC, je pense utile d'avoir en stock quelques
quartz ou résonnateurs céramiques de valeurs différentes, par
exemple 4, 8 et 20 MHz.
Gilles - 24/07/2013 (livre d'or)
Maintenant
le noyau dur auquel je me consacre est la programmation des PIC. Chose
qui me paraissait encore du "chinois" il y a quelque temps commence un
peu à s'éclaircir. Programmation en MIKROBASIC qui a quelques airs de
famille avec le MIKROPASCAL. Il est vrai qu'il subsiste encore quelques
points obscurs. C'est pourquoi la publication de votre livre est
attendue avec impatience. Sinon ne changez rien à votre style de
rédaction avec votre coup de plume habituel parsemé d'humour qui gomme
souvent l'envie de ne pas poursuivre l'article jusqu'au bout.
Merci pour ces mots gentils, j'espère sincèrement que vous apprécierez
mon futur ouvrage.
Bertrand - 23/07/2013 (mail)
J'attends
avec impatience votre prochain livre ! Juste une question :
donnerez-vous des indications concernant le minimum à acquérir en
matériel et logiciel ?
Oui. Le chapitre 6 est consacré aux
différents types de programmateurs et platines de développement
(arborescence chapitre mise à jour le 23/07/2013), et je donne un ordre
de grandeur des prix actuels et des coûts de revient pour les appareils
à faire soi-même. L'annexe 4 (logiciels) liste les logiciels
les
plus répandus (si on exclue ceux qui ne sont pas maintenus, il
n'en reste pas beaucoup). Mais attention, je ne les connais pas tous et
n'ai
pas l'intention de les décrire dans le détails (il faudra le cas
échéant se reporter à leur manuel utilisateur et forums respectifs).
Benj - 29/08/2012 (livre d'or)
J'attends
avec impatience votre livre sur les pics en programmation pascal!! que
le temps va être long!! Bonne continuation et encore merci pour tout!
Le
livre avance toujours, c'est une certitude. Je suis impatient
de
l'achever, mais comme vous pouvez vous en douter, j'attache une grande
importance à ce que son contenu soit vraiment utile. Cela nécessite
plusieurs relectures par d'autres personnes et par
moi-même. Merci
à vous pour votre soutien.
Ludo - 21/04/2012 (livre d'or)
En voyant l'impressionnant
sommaire dédié au prochain livre sur les
µcontroleurs que tu écris, je jubile d'avance de sa sortie chez mon
revendeur électronique local. Si tu le conçois comme ton site alors ce
sera un livre parfait !
Bonjour Ludo, merci ! J'essayerai de ne pas te décevoir ;-)
Jean-Claude H. - 14/04/2012 (mail)
J'ai
57 ans. Je me suis mis à l'électronique de loisir depuis que je connais
ton site et, j'ai fais beaucoup de tes montages a base de Pic sans
jamais réussir à décoder les codes sources. Bon! Il est vrai que je ne
connais pas beaucoup la langue anglaise, mais je suis un autodidacte et
je m'accroche. J'ai rêvé un jour que je connaissais le MikroPascal et
que je pouvais comprendre le source, voir même le modifier ou en créer
un tout seul. Mais hélas à mon réveil une grande désillusion c'est
installée. Alors un soir que je regardais le firmament, j'ai vu une
étoile filante et bien entendu j'ai fais un vœux.. Mon Rémy faites que
je trouve un bon bouquin en français bien de chez nous sur le
MikroPascal et cela avant de mourir bête. Depuis je ne sais pourquoi,
j'ai l'impression que cela va se réaliser. Alors j’essaie de ralentir
le vieillissement en attendant la parution. Un grand merci à toi.
Bonjour
Jean-Claude, que de rêves j'ai pu faire étant enfant... Certains se
réalisent aujoud'hui. J'en vois même se réaliser que je n'ai
pas
encore rêvés. merci pour ces mots bien sympathiques.
Philippe M. - 31/03/2012 (mail)
Pour
le projet de ton livre sur les PIC et le micropascal,
c'est sûrement une bonne idée mais, me semble-t-il, si c'est
fait
différemment de ce qui existe déjà sur le marché. Je suggère par
exemple d'y associer tes petits montages pratiques d'application à
chaque chapitre important afin que le lecteur puisse faire le lien
immédiatement entre une application pratique et l'explication plus
théorique (voire plus rébarbative). Personnellement en PIC je n'y
connais absolument rien. Alors quand je lis le projet de
sommaire
du bouquin, je suis déjà un peu effrayé ! Ca me parait assez ardu et
manquer de progressivité. Mais comme j'aimerais bien en
utiliser
comme dans tes montages, j'aimerais trouver dans le premier
chapitre du livre des réponses à de simples questions pratiques de
débutant curieux : à savoir quels matériels je devrais me procurer a
minima et si je peux programmer avec un simple macbook, si il
faut
maîtriser tout le mikropascal avant de se lancer, etc...
Merci
Philippe pour cet avis "effrayé". Je vous rassure tout de suite, il est
hors de question d'écrire des chapitres entiers de théorie sans exemple
pratique, et j'accorderai une large place à ces derniers, selon le même
"schéma" que celui adopté pour mes
tutoriels en ligne.
J'ai ajouté plus loin sur cette page le contenu de la
présentation générale du livre, écrite dès le début du projet
(paragraphe Extraits, 1. Organisation du livre).
Alain P. - 27/02/2012 (mail)
Waouh!
Un livre intitulé "MikroPascal et Pic (12/16/18)" rien que cela, la
tâche est ambitieuse (alors qu'il existe déjà quelques "pavés" sur les
18F, 10/12/16F). La lecture du sommaire (présent sur le site) me parait
intéressant. J'ai hâte de voir (lire) cela. Une remarque tout de même,
le paragraphe 6 (Interruptions) me semble bien maigre. Une seule ligne!
Les interruptions (timers, entrées, ...) méritent mieux que cela ?
Heureux
de voir que l'idée vous séduit. Bien sûr, le paragraphe des
interruptions traitera de leurs différentes causes : timer, entrées,
UART, etc. avec des exemples pratique. Pour les interruptions UART, un
exemple pratique est proposé au chapitre Liaison série / Liaison MIDI.
Guillaume - 30/01/2012 (mail)
Je
ne peux que vous encourager pour l'écriture d'un second livre
"MikroPascal et microcontroleurs", je serai le premier à sauter dessus
! J'apprécie beaucoup votre façon de nous faire découvrir le monde de
l'electronique, et je ne regrette pas d'avoir acheté votre premier
livre "L'electronique pour les debutants". Je suppose que l'approche
sera la même pour le second livre? De quoi atténuer l'angoisse de se
lancer dans l'inconnu de la programmation ! Bien cordialement,
Guillaume.
Bonjour Guillaume, oui l'approche sera de la même trempe. En tout cas
ça fait partie de mes défis ;-)
Eric V. - 05/01/2012 (mail)
Bonjour
Rémy, je viens vous encourager à faire le livre " MikroPascal et
microcontrôleurs". Je serai ravi d'avoir cet ouvrage et cela me donnera
l'occasion d’améliorer mes connaissances en programmation des PIC, avec
vos explications simples et claires je pense qu'il sera aisé d'y
arriver... amicalement, Eric.
Merci pour ces encouragement et mots gentils. A force, il va bien
falloir que je concrétise ce projet...
Robert L. - 30/12/2011 (mail)
Je
suis tout à fait pour la parution du livre sur le mikro-pascal. je suis
débutant (65ans) en programmation, mais ayant travaillé pendant toute
mon activité dans la conception électronique, je pense pouvoir m'en
sortir. A vous lire. Salutations et bonne année 2012 (partution du
livre?)
Merci
pour votre avis et vos voeux.
Je ne pense pas que ce livre pourrait paraître en 2012. Il faut
l'écrire (c'est bien commencé puisque j'en suis déjà à plus de 100
pages A4 sans illustration), et passer pas mal de temps pour
les
relectures et corrections. Si ce projet se confirme, je pense qu'il
faut plutôt miser sur 2013.
Eric V. - 10/11/2011 (mail)
Rémy,
je voulais te remercier pour tout ton travail de vulgarisation
extrémement pédagogique. Ta façon de présenter les choses me convient
parfaitement. J'espère que tes nouvelles activités professionelles te
laisseront le temps d'écrire le bouquin sur les pics. Si il est sur le
même ton que "l'électronique..." ce sera carrément super. Je m'y suis
lancé et je pédale beaucoup, surtout pour trouver des références sur le
micropascal.
Merci
Eric. J'aurai le temps d'écrire ce livre en parallèle de mes
autres activités, mais l'inconnue à ce jour est bien sûr le temps que
cela me prendra. A la louche, je pense qu'il faudra compter entre 6
mois et un an à partir du moment où le projet sera officiellement
démarré.
Ouss - 30/10/2011 (livre d'or)
L'idée
de faire un livre sur Mikropascal et les µcontrôleurs PIC est
excellentissime! Ce serait pour moi un grand plaisir d'avoir cet
ouvrage dans ma bibliothèque et l'occasion de m'initier à ce langage
car votre approche pédagogique est à mon avis parfaite (expliquer de
façon simple et claire n'est pas chose aisée). Bon aller au boulot! Ce
n'est pas en me lisant que ça va avancer.
Et bien merci pour ce commentaire enthousiaste, qui pourrait bien me
donner des ailes...
Eric B. - 30/10/2011 (mail)
Moi
je veux bien un livre sur les microcontrôleurs, ca sait faire plein de
trucs mais ca fait peur quand on ne maitrise pas la programmation.
Niveau langage de programmation je n'ai pas de préférence car je ne les
connais pas vraiment. J'ai regardé un peu les programmes existants,
certaines instructions me parlent et d'autres me laissent perplexe.
Quand tu parcours les sites tu lis que les avr sont bien, comme les pic
et comme les attiny, que tel language est mieux que tel autre car en
fait l'auteur du site a appris ce language et/ou les autres et préfère
l'un ou l'autre. J'ai envie de me lancer mais j'ai aussi l'angoisse que
ça plante et que je passe des heures à debbuger quelque chose que je
comprend pas vraiment. Maintenant si tu fais un livre en utilisant le
MikroPascal il est certain que j'utiliserai aussi ce language car je
sais que je pourrai compter sur ton livre et ton support via
ton
site. Si je comprends les bases en MikroPascal, après j'irais fouiller
sur internet pour trouver des montages avec ce language. Voila l'avis
de l'amateur frustré par les pics :-).
Merci
Eric de t'être levé si tôt pour écrire ce premier commentaire ;-) Mon
souhait n'est pas d'écrire un livre sur les microcontrôleurs en
général, il existe déjà plusieurs ouvrages traitant du sujet. Il me
semble intéressant d'associer le développement d'un logiciel pour
microcontrôleur avec un langage de programmation donné. En ce qui me
concerne je n'ai guère le luxe de pouvoir proposer plusieurs langages
de programmation, car je ne m'en sors bien qu'avec un seul, qui est le
Pascal. J'ai choisi ce langage par pur concours de circonstance, après
m'être essayé aussi au C et au Basic. Il est évident que le meilleur
langage est celui qu'on préfère et qui permet de faire ce qu'on désire.
Jamais on ne m'entendra dire que le PIC est le meilleur uC ni que le
Pascal est le meilleur langage - j'aurais raté ma vocation.
Aujourd'hui, avec l'évolution des logiciels de développement qui nous
mâchent plus de la moitié du travail, on peut rapidement aboutir à un
résultat fonctionnel sans trop se casser la tête. Mais il va de soi
qu'une connaissance approfondie du sujet "microcontrôleur" est plus que
conseillée pour celui qui veut tirer le maximum de ces petites bêtes.
Ce que je souhaiterais montrer dans ce livre, c'est qu'on peut acquérir
une base "simplifiée" de la programmation qui permet
de faire
ses premiers montages avec PIC sans consommer trop de cachets
d'aspirine. C'est faisable puisque j'y suis arrivé !
Extraits
Juste pour se faire une idée du ton
principal, qui ressemble tout de même un peu au ton adopté sur mon site
et dans mes autres livres. On ne se refait pas en quelques jours.
1. Organisation du livre
Ce livre s'adresse avant tout aux
débutants. Il ne constitue pas un recueil de projets hautement
ambitieux mais présente les principes de bases qu'il faut absolument
connaître pour débuter dans la programmation des PIC. Pour les
développements décrits dans les pages qui suivent, nous utiliserons le
logiciel MikroPascal de la société MikroElektronika (langage de
programmation Pascal). Ce logiciel ne sera pas décrit de fond en comble
car il est déjà accompagné d'un manuel utilisateur fort complet.
Cependant, certains « détails » seront rappelés en
temps
utile. Même s'il s'agit d'un livre d'initiation, les sujets abordés
couvrent un grand nombre de besoins, et particulièrement ceux des
débutants, tels que « comment interfacer des capteurs avec un
microcontrôleur ? » ou « comment acquérir
des données et
les stocker pour les lire plus tard ? ». Les réponses
à ces
questions peuvent être combinées les unes avec les autres, comme des
briques, ce qui permet par la suite d'élaborer des ensembles plus
complets. Bien que les informations fournies dans ce livre s'appuient
essentiellement sur l'outil logiciel spécifique qu'est MikroPascal
(c'est dans le titre), grand nombre d'entre elles peuvent être aisément
portées vers d'autres plates-formes de développement et d'autres
langages tel que le Basic ou le C. Les schémas électroniques proposés
peuvent être qualifiés d'universels et pourront servir dans des
réalisations qui reposent sur des microcontrôleurs autres que des PIC.
Certains morceaux de schémas peuvent même être utilisés dans des
montages sans aucun microcontrôleur.
...
3.5 Utilisation d'un langage plus parlant (extrait)
Comme
le langage machine est imbuvable et que le code assembleur permet de se
faire comprendre par le PIC après l'étape de la compilation, on
pourrait se demander s'il n'existe pas un moyen de produire un code
machine à partir d'un autre langage plus « parlant ».
Après
tout, le langage assembleur n'est pas forcément le plus
« simple » à appréhender par la majorité. Nombreux
sont ceux
qui se sont posé cette question, et plusieurs particuliers et sociétés
proposent un langage autre que l'assembleur pour produire le fameux
code machine. Grâce à eux, on peut écrire son programme pour
microcontrôleur dans un langage évolué (dit aussi de haut
niveau) : Basic, Pascal, C ou JAL (Just Another Language,
juste un
autre langage). J'en oublie sans doute d'autres. On peut noter dès à
présent que le langage utilisé (Pascal, Basic ou autre) produit le code
assembleur de façon intermédiaire et que ce code est ensuite compilé
pour produire le code machine. Cela est fort utile quand on est curieux
et qu'on a envie de voir, quand on n'a rien d'autre à faire, comment ce
qu'on a écrit dans une langue qu'on aime bien a été traduit dans ce
langage assembleur qui nous fait si peur (ce n'est pas pour rien que ça
rime). Après tout et avec un peu d'entraînement, cela nous permettrait
peut-être de nous familiariser petit à petit avec les lignes écrites en
assembleur par d'autres personnes...
...
Capture de signaux logiques simples (extrait)
Quoi de plus
naturel que de vouloir capturer des changements d'état
logique ?
Après tout, c'est à la base même de la lecture d'activité d'un simple
bouton-poussoir ou d'un ILS (Interrupteur à Lame Souple) caché dans une
chaîne principale de surveillance (alarme). Vous pourriez même un jour
éprouver l'envie d'enregistrer des événements qui se déroulent dans une
période de temps donné (comptage de personnes par exemple), avec
pourquoi pas horodatage à la clé (indication de la date et de l'heure
en regard de chaque événement). On peut faire usage de divers procédés
pour capturer des changements d'état. Le choix du procédé dépend de
plusieurs paramètres, mais le principal est tout de même celui qui
conditionne la vitesse de réaction de l'ensemble et donc son aptitude à
détecter des changements rapides. Bien entendu, la notion de rapidité
est toute relative. Pensez simplement aux trois cas de figure
suivants :
- détection d'intrusion en provenance de plusieurs détecteurs dans un
système d'alarme ;
- mesure d'un tempo musical avec un utilisateur qui appuie sur un
bouton-poussoir au rythme d'une batterie ou d'une basse ;
-
mesure de la fréquence d'un signal rectangulaire périodique qui peut
grimper jusqu'à 5 MHz (5 millions d'impulsions par seconde).
....
Capteur de température analogique (extrait)
La mesure d'une
température peut avoir plusieurs objectifs. On peut vouloir ajuster
automatiquement la température dans une ou plusieurs pièces d'une
maison (fonction thermostat), effectuer un relevé périodique de la
température d'une pièce distante et la stocker localement dans une
mémoire ou l'envoyer ailleurs par le biais d'une liaison série ou
Ethernet, ou encore déclencher une alarme ou couper tout ou partie d'un
circuit électronique en cas de dépassement d'une température de
consigne (par exemple 90°C). La mesure d'une température peut se faire
avec un capteur de température analogique ou numérique. A première vue,
on pourrait penser que le choix entre l'un et l'autre est dicté par la
précision et la linéarité, deux paramètres que les composants
numériques peuvent afficher avec une pointe de fierté en plus. Pourtant
un autre paramètre important peut entrer en compte : celui du
prix. Mais développons un peu. Un système de mesure de température basé
sur un composant « tout analogique » délivre une
tension
continue proportionnelle à la température (proportionnelle ne veut pas
forcément dire linéaire, comme nous le verrons plus loin). La mesure de
cette tension qui peut évoluer entre deux valeurs extrêmes nécessite
donc un convertisseur analogique / numérique, qui peut être soit
externe soit intégré au PIC qui va interpréter ou stocker chaque mesure
(s'il est intégré au PIC c'est mieux, ça fait moins de composants à
câbler). Un système de mesure de température basé sur un composant
« numérique » délivre une information de type tout ou
rien
constituée d'une suite de 0 et de 1, qui représente la valeur de la
température sous une forme codée qu'on doit interpréter avec un peu
d'intelligence informatique. Dans ce cas aucun convertisseur analogique
/ numérique n'est requis, mais en contrepartie il faut traduire
l'information numérique en une valeur de température compréhensible par
l'utilisateur final. Nous allons voir dans ce chapitre trois exemples
de mesure de température basés sur une structure analogique :
-
mesure avec une thermistance, qui est un élément dont la valeur ohmique
varie avec la température mais pas de façon linéaire, et qui demande
donc une correction (cette correction peut être assurée dans le
logiciel). On peut par exemple avoir une variation de -4 % par
degré ;
- mesure avec une diode au silicium dont la tension à
ses bornes décroit linéairement quand la température augmente (environ
-2 mV/°C d'augmentation), mais dont le faible degré de
variation
semble devoir imposer l'emploi d'un amplificateur en tension ;
-
mesure avec un capteur analogique calibré qui fournit une tension
continue dont la valeur évolue de façon linéaire avec la température,
et qui ne nécessite donc aucune correction de sa courbe de variation.
...