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.