La carte Microbit permet de communiquer sans fil avec d'autres cartes Microbit en utilisant un support de type "radio" en 2.4 Ghz.


Structure du réseau

Lorsqu'une donnée est envoyée elle est diffusée à l'ensemble des cartes qui sont dans le champs de réception du signal radio (broadcast).

L'envoi d'une donnée n'est pas ciblé.

Toutes les cartes décodent les mêmes informations en réception.


Pour l'émetteur piéton

Pour activer la radio de la carte micro:bit 

Pour désactiver la radio de la carte        

Pour envoyer un message  :        

radio.on()

radio.off()

radio.send(‘’le message’’)

             


Essayez ce bout de programme et vérifiez, dans la console, qu’il boucle bien.



# Test unitaire émetteur piéton

from microbit import *
import radio

radio.on()

while True:
    radio.send("pieton")
    print("pieton")
    sleep(100)


Pour le récepteur lampadaire

Plusieurs méthodes existent pour la réception des messages sur une micro:bit. Nous n’en n’utiliserons qu’une seule, car celle-ci contient un octet indiquant la puissance du signal reçu.

radio.receive_full() est une méthode qui renvoie un tuple contenant trois valeurs  :  

    • le prochain message entrant dans la file d'attente en octets. 
    • le RSSI (Received Signal Strength Information) (intensité du signal reçu): valeur comprise entre 0 (le plus fort) et -255 (le plus faible), mesurée en dBm. 
    • un horodatage en microsecondes: la valeur renvoyée par time.ticks_us() lors de la réception du message. 

S'il n'y a pas de message en attente, alors ‘’None’’ est renvoyé. 


Le RSSI nous permettra de régler la distance pour laquelle on souhaite allumer et éteindre le lampadaire.


Essayez ce bout de programme et notez les valeurs extrêmes du RSSI que vous obtiendrez ainsi que celle correspondant à la distance de détection souhaitée en approchant la carte passant vers le lampadaire.



# Test unitaire récepteur lampadaire


from microbit import *
import radio

radio.on()

while True:
    Details_Reception = radio.receive_full()
    if Details_Reception:
        print(Details_Reception[0])
        print(Details_Reception[1])
        print(Details_Reception[2])
    print("coucou")
    sleep(100)





Créé avec HelpNDoc Personal Edition: Convertissez sans effort votre contenu Markdown avec HelpNDoc