Protocoles de communication
Protocole de communication
On peut faire un parallèle avec la communication humaine.Un protocole est un ensemble de règles qui permettent de s'assurer que les informations sont bien comprises. On peut mettre en avant deux extrêmes :
- conversation humaine structurée
- messages incohérents, brouhaha
- envoi de messages globaux
- envoi de messages personnels
- création d'un groupe de discussion
Utilisation des cartes micro:bit
Nous allons utiliser les cartes micro:bit pour mettre en pratique une simulation de réseau de communications. Elles nous permettent d'aborder la question avec des simplifications utiles :
- pas de réseau à configurer
- communication radio, donc sans fil
- utilisation de Python
Le module radio
Le module radio des cartes micro:bit est très simple d'utilisation. Un exemple de code :
from microbit import *
import radio
radio.on() # Active la radio
radio.config(channel=10) # Définit un canal (10 ici)
while True:
if button_a.was_pressed():
radio.send("Bonjour !") # Envoie un message
message = radio.receive() # Permet de vérifier régulièrement la réception d'un message
if message:
print(message) # Affiche le message reçu dans la console
Explications :
- le module
radio
contient des fonctions permettant d'interagir avec la radio de la carte micro:bit - la fonction
radio.config()
permet de configurer la radio - la fonction
radio.on()
permet d'activer la radio - la fonction
radio.send()
permet d'envoyer des données par radio
Communications sans protocole
Dans ce premier exercice, nous allons prendre en mains l'interface de l'éditeur, s'assurer du bon fonctionnement de l'envoi d'un programme sur une carte, et mettre en place notre premier système de chat de discussion.
Consignes
L'objectif est simple :
- créer un programme permettant de rejoindre le canal 10
- la carte microbit détecte la pression sur le bouton A - si le bouton A est appuyé, elle demande à l'utilisateur le message à envoyer (fonction
input()
) - une fois que le résultat deinput()
a été stocké dans une variable, on envoie le contenu de cette variable avecradio.send()
- pour éviter les envois multiples, on peut utiliser immédiatement aprèsradio.send()
la fonctionsleep(100)
qui temporisera le programme - avecradio.receive()
, on détecte la réception d'un message, qu'on affichera avecprint()
dans la console
Mise en place d'un protocole
Un protocole de communication nous permettra aisément de pouvoir améliorer nos messages afin d'atteindre notre objectif : un grand forum dans lequel vous pouvez communiquer avec qui vous voulez, en sachant précisément qui vous parle et à qui vous vous adressez.
On rappelle quelques fonctions utiles :
- la fonction
split()
permet de diviser une chaîne de caractères en une liste de chaînes de caractères. L'argument est le séparateur.
messsage = "Bonjour ! Comment allez-vous ?"
message.split('.') # Donnera une liste : ["Bonjour ", " Comment allez-vous ?"]
- l'opérateur
+
permet de concaténer des chaînes de caractères :
auteur = "Mathieu"
message = "Bonjour"
trame = auteur+message
# trame sera égal à "MathieuBonjour"