Microcontrôleurs
J'espère que vous avez apprécié la petite activité précédente ;) (Pour ceux qui ne l'ont pas encore faite, ici on va chercher à comprendre comment ce qu'on a utilisé fonctionne)
1. Microcontrôleurs
Nous l'avons vu très brièvement en 03 (les principaux composants) [lien], on avait dit que les microcontrôleurs étaient les "cerveaux" d'un circuit, celui qui harmonise la partie physique (courant, composants) à la partie virtuelle (code).
Définition :
- Circuit intégré (on a vu ce qu'était un circuit intégré en 03) [lien] comprenant essentiellement un microprocesseur, ses mémoires, et des éléments personnalisés selon l'application.
On repère 3 choses dans cette définition :
- Microprocesseur
- LES Mémoires (au pluriel)
- Eléments personnalisés
1. Qu'est ce qu'un Microprocesseur ?
Un microprocesseur, c'est le composant qui exécute le travail. Son principe est simple, et c'est toujours le même : il va chercher une instruction dans la mémoire, il l'exécute, il range le résultat, et il passe à la suivante. Encore, et encore. [Schéma cycle microprocesseur]
Ce qui rend ce petit truc fascinant, c'est sa vitesse. Le microprocesseur d'une carte Arduino peut exécuter environ 16 MILLIONS d'instructions par seconde. Seize millions. Par seconde. C'est ce qui lui permet de dérouler ton programme si vite que, pour nous, tout semble instantané.
[Image Microprocesseur]
- Une précision importante, pour ne pas confondre. Vous connaissez déjà un autre microprocesseur : celui de nos ordinateurs ou de nos téléphones. Le principe est le même : chercher, exécuter, recommencer - Mais l'échelle n'a rien à voir. Les processeurs de nos PC sont des monstres qui jonglent avec un système d'exploitation, des dizaines d'applications ouvertes, un écran… tout en même temps.
Celui d'un microcontrôleur, lui, est beaucoup plus modeste, et c'est voulu. Il ne fait pas tourner de système d'exploitation. Il n'ouvre pas d'applications. Il exécute un seul programme : celui qu'on lui a donné, en boucle, sans jamais s'arrêter. Souvenez vous du TP clignotement : allumer, attendre, éteindre, attendre, et on recommence. C'est exactement ça que le microprocesseur déroule, des millions de fois par seconde.
Nos ordinateurs sont des touche-à-tout géniaux. Le microcontrôleur est un spécialiste : il fait une chose, à fond, parfaitement. Et pour piloter une LED, un capteur ou une plante, c'est précisément ce qu'on veut.
2. LES Mémoires
Un microcontrôleur a besoin de deux choses fondamentalement différentes :
- Se souvenir de son programme même débranché
- Avoir un brouillon pour travailler quand il tourne. D'où plusieurs mémoires.
Les deux mémoires à distinguer :
Imaginons les mémoires comme un livre de recettes et un plan de travail :
La mémoire de programme (Flash)
Le livre de recettes. C'est là qu'est stocké le code (notre blink de tout à l'heure). Elle est permanente : quand on débranche l'Arduino et qu'on le rebranche trois mois plus tard, notre programme est toujours là. C'est pour ça que la LED reclignote dès qu'on remet le courant, sans le reprogrammer. [Image meme zombie qui revit pour montrer qu'il survit]
La mémoire vive (RAM)
Le plan de travail, la paillasse. C'est l'espace où le microcontrôleur travaille pendant qu'il tourne : il y pose ses variables, ses calculs en cours, les valeurs temporaires. Elle est volatile : si on coupe le courant, tout ce qui était dessus s'efface. Comme un plan de travail qu'on nettoie en partant. Le programme (le livre) reste, mais le travail en cours (les ingrédients sortis) disparaît. [Image meme chef pizza heureux]
Il existe une troisième mémoire, moins courante (EEPROM)
L'EEPROM = un petit carnet de notes. Une mémoire permanente mais réinscriptible, où le programme peut noter des choses à retenir entre deux extinctions (un réglage, un score, un compteur). Rare d'en avoir besoin au début. On y reviendra si besoin.
3. Les Eléments personnalisés
Ce sont tous simplement les composants et périphériques que les constructeurs choisissent d'intégrer.
1. Les broches
On peut y retrouver par exemple les broches (pins); ce sont les "pattes" du microcontrôleur, ses points de contact avec l'extérieur. C'est par là que la puce reçoit et envoie du courant. Souvenez-vous, votre LED était branchée sur la broche 2 : cette broche, c'est un de ces points de contact.
A savoir : Il y a deux sortes de broches.
- Les entrées (input)
- Les sorties (output)
Qu'est ce que ça veut dire ? Les entrées servent à écouter = lire un bouton, un capteur... On lui envoie une information Les sorties servent à parler, agir = allumer une LED, un écran... IL envoie une information
Reprenons la ligne de code du TP précédent :
pinMode(BROCHE_LED_ROUGE, OUTPUT)
OUTPUT, ça veut dire qu'on déclare que la broche qu'on a connecté à la LED doit être une sortie (elle doit FAIRE un truc, ici allumer, pas ECOUTER).
2. Les périphériques intégrés
On peut aussi retrouver sur un microcontrôleur de petits modules spécialisés, qui permettent par exemple de mesurer le temps, certains peuvent même se connecter à internet...
A retenir
le microcontrôleur (la puce) c'est le cerveau, et Arduino c'est la carte qui rend cette puce utilisable. A présent, on va se pencher d'un peu plus près sur ce qu'est réellement Arduino.
Pour approfondir : J'ai dédié une feuille annexe à l'explication et l'exploration d'autres microcontrôleurs que les cartes Arduino, leurs forces et faiblesses, comment bien choisir sa carte, ce qui nous sera utile prochainement... :)
