Projet « Domotique » – Séance 5 Comportements complexes
1, 2, 3, codez ! - Activités cycle 4 - Projet « Domotique » - Séance 5 : Comportements complexes
Discipline Dominante |
Technologie |
Résumé |
Les élèves apprennent à manipuler des opérateurs logiques, en
particulier ET et OU, de façon à pouvoir programmer des comportements
plus complexes, en lien avec les cahiers des charges produits en début
de projet. Ils réalisent les montages et les programmes correspondant. |
Notions |
« Machines »
« Algorithmes » :
|
Matériel |
Pour chaque groupe
Pour chaque élève (prolongement conseillé) |
Situation déclenchante
La classe revient collectivement sur ce qui a été appris lors des dernières séances : comment brancher la carte Arduino, comment piloter un actionneur à l’aide d’un signal envoyé par un capteur à l’aide du logiciel mBlock, etc.
Le professeur rappelle que, jusqu’à présent, les programmes qui ont
été réalisés sont des programmes élémentaires, alors que les
fonctionnalités que l’on souhaite développer sont plus complexes.
Par exemple, pour le bouton « appel d’urgence » : cet
appel doit être déclenché, non pas si on appuie sur 1 bouton, mais si on
appuie sur l’un OU l’autre des 2 boutons présents dans la maison (un dans la chambre, un dans la salle de bains, par exemple).
Recherche (par groupes) : programmer le bouton d’alarme
Les élèves cherchent comment réaliser le branchement (il faut 2 capteurs et 1 actionneur), et comment programmer la fonctionnalité dans mBlock.
Au besoin, le professeur leur indique que la solution se trouve dans l’onglet « opérateurs » (vert).
Ici, le buzzer se déclenche si l’on appuie sur le bouton poussoir
OU si l’on appuie sur la touche tactile. En cliquant sur chaque
instruction « lire l’état logique… », on peut vérifier que les
valeurs prises sont 0/1 ou False/True.
Note pédagogique
Il existe des cartes compatibles Arduino permettant d’envoyer des SMS, ou des modules Grove qui
permettent d’utiliser des fonctionnalités réseau (wifi, bluetooth…)
mais, pour la simplicité du projet et pour des raisons économiques, nous
considérons qu’un Buzzer ou une DEL suffisent pour simuler l’appel
d’urgence.
Mise en commun (collectivement)
Le professeur organise une mise en commun et s’assure que chacun a
bien compris comment combiner différentes valeurs pour fabriquer une
expression logique.
Un état logique peut être VRAI ou FAUX. Un opérateur logique (OU, ET ou
NON) permet de combiner ces différentes états logiques pour fabriquer
une expression plus ou moins complexe, qui possède elle-même une valeur
VRAI ou FAUX.
- Le résultat de (a) OU (b) est VRAI si (a) est VRAI ou si (b) est VRAI (ou les deux à la fois : ce OU n’est pas exclusif).
- Le résultat de (a) ET (b) est VRAI si et seulement si (a) et (b) sont VRAIS tous les deux à la fois.
- Le résultat de NON (a) est VRAI si et seulement si (a) est FAUX.
Notes pédagogiques
- Il n’est pas nécessaire (et pas dans les programmes…) de faire un cours précis sur l’algèbre de Boole ou de dessiner les tables de valeurs logiques pour les différents opérateurs. Cependant, une compréhension générale (comme ici), sera très utile pour tous les travaux en algorithmique ou en programmation.
- En cas de difficultés, nous conseillons très fortement de faire une pause dans le projet et de réaliser, collectivement, l’activité de prolongement proposée en fin de cette séance. Dans le cas contraire (si les élèves n’ont pas de difficulté particulière), l’activité pourra davantage être proposée comme exercice de consolidation, à faire à la maison.
- En Scratch/mBlock, les états logiques ont tous la même apparence : ce sont des blocs hexagonaux. On remarque d’ailleurs que l’expression est une expression logique. On peut faire afficher sa valeur (qui est : VRAI) en cliquant dessus. Les nombres « 4 » et « 5 » peuvent être remplacés par n’importe quelle valeur : variable, signal envoyé par un capteur, etc.
Afin de vérifier la bonne compréhension de cette nouvelle notion, le professeur demande aux élèves de programmer une nouvelle fonctionnalité du même type. Par exemple, pour assurer la sécurité des personnes dans la maison, on peut souhaiter faire allumer la lumière si un mouvement est détecté ET s’il fait nuit.
Recherche (par groupes)
Les élèves cherchent comment programmer cette fonctionnalité. Il faut 2 capteurs (mouvement + luminosité) et un actionneur (DEL).
Dans cet exemple, la lumière ne s’allume que si 2 conditions sont
respectées simultanément : une présence est détectée ET il fait
nuit (la luminosité est inférieure à un certain seuil, que l’on
détermine en fonction du capteur et du lieu).
Recherche (collectivement)
Après avoir organisé la mise en commun et s’être assuré que
l’étape précédente ne pose plus de difficulté majeure, le professeur
propose de résoudre collectivement une tâche plus complexe :
programmer la simulation de présence. Bien sûr, en fonction de l’aisance
des élèves (et du temps disponible), on peut choisir de les faire
travailler en autonomie. Cette fonction étant plus complexe, il importe de se remettre en mémoire l’algorithme précis (cf. Séance 2), ci-contre. Note pédagogique :
|
Le programme, lui aussi, est assez complexe, avec une boucle et 3 instructions conditionnelles (si…alors…sinon…) imbriquées les unes dans les autres. Noter que nous avons introduit une pause pour éviter le clignotement trop rapide, et que nous avons fait afficher la luminosité (sur la scène Scratch) afin de vérifier que le programme fait bien ce qu’il est censé faire lorsque la luminosité dépasse le seuil indiqué. |
Ne pas hésiter, si cela est trop difficile pour les élèves, à simplifier l’algorithme, et donc le programme. Si on se contente d’allumer les 2 DELs en même temps, sans tirage aléatoire, le programme devient :
|
Bilan et conclusion
La classe dresse collectivement le bilan de ce qui a été appris :
- Une condition est une expression qui est soit vraie, soit fausse (on peut la représenter, parfois, sous la forme 1, pour vrai, et 0, pour faux)
- On peut utiliser des opérateurs logiques (ET, OU, NON) pour fabriquer des expressions logiques.
De même que précédemment, les élèves notent les nouvelles commandes qu’ils ont appris à manipuler dans mBlock/Scratch :
- Nombre aléatoire entre… et …
- … ET…
- … OU…
- NON…
Enfin, ils archivent leurs notes et photos dans l’optique de la présentation finale du projet.
Prolongement sur les opérateurs logiques
Nous conseillons fortement une petite activité de prolongement destinée à faciliter la compréhension des opérateurs logiques. La Fiche 5 peut être étudiée en classe (prévoir une séance dédiée) ou sous la forme de devoirs à la maison (qui devront être corrigés collectivement).
Extrait de "1, 2, 3... codez !", Editions Le Pommier, 2016-2017. Publié sous licence CC by-nc-nd 3.0.