Skip to content

Afficher l’état d’une lampe d’une pièce de Home I/O dans l’interface Scratch

Auteurs

URCA

Ce tutoriel s’intéresse à la partie graphique de Scratch 2.

Objectif : Afficher l’état d’une lampe d’une pièce de Home I/O dans l’interface Scratch

Principe : lorsque qu’un mouvement est détecté dans la pièce A de Home I/O, on allume la lumière dans Home I/O et on affiche une lampe colorée dans l’interface Scratch au niveau de la pièce A

Lampe allumée Lampe éteinte

Programmation :

Dans un premier temps, il est nécessaire de définir quand notre programme sera actif. Pour cela la manière la plus simple est d’activer notre programme dès que l’on appuie sur le drapeau vert au-dessus de l’interface graphique.

On sélectionne donc le bloc « Quand – drapeau vert – est cliqué » dans la catégorie « Evénements ».

Ensuite il est nécessaire que notre programme soit répétable à l’infini tant que le drapeau est cliqué. Sans cette étape, notre programme s’exécutera qu’une seule fois.

On ajoute le bloc « répéter indéfiniment » (catégorie « Contrôle ») dans lequel on viendra intégrer les différentes instructions propres aux lampes.

Maintenant que notre programme est correctement structuré, nous pouvons programmer la fonction souhaitée.

A partir de maintenant, tous les blocs iront se positionner dans la boucle « répéter indéfiniment ».

Premièrement, il faut choisir une condition d’affichage de notre ampoule colorée. Dans cet exemple, il faut choisir le détecteur de mouvement de la pièce A. Ajouter dans la boucle « pour toujours » le bloc « si…alors ». Choisir le bloc « Détecter mouvement 1 pièce A » et le positionner comme condition dans le bloc « si…alors ».

Sélectionner le bloc « allumer la lumière 1 de la pièce A » qui permet d’allumer la lampe dans Home I/O.

Ensuite nous allons nous occuper de l’interface Scratch :

Par défaut, l’ampoule sera cachée et nous l’afficherons au niveau de l’interface graphique si un mouvement est détecté dans la pièce A. Dès qu’il n’y aura plus de mouvement dans la pièce, il faut attendre quelques secondes pour vérifier au cas où la personne dans la pièce est toujours présente mais n’a pas bougée, puis seulement après l’éteindre. Au même moment, on cache l’ampoule.

Il faut d’abord ajouter une scène d’arrière-plan. Cliquer sur « importer » dans la section « arrière-plan » et sélectionner l’image correspondant à la carte Home I/O. Dans cet exemple, l’image de fond possède des ampoules grisées dans toutes les pièces et il faudra la recouvrir d’une ampoule colorée si nécessaire.

Pour ajouter l’image de l’ampoule colorée, il faut ajouter un lutin en cliquant sur « Importer un lutin » et préciser que par défaut le lutin est caché : cliquer sur le « i » lutin et décocher « montrer ».

Dans le programme, il faut déplacer le lutin (ici l’ampoule) aux coordonnées qui permettront de recouvrir l’ampoule grisée de la pièce A. On place le bloc « aller à x : … y : … » à la suite et on remplace la case « x : » par -151 et la case « y : » par 8.

Maintenant que l’ampoule est placée, il faut indiquer que l’on veut l’afficher en utilisant le bloc « montrer » de la catégorie « Apparence » que l’on met à la suite.

A partir de ce moment-là, l’ampoule s’apparaitra colorée si la lumière est allumée. Il reste à programmer le fait d’éteindre la lumière et cacher l’ampoule colorée.

Comme vu dans le tutoriel précédent, il faut attendre de ne plus détecter de mouvement pendant plusieurs secondes puis seulement après éteindre la lampe et en même temps cacher le lutin. On utilise les blocs suivants :

  • « Attendre jusqu’à » dans la catégorie « Contrôle »
  • « Non » dans la catégorie « Opérateurs »
  • « Attendre … secondes » dans la catégorie « Contrôle »

Ensuite on éteint la lampe en utilisant le même bloc que pour l’allumer mais en le configurant sur « Eteindre la lumière 1 de la pièce A » via le menu déroulant.

Il ne reste plus qu’à cacher l’ampoule colorée en utilisant le bloc « Cacher » de la catégorie « Apparence » que l’on positionne à la suite.

Maintenant, une lampe colorée s’affichera dans la pièce A de l’interface graphique dès qu’il y aura du mouvement dans cette pièce. Si on le souhaite, il ne reste plus qu’à répéter ces étapes en créant un nouveau lutin pour chaque pièce et adapter les coordonnés du lutin.

Note : suivant la taille des ampoules sur la carte, il faut choisir la taille de l’ampoule colorée adaptée lors du choix du lutin

Amélioration :

Le programme est fonctionnel mais comme indiqué dans le tutoriel précédent, le bloc conditionnel « si…alors… » n’est pas destiné à être utilisé pour de la programmation à état. Par conséquent, il est préférable de changer ce bloc pour le bloc « attendre jusqu’à… ». Le fonctionnement est le même mais cette seconde solution est meilleure pour de la programmation à état. Le programme complet est alors le suivant :