Publications > Electronique > Les microcontrôleurs PIC pour les débutants (avec MikroPascal)

Dernière mise à jour : 30/03/2014

Présentation

Débuter avec des PIC... Quelle drôle d'idée ! 

livre_mp_pic_couverture_001_tn
Les microcontrôleurs PIC (avec MikroPascal) pour les débutants...
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 ce livre ?

Ce livre est disponible chez les distributeurs suivants.


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 de vous dire que ce livre comporte les réponses à toutes vos questions, il s'agirait d'un terrible mensonge. Vous avez tous des besoins différents. Sachez que je devais faire un choix : 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 je pense avoir fait de mon mieux. Si vous avez la moindre question sur son contenu, n'hésitez pas à m'écrire !

Important : 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...

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.
...