radio tower, de Luca Serazzi, publié sous licence Creative Commons by 2.0.

TP5 — Communiquer avec une autre carte

Crédits

Cette séance est inspirée de celle de mes collègues Stéphane Colomban et Jérémy Chevillot. Merci à eux.

Pour l'ensemble des exercices de cette partie, chaque binôme d'élèves devra se munir de deux cartes micro:bit. ou bien travailler avec son binôme voisin.

Comment faire communiquer deux cartes ?

La carte micro:bit est équipée d'un émetteur/récepteur radio qui permet à deux cartes de communiquer à distance.

Instructions

Les instructions disponibles sont :

  • radio.on() : allume la radio. À écrire obligatoirement avant toute utilisation de la radio ;
  • radio.config(channel=7) : configure le canal radio sur lequel vous allez émettre et recevoir (comme les Talkie-Walkies) ; les canaux disponibles vont de 0 à 83 (celui par défaut étant le numéro 7). Les deux cartes qui communiquent entre elles doivent utiliser le même canal (donc le même numéro) ;
  • radio.send("message") : envoie la chaîne de caractères (texte) message. Notez qu'il n'est possible d'envoyer que du texte avec cette méthode. Pour envoyer un nombre (par exemple le résultat de l'opération 1+1), il faudra d'abord convertir ce message en une chaîne de caractères avec la méthode str() : radio.send(str(1+1)) (au lieu de radio.send(1+1) qui échouera).
  • radio.receive() : reçoit le prochain message à être diffusé sur le canal de réception ;
  • radio.off() : éteint la radio.

Pour plus d'informations, voir la documentation officielle.

Exercice

On fabrique un compteur formé de deux cartes :

  • l'afficheur affiche le compteur (des nombres de 0 à …) ;
  • en appuyant sur les boutons gauche et droite du contrôleur, on peut augmenter ou diminuer le compteur.
  1. Mise en place : travail à faire par 2 (élèves ou binômes) voisins

    1. Chaque élève (ou binôme) ouvre une des activités Capytale suivantes :

      • Affichage du compteur : SNT - TP5 - Compteur Afficheur avec le code f190-8426298 (compteur-afficheur.py) 
      • Contrôle du compteur : SNT - TP5 - Compteur Contrôleur avec le code 2c6b-8426369 (compteur-controleur.py)
    2. Chaque élève téléverse son programme sur sa carte micro:bit. Cela doit alors fonctionner :

      • un des élèves voit le compteur sur sa carte ;
      • l'autre peut contrôler, avec les boutons gauche et droite, la valeur du compteur sur l'autre carte.

      Remarquez qu'à ce stade, toutes les cartes des élèves communiquent sur le même canal : votre carte contrôleur n'agit pas seulement sur la carte de votre binôme, mais aussi sur toutes les cartes des élèves de la classe (à condition que le programme compteur-afficheur.py y soit installé).

  2. Amélioration du programme

    1. Lisez et comprenez les deux programmes.
    2. Modifiez le canal utilisé (en choisissant un nombre entre 1 et 83, différent de celui des autres élèves de la classe -> Inscrivez-le au tableau lorsqu'il est choisi).
    3. Vérifiez que cela fonctionne toujours.
    4. Modifiez les deux programmes pour que lorsque la carte contrôleur est secouée, le compteur est remis à zéro.
    5. ✋ Appelez le professeur pour vérifier votre travail.

Un peu plus d'autonomie

A choisir

Faites un des trois TP ci-dessous, au choix.

Télé-assistance

On souhaite réaliser un bracelet de télé-assistance pour personnes âgées : il s'agit d'un bracelet qui alerte un infirmier en cas de chute.

  • La première carte simule le bracelet : Lorsque la carte est secouée (chute de la personne), un message d'alerte est envoyé au poste de contrôle.
  • La second carte simule le poste de contrôle : Lorsqu'il reçoit le message d'alerte, la carte se met à clignoter pour prévenir le personnel qu'une personne est en danger.
  1. Chaque élève (ou binôme) ouvre une des deux activités Capytale suivantes :

    • SNT - TP5 - Télé-assistance Bracelet avec le code 586c-8426609 (tele-bracelet.py) : Bracelet électronique qui envoie le message "alerte" lorsque la carte est secouée.
    • SNT - TP5 - Télé-assistance Contrôle avec le code 8f65-8426648 (tele-controle.py) : Poste de contrôle qui fait clignoter la carte lorsque le message "alerte" est reçu.
  2. Complétez les programmes pour qu'ils fonctionnent.

  3. Bilan

    • complétez la fiche bilan ;
    • enregistrez vos deux activités, puis rendez-les sur Capytale (« Rendre le travail ») en précisant bien en début de code # NOM et Prénom de tous les élèves participants ;
    • rendez la fiche bilan au professeur qui doit alors valider le fonctionnement de vos programmes ;
    • passez au TP suivant.

Station météorologique

On souhaite réaliser une station météorologique (rudimentaire) composée de deux parties : un capteur à l'extérieur qui effectue les mesures, et une interface à l'intérieur qui affiche ces mesures.

  • La première carte est le capteur placé à l'extérieur : à la réception d'un message, elle mesure la température ou la luminosité, et renvoie cette information.
  • La seconde carte est l'interface, à l'intérieur : lorsque l'utilisateur appuie sur un des boutons, elle envoie un message à l'autre carte pour demander la température (bouton A) ou la luminosité (bouton B), et affiche le résultat.
  1. Chaque élève (ou binôme) ouvre une des activités Capytale suivantes :

    • SNT - TP5 - Météo Interface avec le code ed37-8426863 (meteo-interface.py) : Interface : lorsque l'utilisatrice appuie sur le bouton A, envoie le message "température" ; lorsque l'utilisatrice appuie sur le bouton B, envie le message "luminosité". Puis attend que l'autre carte réponde, et affiche la valeur reçue (température ou luminosité).
    • SNT - TP5 - Météo Capteur avec le code c7f2-8426898 (meteo-capteur.py) : Capteur : lorsque le message "température" est reçu, renvoie la température ; lorsque le message "luminosité" est reçu, renvoie la luminosité.

      ⚠️ Attention : Avec la carte micro:bit, la température comme la luminosité sont des nombres, qu'il faudra convertir en chaînes de caractères avant de les envoyer par radio : radio.send(str(XXX)).

  2. Complétez les programmes pour qu'ils fonctionnent (pour tester la luminosité, on pourra cacher la carte avec sa main pour faire baisser la luminosité).

  3. Bilan

    • enregistrez vos deux programmes, puis rendez-les sur Capytale (« Rendre le travail ») en précisant bien en début de code # NOM et Prénom de tous les élèves participants ;
    • complétez la fiche bilan ;
    • rendez-la au professeur qui doit alors valider le fonctionnement de vos programmes ;
    • passez au TP suivant.

Clignotant de vélo

Le but de cet exercice est de créer un clignotant de vélo connecté :

  • sur la première carte, attachée sur le guidon, l'utilisatrice peut appuyer sur le bouton A ou B pour signifier son intention de tourner à gauche (A) ou à droite (B) ;
  • la seconde carte, attachée à l'arrière du vélo, n'affiche rien, jusqu'à ce qu'elle reçoive un signal de la première carte. Elle affiche alors une flèche vers la gauche ou vers la droite pendant cinq secondes, puis s'éteint.
  1. Chaque élève (ou binôme) ouvre une des activités Capytale suivantes :

    • SNT - TP5 - Vélo Guidon avec le code 57dd-8426998 (velo-guidon.py) : Lorsque la cycliste appuie sur le bouton A ou B, le message "gauche" ou "droite" est envoyé à l'autre carte.
    • SNT - TP5 - Vélo Arrière avec le code 4115-8427025 (velo-arriere.py) : Lorsque le message "gauche" ou "droite" est reçu, affiche pendant cinq secondes la flèche correspondante.
  2. Complétez les programmes pour qu'ils fonctionnent.

  3. Bilan

    • Demander puis compléter la fiche bilan de ce TP ;
    • enregistrez vos deux programmes, puis rendez-les sur Capytale (« Rendre le travail ») en précisant bien en début de code # NOM et Prénom de tous les élèves participants ;
    • Rendez la fiche au professeur qui doit alors valider le fonctionnement de vos programmes ;
    • Passez au TP suivant.