Projet « Domotique » – Séance 4 Etude de quelques capteurs
1, 2, 3, codez ! - Activités cycle 4 - Projet « Domotique » - Séance 4 : Etude de quelques capteurs
Discipline Dominante |
Technologie |
Résumé |
Les élèves étudient différents capteurs à l’aide de montages très
simples : modalités de branchement, d’interrogation et de contrôle,
valeurs renvoyées par ces capteurs. Ils distinguent alors les signaux
analogiques et numériques. |
Notions |
« Algorithmes » :
« Information » :
|
Matériel |
Pour chaque groupe :
|
Rappel de la séance précédente
Le professeur demande aux élèves de refaire le montage (et le programme) réalisé à la séance précédente, consistant à faire clignoter une DEL. Cette reprise leur permet de consolider les différentes notions, dont la maîtrise est nécessaire pour la suite.
Situation déclenchante
Le professeur rappelle l’objectif du projet (sécuriser une
maison), et demande aux élèves les fonctions qui avaient été évoquées au
début de cette séquence. L’objectif est de lister les différents
capteurs et actionneurs dont la classe va avoir besoin.
Chaque classe possède son propre projet (cf. cahiers des
charges établis précédemment), et donc sa propre liste de
capteurs/actionneurs. À titre indicatif, voici quelques propositions de
modules compatibles Arduino/Shield Grove :
- Capteurs
- mouvement
- son
- lumière
- vibration
- gaz/fumée
- ouverture (interrupteur magnétique ILS)
- bouton poussoir ou interrupteur
- Actionneurs :
- DEL verte, rouge, blanche
- buzzer
On peut aussi ajouter, par exemple, une horloge (permettant de programmer l’alarme ou la simulation de présence), un haut-parleur en remplacement du buzzer (ce qui permet d’émettre des sons de fréquences variées), voire une caméra pour de la vidéosurveillance (attention, la caméra Grove nécessite, en plus du Shield Grove, un Shield carte SD pour fonctionner), etc.
Le professeur indique que chaque groupe va étudier le fonctionnement de quelques capteurs et actionneurs. Il explique que certains capteurs ne sont capables de renvoyer que 2 valeurs distinctes (par exemple, 0 et 1), tandis que d’autres sont capables de renvoyer une grande quantité de valeurs comprises entre 2 nombres (par exemple, entre 1 et 100). Il explique qu’on appelle les premiers des capteurs « numériques » (ou « digitaux » pour reprendre un anglicisme très répandu) et les seconds des capteurs « analogiques » ; il fait le rapprochement avec les connexions disponibles sur le Shield Grove :
- les connexions A0…A3 sont pour les capteurs analogiques (A comme Analogique)
- les connexions D2…D8 sont pour les capteurs (ou actionneurs) numériques/digitaux (D comme Digital)
Note scientifique :
un signal analogique varie de façon continue : il y a donc une
infinité de valeurs possibles (par exemple, tous les nombres réels entre
1 et 100). Cependant, ce signal, pour être traité par un ordinateur,
doit être numérisé. Cette numérisation impose que l’on discrétise les
valeurs possibles : elles ne sont plus en nombre infini. Pour plus
d’information sur la numérisation, voir l’éclairage scientifique ainsi que le projet EPI « Conception et programmation d’un synthétiseur ».
Recherche (par groupe) : analogique ou numérique ?
Chaque groupe reçoit 2 capteurs différents (en plus de la carte Arduino équipée de son Shield, de l’alimentation et de la connectique nécessaire) parmi les capteurs utilisés dans le projet (mouvement, son, lumière, vibration, gaz/fumée, magnétique, bouton poussoir/interrupteur…).
Les élèves doivent remplir la Fiche 4, et pour cela tester différentes façons de brancher leurs capteurs sur le Shield (soit sur une connexion analogique, soit sur une connexion numérique). Ils doivent par ailleurs expliquer ce que fait ce capteur, et indiquer les différentes valeurs qu’il retourne. Pour cela, il est nécessaire d’écrire un programme mBlock permettant de visualiser ces valeurs.
En fonction de l’aisance des élèves, le professeur pourra les laisser en complète autonomie pour la phase de programmation, ou leur indiquer simplement les instructions nécessaires (mais en les mettant dans le désordre), ou encore faire une démonstration collective pour un capteur (les élèves devant, ensuite, s’inspirer de cette méthode pour leurs propres investigations).
Exemple 1 : le capteur de lumière (analogique)
Ce capteur se branche sur une entrée analogique. Par exemple A03 :
Branchement du capteur de lumière
L’instruction permettant d’afficher la valeur retournée par le capteur de lumière est, tout simplement :
En cliquant sur cette instruction, on affiche la valeur retournée par le capteur.
Pour faire afficher cette valeur de façon continue, il y a 2 possibilités :
- faire « dire » cette valeur par le lutin (commande « dire » dans l’onglet « apparence ») : la valeur est affichée dans une bulle ;
- créer une variable, lui affecter la valeur qui nous intéresse, et faire afficher cette variable à l’écran.
La première méthode, beaucoup plus simple, suffit amplement pour cette tâche. Si l’on souhaite que le programme affiche cette valeur en continu, le programme mBlock devient :
Programme simple permettant d’afficher la valeur retournée par le capteur de lumière.
Si l’on place le capteur au creux de ses mains ou en pleine lumière, on remarque qu’il renvoie des valeurs allant de 0 à environ 800 (variable selon l’intensité de la lumière).
Notes scientifiques :
- Tous les capteurs analogiques pour Arduino renvoient des valeurs comprises entre 0 et 1023 (il y a 210 valeurs différentes, car il s’agit d’un encodage sur 10 bits).
- Certains capteurs (qu’ils soient analogiques ou numériques) possèdent une molette permettant de régler leur sensibilité via un potentiomètre. Cette molette est en général réglable à l’aide d’un petit tournevis cruciforme.
Exemple 2 : l’interrupteur magnétique ILS (numérique)
Ce capteur est un capteur numérique, qui ne renvoie que 2 valeurs différentes : 1, lorsqu’il détecte un aimant à proximité, ou 0 s’il ne détecte rien.
Branchement et programme permettant de tester l’interrupteur magnétique ILS.
Si on rapproche le petit aimant du capteur, la valeur renvoyée par le capteur passe de 0 à 1.
Les autres capteurs donnent lieu à des travaux similaires.
Mise en commun (collectivement)
Le professeur anime la mise en commun au cours de laquelle chaque porte-parole présente les résultats de son groupe. Les différents capteurs sont comparés, et on vérifie que certains renvoient bien une plage de valeurs continues (les capteurs analogiques) tandis que d’autres ne renvoient que 2 valeurs possibles (les capteurs numériques).
Le professeur introduit la notion de signal, qui est la variation dans le temps d’une certaine information (par exemple, température, luminosité ambiante…). Selon la manière dont un signal varie, on parle de signal analogique ou de signal numérique.
Recherche (par groupes) : commander un actionneur à l’aide d’un capteur
Les groupes reçoivent désormais un actionneur, en plus de leur(s)
capteur(s), avec la consigne de faire marcher l’actionneur uniquement
dans le cas où la valeur renvoyée par le capteur dépasse un certain
seuil.
Par exemple :
- Le buzzer ne doit bipper que si la luminosité ambiante dépasse la valeur seuil de 500 (sur une échelle de 0 à 1023).
- La DEL ne doit s’allumer que si le bouton poussoir est enfoncé (ce bouton poussoir peut renvoyer 2 valeurs différentes : VRAI s’il est enfoncé, FAUX sinon)
- etc.
Le montage fait maintenant intervenir 2 modules Grove branchés en même temps : le capteur et l’actionneur.
À chaque répétition de la boucle, on teste la valeur de la luminosité,
et on allume la DEL si cette valeur dépasse la valeur seuil (on éteint
la DEL dans le cas contraire).
L’initialisation en début de programme n’est pas indispensable, mais c’est une bonne habitude à prendre.
De la même façon que précédemment, le professeur peut laisser les élèves définir l’algorithme, puis le programmer, en autonomie complète (si ceux-ci ont déjà une petite expérience en Scratch, cela ne pose pas de difficulté), ou les guider, par exemple en leur indiquant les instructions nécessaires (mais sans les assembler et surtout sans les mettre dans l’ordre).
Bilan et conclusion
La classe dresse collectivement un bilan des notions abordées au cours de cette séance :
- Il existe différents types d’éléments pouvant être branchés sur la carte Arduino : des capteurs (qui renvoient des signaux) et des actionneurs (qui agissent sur l’environnement externe, par exemple en émettant un son, une lumière…)
- Un signal est composé des différentes valeurs d’une information au cours du temps. Certains signaux, dits analogiques, peuvent prendre une infinité de valeurs différentes : ils varient de façon continue. D’autres signaux, dits numériques, ne prennent que quelques valeurs différentes (souvent 2) : ils varient de façon discontinue.
Les élèves notent également les nouvelles commandes mBlock qu’ils ont appris à utiliser :
- Dire…
- Lire l’état logique… sur la broche…
- Lire la valeur du capteur… sur la broche…
- Si… alors… sinon…
Comme lors des séances précédentes, les élèves archivent les notes et
photos qu’ils ont prises dans le but de préparer la restitution finale.
Extrait de "1, 2, 3... codez !", Editions Le Pommier, 2016-2017. Publié sous licence CC by-nc-nd 3.0.