Médaille
N°1 pour apprendre & réviser du collège au lycée.

Périphériques

Déjà plus de

1 million

d'inscrits !

0/2
0 / 10
Challenge tes acquis !
Remporte un max d’étoiles
et de school coins !
`

Introduction :

Dans ce chapitre, nous nous intéressons aux entrées/sorties qu’un microprocesseur est capable de gérer.
Dans un premier temps, nous présentons un rappel de l'architecture général d'un microprocesseur suivi de la notion d’IHM jusqu’à en programmer une. Et pour terminer, nous programmerons les entrées/sorties d’un système embarqué.

Les entrées/sorties dans un système à microprocesseur

Un microprocesseur implanté dans un système (un ordinateur, un robot, un appareil électro-ménager, etc.) interagit continuellement avec son environnement : il joue un rôle important dans la transmission des données. Ces échanges sont assurés par l'ensemble des périphériques d'entrées/sorties.

Architecture d’un système à microprocesseur

Un système à microprocesseur est structuré de la manière suivante :

numérique sciences informatique première périphèriques architecture d’un microprocesseur Architecture d’un microprocesseur

  • le bus d’entrées/sorties assure les transferts d’informations entre le microprocesseur et son environnement. Ces transferts sont bidirectionnels, c’est-à-dire que la transmission d’informations se fait dans les deux sens ;
  • le bus d’adresses permet la localisation des informations à traiter ou à utiliser dans l’espace mémoire. Il est unidirectionnel, c’est-à-dire que la transmission d’informations se fait dans un seul sens ;
  • le bus de contrôle assure la synchronisation des flux d’information sur les bus de données et d’adresses, permettant de faire correspondre les données de deux emplacements de stockage.

Les systèmes à microprocesseur et leurs entrées/sorties

Un système à microprocesseur bien connu est celui de l’ordinateur. Les matériels auxquels il est connecté, que ce soit par câble ou sans fil, sont divers. Parmi eux, les plus communément utilisés sont le clavier, l’écran, la souris, l’imprimante, la caméra ou encore les enceintes. On peut noter que certains périphériques sont souvent intégrés dans les ordinateurs portables eux-mêmes, tels que la caméra, le clavier ou les enceintes.

  • Dans tous les cas, le principe est le suivant : l’utilisateur agit sur les périphériques d’entrée et l’ordinateur réagit en déclenchant des actions sur les périphériques de sortie.
bannière definition

Définition

Périphérique d’entrée :

Un périphérique d’entrée, appelé également capteur, permet à un microprocesseur de collecter des informations sur son environnement.

bannière exemple

Exemple

Périphériques d’entrée sur un ordinateur :

  • la souris permet de transmettre une information à l’ordinateur : l’identification de l’objet sur lequel il lui est demandé d’agir ;
  • le clavier permet de transmettre un texte à l’ordinateur.
bannière definition

Définition

Périphérique de sortie :

Un périphérique de sortie, appelé également actionneur, permet à un microprocesseur d’agir sur son environnement.

bannière exemple

Exemple

Périphériques de sortie sur un ordinateur :

  • l’ordinateur agit sur l’écran en y affichant des informations ;
  • l’ordinateur agit sur l’imprimante en lui faisant imprimer un texte.

Mais les ordinateurs ne sont pas les seuls matériels à être dotés d’un microprocesseur.

  • Les systèmes embarqués, capables de fonctionner sans l’intervention de l’homme en sont un exemple.

Parmi eux, on recense les automates (comme par exemple les distributeurs automatiques de billets), les robots, certains modules dans les automobiles, des produits d’électroménager ou encore du matériel audio ou vidéo. Ces équipements collectent des informations en entrée (détection de mouvement, température, appui sur un bouton, luminosité, son, etc.). Après traitement de ces informations, les systèmes embarqués peuvent être amenés à générer des actions en sortie (signal sonore, signal lumineux, démarrage ou arrêt d’un moteur, ouverture ou fermeture d’une vanne, etc.).

  • Plus sophistiqués encore, les objets connectés sont des systèmes, le plus souvent embarqués, munis d’une connexion réseau, qu’elle soit internet, radio ou autre. Ils sont également équipés d’un microprocesseur.

On y trouve bien évidemment les smartphones, mais aussi les drones ou les stations météo par exemple.

Zoom sur les entrées/sorties d’un ordinateur

Si nous nous penchons en particulier sur un ordinateur, nous constatons rapidement que nous pouvons le connecter à une multitude de périphériques.

  • Les périphériques d’entrée les plus classiques sont le clavier, la souris, le pavé tactile, le microphone, la caméra ou le scanner. On trouve par ailleurs les lecteurs de code à barre, lecteurs de carte vitale, manette de jeu, etc.
  • Les périphériques de sortie les plus connus sont l’écran, l’imprimante, les enceintes.
  • Certains périphériques sont en communication bilatérale avec l’ordinateur. Les disques durs externes ou internes, les clés USB, les routeurs ou les écrans tactiles sont des périphériques qui communiquent en permanence avec l'ordinateur. En effet, la transmission des informations se fait dans les deux sens.
bannière attention

Attention

Un ordinateur, à sa sortie d'usine, n'est pas en mesure de communiquer avec tous les périphériques du marché. Son système d’exploitation est, par conséquent, complété au fur et à mesure que l'on y connecte de nouveaux équipements.

  • Pour cela, il est nécessaire d’installer des programmes complémentaires, appelés des pilotes, qui rendent alors possible la communication entre l’ordinateur et l’équipement connecté.
bannière definition

Définition

Pilote :

Un pilote, ou driver en anglais, est un programme permettant à un ordinateur doté d’un système d’exploitation de communiquer avec un matériel défini. Ce programme est appelé interface logicielle.

L’IHM

Certains périphériques d’entrées/sorties raccordés aux systèmes à microprocesseur servent à la communication entre ces systèmes et leurs utilisateurs. Ces périphériques sont utilisés par des programmes dont la mission est de rendre la communication entre l’utilisateur et sa machine la plus claire possible. Il s’agit de l’interface homme-machine.

Définition de l’IHM

bannière definition

Définition

IHM :

L’IHM, ou interface homme-machine (appelée en anglais HCI pour Human Computer Interaction), est l’ensemble des moyens matériels et logiciels mis en œuvre pour permettre à un humain d’interagir avec une machine.

Une IHM peut s’avérer rudimentaire ; comme par exemple le fait de basculer un simple bouton. Mais elle peut être plus sophistiquée lors de l’utilisation d’un écran tactile ou d’une commande vocale.

bannière exemple

Exemple

Par exemple, pour un système de commande manuelle de chauffage, une interface basique pourrait se réduire à un bouton marche/arrêt, un afficheur LCD pour la température ambiante et un curseur à faire glisser pour augmenter ou diminuer le chauffage. Cette même interface transmet la commande (marche, arrêt, augmentation ou diminution du chauffage) au récepteur radio qui agit alors sur la chaudière.

L’IHM sur un ordinateur

Sur un ordinateur, les IHMs proposées par les applications, sollicitent systématiquement les éléments suivants :

  • en entrée : souris, pavé tactile, clavier ;
  • en sortie : écran, haut-parleurs.
  • Elles sont souvent graphiques, c’est-à-dire constituées d’une fenêtre dans laquelle se trouvent des composants tels que : des boutons, des cases à cocher, des boutons radio, des images, des zones de saisie de texte, des zones d’affichage de texte, etc.

Si l’on souhaite programmer ces interfaces graphiques avec le langage Python, le mieux est de faire appel à la bibliothèque tkinter dont l’avantage est d’assurer une compatibilité avec les principaux systèmes d’exploitation. C’est ce que nous allons faire dans l’exemple de programmation qui suit.

Cet exemple doit respecter le cahier des charges suivant :

  • L’IHM doit permettre à l’utilisateur de compter le nombre de ses clics sur un bouton et de l’alerter par un signal sonore si ce nombre dépasse 10.
  • Un texte explicatif doit être affiché.
  • Une zone de texte doit afficher le compteur en temps réel.
  • Un bouton doit être prévu pour compter le nombre de clics et un autre pour fermer la fenêtre de l’application.

Cela se traduit par le schéma suivant et la fenêtre d’application :

numérique sciences informatique première périphèriques IHM Principe de l’IHM et sa fenêtre

Exemple commenté de programmation d’une IHM sur ordinateur en python

#Importation de la bibliotheque graphique

import tkinter as tk

#Initialisation du compteur de clics à zero

compteur = 0

#Definition de la fonction qui incremente le compteur de 1

#Elle declenche un bip sonore si le compteur est superieur à 10

def incrementer ():

#Cette instruction permet d’acceder dans la fonction a la variable compteur définie en dehors de la fonction

global compteur

compteur=compteur+1

if compteur >= 10:

fenetre.bell()

return compteur

#Definition de la fonction qui met a jour l’affichage de la valeur du compteur dans l’IHM

def action_clic():

labelCompteur2.config(text=str(incrementer()))

#Creation de la fenêtre de l’IHM

fenetre = tk.Tk()

#Affectation d’un titre a la fenetre

fenetre.title("Compter les clics")

#Dimensionnement et positionnement de la fenetre

fenetre.geometry(‘300x125+400+400’)

#Creation de la zone de texte pour l’explication

labelExpl = tk.Label(fenetre, text="Je compte le nombre de clics sur le bouton")

#Creation de la zone de texte pour l’intitule devant le compteur

labelCompteur1 = tk.Label(fenetre, text="Nombre de clics: ")

#Creation de la zone de texte pour l’affichage du compteur

labelCompteur2 = tk.Label(fenetre, text="0")

#Positionnement de la zone du texte explicatif et dimensionnement de ses marges

labelExpl.grid(row=0, column=0, columnspan=3, padx = 5, pady = 5)

#Positionnement de la zone du texte de l’intitule et dimensionnement de ses marges

labelCompteur1.grid(row=1, column=1, padx = 5, pady = 5)

#Positionnement de la zone du texte du compteur et dimensionnement de ses marges

labelCompteur2.grid(row=1, column=2, padx = 5, pady = 5)

#Creation du bouton associe au compteur

bouton = tk.Button(fenetre, text="Cliquez-moi !", command = action_clic)

#Positionnement du bouton associe au compteur et dimensionnement de ses marges

bouton.grid(row=1, column=0, padx = 5, pady = 5)

#Creation du bouton quitter

BoutonQuitter = tk.Button(fenetre, text =‘Quitter’, command = fenetre.destroy)

#Positionnement du bouton quitter et dimensionnement de ses marges

BoutonQuitter.grid(row=2, column=0, columnspan=3, padx = 5, pady = 5)

#Ecoute en permanence des evenements sur les peripheriques d’entree pour pouvoir capter le clic gauche de la souris

fenetre.mainloop()

  • L’IHM programmée, telle qu’elle s’affiche à l’écran.

numérique sciences informatique première périphèriques IHM programmée

Les entrées/sorties d’un système embarqué

Nous venons de programmer une IHM qui met en œuvre des entrées/sorties sur un ordinateur. Dans cette partie, nous allons programmer la gestion d’entrées/sorties d’un système embarqué en utilisant un Raspberry PI.

Le Raspberry PI

  • Le Raspberry PI, ou RPI, est un nano ordinateur dont la taille se rapproche de celle d’une carte de crédit. Outre le fait qu’il peut s’avérer un ordinateur bon marché une fois un écran, une souris et un clavier branchés, sa petite taille et ses nombreux ports d’entrées/sorties permettent d’en faire un système embarqué.

numérique sciences informatique première périphèriques RPI modèle B+ à côté d’une carte au format carte bancaire RPI modèle B+ à côté d’une carte au format carte bancaire

C’est ce à quoi nous allons nous attacher. Le système embarqué que nous allons concevoir ne sera pas d’une grande utilité mais nous permettra d’appréhender la programmation d’entrées/sorties dans un système embarqué. Le système à réaliser doit réagir à l’appui d’un bouton poussoir en allumant une diode. Dès que le bouton est relâché, la diode s’éteint.

Prérequis

Le RPI doit au préalable être doté d’un système d’exploitation. L’installation de la version allégée de Linux et adaptée au RPI, dénommée Raspbian, fera l’affaire. Par ailleurs, nous devons câbler les entrées/sorties :

  • les pôles de l’interrupteur (information d’entrée) seront connectés l’un à la broche repérée 2 et l’autre à la masse ;
  • les pôles de la diode (information de sortie) seront connectés l’un à la broche repérée 16 et l’autre à la masse, avec l’insertion d’une résistance dans le circuit afin de limiter la tension aux bornes de la diode.

numérique sciences informatique première périphèriques principe de câblage du bouton poussoir et de la LED sur le RPI Principe de câblage du bouton poussoir et de la LED sur le RPI

Notre programme gérant des entrées/sorties sur le RPI

#Recuperation des bibliotheques

import time

import RPi.GPIO as GPIO

#Choix du mode de numerotation des broches ou sont branches les peripheriques

GPIO.setmode(GPIO.BCM)

#Declaration de la broche 2 sur laquelle est branchee le bouton

pinBouton = 2

#Declaration de la broche 16 sur laquelle est branchee la diode

pinLed = 16

#Choix du mode entrée pour le bouton

GPIO.setup(pinBouton, GPIO.IN, pullupdown = GPIO.PUD_DOWN)

#Choix du mode sortie pour la diode

GPIO.setup(pinLed, GPIO.OUT)

#Boucle infinie pour ecouter en permanence l’entree pinBouton

while True:

#lecture de l’entree pinBouton

etat = GPIO.input(pinBouton)

#etat == 0 correspond a bouton appuye donc la diode doit etre allumee

if (etat == 0):

#allumage de la diode

GPIO.output(16,True)

else :

#extinction de la diode

GPIO.output(16, False)

#Temps de repos pour eviter la surchauffe du processeur

time.sleep(0.3)

numérique sciences informatique première périphèriques principe de câblage du bouton poussoir et de la LED sur le RPI

  • La figure illustre le RPI en marche avec le bouton appuyé. Nous remarquons alors qu’aucun périphérique type écran, souris ou clavier n’est branché au RPI. Celui-ci n’est branché qu’à son alimentation, au bouton poussoir et à la diode. C’est le propre d’un système embarqué.

Conclusion :

Nous savons maintenant que les microprocesseurs, qu’ils soient installés dans un ordinateur ou dans un système embarqué, gèrent des entrées/sorties ou des capteurs/actionneurs pour échanger des informations avec l’extérieur. Dans tous les cas, un programme est nécessaire pour se mettre à l’écoute permanente des entrées et réagir en conséquence en envoyant des données sur les sorties. Lorsqu’il s’agit de gérer les interactions de l’homme avec la machine, un tel programme est le point central de ce que l’on appelle l’IHM.