🛠 Communication entre deux micro:bit avec le module radio
Objectifs
Faire communiquer deux cartes micro:bit V2 sans fil grâce au module radio de MicroPython, qui exploite la radio BLE 2,4 GHz du nRF52833 (SoftDevice S113). Vous enverrez des messages chiffrés par groupe entre plusieurs cartes.
Matériel
- 2 cartes micro:bit V2 (ou plus)
- 1 câble micro-USB pour flasher chaque carte
- Pas de routeur ni d'appairage requis : tout est embarqué
Code complet
# Émetteur (carte 1)
from microbit import *
import radio
radio.on
radio.config(group=23, channel=40, power=6)
while True:
if button_a.was_pressed:
radio.send("SOS")
display.show(Image.HAPPY)
if button_b.was_pressed:
radio.send("COUCOU")
display.show(Image.SILLY)
sleep(50)
# Récepteur (carte 2)
from microbit import *
import radio
radio.on
radio.config(group=23, channel=40, power=6)
while True:
msg = radio.receive
if msg == "SOS":
display.show(Image.SAD)
sleep(1000)
elif msg == "COUCOU":
display.show(Image.HEART)
sleep(1000)
display.clear
sleep(50)
group filtre les destinataires, channel (0-83) fixe le canal 2,4 GHz, power (0-7) la puissance d'émission. Les messages sont de petites trames ; le module est conçu pour des jeux et réseaux multi-cartes (voir le tutoriel officiel « Fireflies »).
Vérification attendue
Appui sur A de la carte 1 : la carte 2 affiche un visage triste ; appui sur B : un cœur. Deux cartes flashées avec le même code réagissent l'une à l'autre à plusieurs mètrès de distance.
Erreurs fréquentes
- Oublier
radio.on:sendne fait rien silencieusement. - Groupes ou canaux différents entre émetteur et récepteur : aucune réception.
- Messages trop longs ou binaires non pris en charge : restez sur de courtes chaînes.
- Interférences Wi-Fi sur le canal choisi : changez
channelsi les trames se perdent.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
coeur.pyMicroPythonboutons.pyMicroPythonpodometre.pyMicroPythonlumiere.pyMicroPythonmusique.pyMicroPythonradio_ping.pyMicroPython