¶
Présentation du cours¶
Objectifs du cours¶
-
Objectif principal
- Apprendre à programmer un microcontrôleur, pour piloter un système embarqué
-
Mais pas seulement :
- Comprendre comment fonctionne un microcontrôleur
- Pouvoir s'adapter à n'importe quel microcontrôleur
- Démystifier l'ordinateur
- Développer ses propres bibliothèques pour interagir avec un nouveau périphérique
-
Cible choisie
- l'Atmega328 sur carte Arduino Uno
Pourquoi la carte Arduino Uno¶
- Carte électronique bon marché, open source
- À l'origine : conçue par des enseignants et étudiants d'une école de design numérique, pour la pratique artistique, par des non-spécialistes
- Pont entre le monde numérique et le monde physique
- Matériel libre + logiciel libre
- Facilité de mise en œuvre
- Chargement du programme par port USB
- Interface de développement simple et pratique
- Vaste librairie de fonctions
- mais ça n'est pas un point important dans ce cours.
Qu'est-ce qu'un « Système Embarqué » ?¶
Définition : Système Embarqué
C'est un système informatique et électronique autonome effectuant une tâche précise.
Il est généralement intégré dans un système plus complexe (c'est en cela qu'il est « embarqué »), et communique donc avec d'autres systèmes.
Son architecture est basée sur l'une de ces technologies :
- microprocesseurs,
- microcontrôleurs,
- circuits logiques programmables (FPGA).
Les contraintes usuelles d'un système embarqué¶
Elles sont nombreuses :
- coût,
- espace,
- puissance de calcul,
- consommation électrique,
- réactivité, souvent temps-réel,
- fiabilité,
- confidentialité.
Qu'est-ce qu'un microcontrôleur ?¶
Un envahisseur discret¶
Depuis quelques dizaines d'années, on en rencontre partout !
Notamment, dans les :
- téléphones portables,
- machines à café,
- voitures (ABS, ouverture automatique des portes),
- lave-linge, -vaisselle
- télécommandes,
- distributeurs bancaires, de boissons,
- lecteurs code-barre,
- satellites artificiels, robot envoyé sur Mars,
- etc.
Un animal sauvage aujourd'hui domestiqué¶
-
Initialement, la programmation d'un contrôleur/micro-contrôleur était dédiée à des spécialistes.
-
Aujourd'hui, même un jeune collégien peut se confronter à un Arduino, pour lui faire exécuter quelques tâches élémentaires.
-
Mais une bonne maîtrise reste nécessaire pour développer des systèmes de qualité : c'est l'ambition de ce cours de vous donner un aperçu de ce qu'est un microcontrôleur, et de la manière de le programmer.
Définition¶
Définition : Microcontrôleur
Circuit intégré réunissant les éléments essentiels d'un ordinateur :
- micro-processeur,
- mémoire vive (RAM) pour les données,
- mémoire morte (ROM) pour les programmes,
- unités périphériques (timers, convertisseurs analogiques numériques (CAN),
- interfaces de communication, séries ou parallèles.
Il sert à piloter un système embarqué, seul, ou en collaboration avec d'autres.
Microcontrôleurs ou FPGA ?¶
Par rapport aux FPGA, les microcontrôleurs sont :
- moins flexibles,
- moins aptes au parallélisme,
Mais :
- plus rapides à mettre en œuvre (architecture prédéfinie, librairies),
- moins consommateurs d'électricité,
- généralement moins coûteux.