SE CONNECTER
1,2,3... codez ! | Le site de la Fondation La main à la pâte
Module 123 Codez | Programmer | Informatics and Digital Creation

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.
NB : cette séance peut être dédoublée si les élèves ont des difficultés à manipuler les opérateurs logiques (cf. activité de prolongement conseillée).

Notions

« Machines »

  •  En combinant plusieurs instructions simples on peut effectuer une tâche complexe.

« Algorithmes » :

  •  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.

Matériel

Pour chaque groupe

  •  Un ordinateur sur lequel a été installé le logiciel mBlock
  •  Une carte Arduino et son Shield Grove + alimentation et connectique
  •  2 capteurs Grove
  •  3 actionneurs Grove (DEL1, DEL2, buzzer)
  •  Un appareil photo numérique

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 :

  •  Encore une fois, on adapte notre projet au matériel disponible. Il n’est pas nécessaire d’acheter un coûteux module permettant de jouer des sons MP3… pour l’exercice, un buzzer peut suffire. On peut différencier la musique d’ambiance et le son de l’alarme en utilisant à la fois un buzzer et un haut-parleur (qui permet de moduler la fréquence du son), si l’on dispose de ces 2 actionneurs.
  •  Comme on le verra ci-dessous, l’algorithme est relativement complexe, avec plusieurs niveaux d’imbrication qui s’ajoutent à une nouveauté : les tirages aléatoires. Ne pas hésiter à le simplifier au besoin (voir plus bas pour un exemple).


Le montage commence à être complexe : 2 capteurs (interrupteur / luminosité) et 3 actionneurs (buzzer, DEL 1, DEL2).
Des étiquettes indiquent qui fait quoi (on peut améliorer ces étiquettes en prenant un code couleur pour les capteurs et un autre pour les actionneurs). Ici, les  capteurs sont à gauche, et les actionneurs à droite.
NB : une vidéo de ce montage en fonctionnement est disponible ICI (MOV 45Mo).


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 :


Version simplifiée du programme précédent (pas de tirage aléatoire).

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).