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.
📡 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ération1+1
), il faudra d'abord convertir ce message en une chaîne de caractères avec la méthodestr()
:radio.send(str(1+1))
(au lieu deradio.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.
Mise en place
Chaque élève télécharge un des programmes suivants :
- compteur-afficheur.py : affichage du compteur ;
- compteur-controleur.py : contrôle du compteur avec les boutons gauche et droite.
Chaque élève flashe 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 (à conditions que le programme compteur-afficheur.py y soit installé).
Amélioration du programme
- Lisez et comprenez les deux programmes.
- Modifiez le canal utilisé (en choisissant un nombre entre 1 et 83, différent de celui des autres élèves de la classe). Vérifiez que cela fonctionne toujours.
- Modifiez les deux programmes pour que lorsque la carte « contrôleur » est secouée, le compteur est remis à zéro.
- ✋ Appelez le professeur pour vérifier votre travail.
⛅ 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'utilisatrice 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.
Chaque élève télécharge un des programmes suivants dans son dossier personnel.
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é).meteo-capteur.py
: Capteur : lorsque le message"température"
est reçu, renvoit la température ; lorsque le message"luminosité"
est reçu, renvoit 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))
.
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é).
Bilan
- enregistrez vos deux programmes, puis rendez-les sur Pronote (rubrique « Travail à faire ») ;
- complétez la fiche bilan ;
- rendez-la au professeur ;
- passez au TP suivant.