Publications > Electronique > MikroPascal et microcontrôleurs

Dernière mise à jour : 01/02/2012

Livre non paru - Seulement un projet ! 

Et j'ai besoin de vos avis ;-)


Présentation

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

livre_mp_pic_couverture_001_tn
MikroPascal et microcontrôleurs

Du langage Pascal pour écrire des logiciels prêts à rassasier un microcontrôleur de la famille des PIC ?

Projet !  L'idée est sur les rails, mais je ne promet évidement rien, comme d'habitude.

Vos avis, vos éventuelles suggestions et attentes... à la fin de cette page.

Vos avis

Comme pour mon dernier livre, j'attache vraiment une grande importance à "coller" aux attentes des lecteurs. Aussi ne serez-vous pas surpris de retrouver ici une petite place pour vos remarques, suggestions, attentes...
Pas besoin d'attendre la sortie [potentielle] du livre, vous pouvez dès maintenant sortir votre plume et m'envoyer vos plus belles proses. J'ai hâte de savoir ce que vous attendez dans ce domaine !

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é !

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, je prévois de la place sur mon site pour mettre en ligne les questions relatives au contenu du livre. Ce qui bien sûr ne sera utile que si ce livre voit le jour.

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

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 quelque chose pour les microcontrôleurs de la famille ARM / AVR, question à laquelle j'ai répondu par la négative car je n'ai ni connaissance suffisante ni 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. Pour l'instant je me tâte, je ne voudrais surtout pas écrire un livre comme ça, juste pour "faire bien". Si j'écris, je veux 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 est des points que je ne maîtrise pas encore très bien (USB et Ethernet) mais que je souhaite fortement développer. Il y a une semaine, je ne savais pas comment écrire ou lire des données dans une carte SD/MMC, aujourd'hui je sais le faire. 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. Si maintenant je m'attaque à l'USB et à l'Ethernet, je serai dans la même philosophie de découverte : me voir patauger me ravit car je sais alors ce qui manque aux débutants. Tout simplement !

Contenu du livre

Plan général - sujet à modifications sans préavis - qui pourrait servir de squelette à l'ouvrage. Je n'ai pas regardé la table des matière des livres existants traitant des PIC ou autres microcontrôleurs, ce plan est celui que je conçois "de base", tel que je souhaiterais le trouver en me plongeant pour la première fois dans le sujet.

Table mise à jour le 02/01/2012
 1 Organisation du livre
 2 Présentation des PIC
 2.1 Différentes familles de PIC
 2.1.1 PIC "de base"
 2.1.2 PIC "évolués"
 3 Présentation de MikroPascal
 3.1 Introduction
 3.2 Concepts de base
 3.3 Concepts plus avancés
 3.4 MikroPascal et programmateurs
 4 Configurations minimales (Config word)
 4.1 Configuration des broches d'entrée/sortie
 4.1.1 Principes de base
 4.1.2 On ne peut pas toujours tout avoir...
 4.2 Horloge et cadencement du programme
 4.2.1 Concepts généraux
 4.2.2 Des pattes à tout faire
 4.2.3 Différents modes d'oscillateur
 4.2.4 Horloge interne
 4.2.5 Quartz ou résonateur externe
 4.2.6 Résistance et condensateur externe
 4.2.7 Horloge externe
 4.2.8 PLL et multiplication de fréquence
 4.2.9 Overclocking
 4.2.10 Remarques diverses
 4.3 Remise à zéro (RAZ / RESET / réinitialisation)
 4.3.1 Remise à zéro manuelle
 4.3.2 Surveillance déroulement programme (watchdog)
 4.3.3 Surveillance tension d'alimentation
 5 Différences principales entre analogique et numérique
 5.1 Des mondes si différents ?
 6 Interruptions
 7 Utilisation des entrées / sorties
 7.1 Activation d'une sortie
 7.2 Capture de signaux logiques simples
 7.2.1 Capture de signaux lents
 7.2.2 Capture de signaux rapides
 7.3 Utilisation des comparateurs
 7.4 Mesure d'une tension
 7.4.1 Mesure d'une tension unique avec CAN
 7.4.2 Mesure simultanée de plusieurs tensions avec CAN
 7.4.3 Mesure d'une tension unique avec comparateur interne
 7.5 Mesure d'un rapport cyclique
 7.5.1 Mesure rapport cyclique après conversion N/A simple
 7.5.2 Mesure rapport cyclique directe
 7.6 Mesure d'une fréquence
 7.6.1 Mesure fréquence après conversion N/A simple
 7.6.2 Mesure fréquence directe
 7.7 Production d'une tension analogique
 7.7.1 Production d'une tension analogique avec un réseau R/2R
 7.7.2 Production d'une tension analogique avec un signal PWM
 7.7.3 Production d'une tension analogique par moyen détourné
 7.8 Usage de capteurs et détecteurs
 7.8.1 Capteurs de contact en tout ou rien
 7.8.2 Capteurs de lumière en tout ou rien
 7.8.3 Capteur de lumière en proportionnel
 7.8.4 Capteur de température analogique
 7.8.5 Capteur de température numérique
 7.8.6 Capteur d'humidité analogique
 7.8.7 Capteur d'humidité numérique
 7.8.8 Capteur de pression
 8 Gestion de données informatiques
 8.1 Lecture / écriture en EEProm
 8.2 Données RS232
 8.2.1 Emission de données RS232
 8.2.2 Réception de données RS232
 8.2.3 Différences entre RS232 et RS485
 8.3 Données MIDI
 8.3.1 Principes de base du MIDI
 8.3.2 Emission de données MIDI
 8.3.3 Réception de données MIDI
 8.4 Données RC5 / RC6 (télécommandes infrarouges)
 8.4.1 Principes de base du code RC5
 8.4.2 Emission de données RC5 / RC6
 8.4.3 Réception de données RC5 / RC6
 8.5 Données DMX
 8.5.1 Principes de base du DMX
 8.5.2 Emission de données DMX
 8.5.3 Réception de données DMX
 8.6 Liaison SPI / I2C
 8.6.1 Concepts généraux
 8.6.2 Lecture / écriture valeurs logiques avec PCF8574
 8.6.3 Lecture / écriture valeurs analogiques avec PCF8591
 8.6.4 Lecture / écriture avec mémoire EEPROM externe
 8.7 Liaison USB
 8.7.1 Concepts de base
 8.7.2 Exemple pratique simple
 8.8 Liaison Ethernet
 8.8.1 Concepts de base
 8.8.2 Exemple pratique simple
 8.9 Encodeur optique
 8.9.1 Principe général d'un encodeur optique
 8.9.2 Lecture mouvement encodeur optique
 8.10 Production sonore
 8.10.1 Produire une tonalité fixe de référence
 8.10.2 Produire un son bref
 8.10.3 Produire une mélodie monophonique
 8.10.4 Produire une tonalité modulée (sirène)
 8.10.5 Fabriquer une boîte à rythmes
 8.10.6 Lecture de fichiers WAV / RAW
 8.10.7 Lecture de fichiers MP3 (approche)
 8.11 Affichage LCD
 8.11.1 Affichage LCD de type Texte
 8.11.2 Affichage LCD de type Graphique
 8.12 Multiplexages des entrées / sorties
 8.12.1 Idée générale
 8.12.2 Lecture clavier et sortie écran LCD
 8.12.3 Entrée et sortie sur une même broche
 9 Programmateurs de PIC
 9.1 Concepts de base
 9.1.1 Programmation avec programmateur
 9.1.2 Programmation sur circuit final (ISP)
 9.2 Programmateurs simples
 9.3 Programmateurs évolués (platines de développement)
 9.4 Programmateurs faits maison
 9.4.1 Exemple de programmateur simple à faire soi-même
 10 Annexe 1 - Convertisseurs analogique / numérique
 10.1 CAN et quantification (résolution)
 10.2 CAN multiples
 11 Annexe 2 - Logiciels
 11.1 Rôle des logiciels
 11.1.1 Logiciels de développement

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.

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, d'un ILS planté dans une chaîne principale de surveillance (alarme). Vous pouvez même vouloir enregistrer un certain nombre d'évènements qui se sont déroulés dans un temps donné, avec aussi pourquoi pas horodatage (indication date et heure pour chaque évènement).
Il existe plusieurs procédés pour capturer des changements d'état, certains sont très simples à mettre en oeuvre et d'autres sont simples. Le choix de la méthode dépend de plusieurs paramètres, mais le principal est 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. La réflexion  qu'on doit avoir n'est pas la même quand on veut enregistrer l'évolution d'une température dans une pièce (une mesure par minute par exemple) et quand on veut mesurer la fréquence d'un signal périodique de 5 MHz (5 millions d'impulsions à compter par seconde).
....

Capteur de température analogique (extrait)
La mesure d'une température peut avoir plusieurs objectifs. On peut simplement 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 l'alimentation d'un équipement en cas de dépassement d'une température de consigne.
Dans tous les cas, la mesure d'une température peut se faire soit avec un capteur de température de type analogique soit avec un capteur de température de type numérique. Le choix entre l'un et l'autre sera principalement dicté par la précision requise pour la valeur mesurée.
Un système de mesure de température basé sur des composants tout analogique délivre une tension continue proportionnelle à la température (proportionnelle ne veut pas forcement 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 (à priori mieux vaut qu'il soit intégré au PIC, ça fait moins de composants à câbler).
Un système de mesure de température basé sur des composants numériques 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 ne peut interpréter sans intelligence informatique. Dans ce cas aucun convertisseur analogique / numérique n'est requis, mais en contrepartie il faut traiter l'information numérique reçue pour la traduire en valeur de température compréhensible.  Ce paragraphe propose trois exemples de mesure de température sur une base analogique.
...