Communication série via Bluetooth¶
Document décrivant comment utiliser le module du robot MakeBlock Ranger pour communiquer avec un appareil externe via Bluetooth.
Introduction¶
La communication série via Bluetooth est une méthode de communication sans fil qui permet de transmettre des données entre deux appareils. Dans le cas du robot MakeBlock Ranger, il est possible de communiquer avec un appareil externe via le module Bluetooth intégré.
Pour le robot, la communication Bluetooth n'est pas différente de la communication série classique. Il suffit de configurer le module Bluetooth pour qu'il établisse une connexion série avec l'appareil externe. Une fois la connexion établie, il est possible de transmettre des données entre les deux appareils.
Le module Bluetooth est connecté sur le port série 0 du robot. Ainsi, il s'agit des commandes Serial qui sont utilisées pour communiquer avec le module.
Note
Un des points négatifs de la connexion avec le port série 0 est que le module Bluetooth ne peut pas être utilisé en même temps que le moniteur série de l'IDE Arduino. Il est donc nécessaire de débrancher le module Bluetooth pour pouvoir utiliser le moniteur série.
Bluetooth Low Energy (BLE)¶
Le module Bluetooth du robot est un module Bluetooth Low Energy (BLE). Cette technologie permet de réduire la consommation d'énergie des appareils connectés. Elle est particulièrement adaptée pour les appareils qui ont une faible consommation d'énergie, comme les capteurs ou les objets connectés.
La plupart des nouveaux appareils électroniques Bluetooth sont équipés de la technologie BLE. Elle est devenue la norme pour les appareils connectés, car elle permet de prolonger la durée de vie de la batterie des appareils. Par exemple, les tags de localisation Bluetooth peuvent avoir une autonomie de plusieurs mois, voire de plusieurs années sur une pile de montre grâce à la technologie BLE.
Sur le robot¶
Le robot n'a aucune configuration particulière à faire pour utiliser le module Bluetooth. Il suffit de l'utiliser comme un port série classique avec les commandes Serial.
Python¶
Je vous fournis un script Python qui permet de communiquer avec le module Bluetooth du robot MakeBlock Ranger.
L'objectif du cours n'étant pas d'enseigner Python et étant donné que vous n'avez jamais utilisé ce langage, je vais utiliser plusieurs raccourcis pour être capable de vous montrer rapidement comment communiquer avec le module Bluetooth.
Installation de Thonny¶
Au lieu d'installer Python de façon traditionnelle, je vous propose d'installer Thonny. C'est un IDE Python qui est très simple d'utilisation et qui est parfait pour débuter.
Exercices - Installation de Thonny¶
- Télécharger Thonny à l'adresse suivante : https://thonny.org/
- Écoutez la vidéo de 35 secondes suivantes
Le script Python¶
Le script Python général est disponible à l'adresse suivante : https://github.com/nbourre/auriga_bluetooth_python_comm/
J'ai réalisé quelques scripts utilitaires pour vous permettre de communiquer avec le module Bluetooth du robot MakeBlock Ranger ainsi que de trouver l'adresse MAC du module.
Pour pouvoir exécuter les scripts, vous devez installer les librairies manquantes. Dans Thonny, vous pouvez le faire en cliquant sur Outils > Gérer les paquets... et en ajoutant les librairies suivantes :
bleak-
asyncio -
Le dossier
cli_appscontient les scripts en ligne de commande.- Le script
scan_robots.py: Permet de scanner les appareils Bluetooth à proximité et d'afficher les noms et adresses MAC des appareils MakeBlock Ranger.- Lors de l'exécution de ce script, il sauvegardera les adresses MAC des appareils MakeBlock Ranger dans un fichier nommé
makeblock_robots.csv.
- Lors de l'exécution de ce script, il sauvegardera les adresses MAC des appareils MakeBlock Ranger dans un fichier nommé
- Le script
makeblock_bluetooth.py: Permet de communiquer avec le module Bluetooth du robot MakeBlock Ranger et d'envoyer/recevoir des messages.
- Le script
- Le dossier
gui_appscontient les scripts avec une interface graphique.- Le script
gui_ble.py: Permet de communiquer avec le module Bluetooth du robot MakeBlock Ranger via une interface graphique simple. - Le script
gui_ble_wasd.pypermet de contrôler le robot avec les touches WASD du clavier.
- Le script
- Le dossier
arduinocontient des projets Arduino en lien avec le bluetooth.- Le projet
beep_when_foundpermet de faire biper le robot lorsqu'il est détecté par le scriptscan_robots.py. - Le projet
auriga_ble_testpermet de tester la communication série via Bluetooth avec certaines commandes compatibles avec le scriptgui_ble_wasd.py.
- Le projet
Fonctionnement du script¶
Le script Python permet de communiquer avec le module Bluetooth du robot MakeBlock Ranger.
- En lançant le script, il va rechercher le module Bluetooth avec l'adresse indiquée à la variable
DEVICE_NAME. - Une fois la connexion établie, le script va afficher les messages reçus du module Bluetooth comme le ferait le moniteur série de l'IDE Arduino.
- La touche ":" permet d'activer l'entrée utilisateur. Cela permet d'envoyer des données au module Bluetooth.
- La commande
quitpermet de quitter le script. CTRL +C permet de quitter le script.
Code rapide du robot¶
Pour tester le fonctionnement rapidement du robot, vous pouvez utiliser le code suivant :
Exercices¶
- Installez Thonny sur votre ordinateur.
- Installez les librairies
bleaketasynciodans Thonny.
- Installez les librairies
- Mettez le code Arduino de la section 'Code rapide du robot' dans votre robot MakeBlock Ranger.
- Téléchargez les scripts Python sur votre ordinateur.
- Exécutez le script
scan_robots.pypour trouver l'adresse MAC de votre robot. - Exécutez le script
makeblock_bluetooth.pypour communiquer avec votre robot.
Références¶
- TODO : Ajouter les références...
