Le mode radio permet de faire communiquer les cartes microbit par ondes radios.
Tout d’abord on ajoute import radio
pour accéder à la librairies des fonctions radio.
Ensuite, puisque la radio consomme de l’énergie et de la mémoire on peut décider quand elle est allumée ou pas.
radio.on()
radio.off()
Une fois allumée la radio est configurée avec des paramètres par défaut.
Il est possible de modifier le canal utilisé, la quantité d’énergie utilisée pour la diffusion des messages
ansi que la quantité de RAM que les message entrant dans la queue occupent grâce à la fonction radio.config()
.
La documentation de l’API contient toutes les informations dont tu as besoin pour configurer ta radio selon tes besoins.
Dans cet exemple, nous allons configurer notre radio pour diffuser sur le canal 21.
import radio radio.on() radio.config(channel=21)
Ensuite pour envoyer un message on utilise la méthode radio.send(msg)
et pour recevoir un message la méthode radio.receive()
. Cette dernière est non bloquante,
c'est à dire qu'elle n'attend pas la réception d'un message. Si aucun message n'a été reçu au moment de l'appel
à cette fonction, cette dernière renvoie la valeur None.
Sinon, il faut savoir qu'au niveau de la réception des messages, est mis en place une file d'attente, dans laquelle
les messages reçus sont mis en attente pour une récupération via la méthode receive()
.
Il s'agit d'une file d'attente de type FIFO (First n Firt Out), c'est à dire que le premier message mis dans la file est aussi le premier sortie.
La taille de cette file est limitée, si elle arrive à saturation, les nouveaux messages reçus sont ignorés.
On peut régler la taille de cette file grâce à la méthode radio.config(queue=4)
.
The queue (default=3) specifies the number of messages that can be stored on the incoming message queue. If there are no spaces left on the queue for incoming messages, then the incoming message is dropped.
from microbit import * import radio radio.on() radio.config(channel=19) # Choose your own channel number radio.config(power=7) # Turn the signal up to full strength my_message = "NSI is amazing !" # Event loop. while True: radio.send(my_message) incoming = radio.receive() if incoming is not None: display.show(incoming) print(incoming) sleep(500)