Le but de cet article est de décrire le fonctionnement et l’utilisation des modules Bluetooth/Série mis à disposition au FabLab. Le but de ces modules est d’offrir une communication similaire à une communication UART (« Serial » dans Arduino), mais en sans fil. Il est donc possible, en utilisant les fonctions standards pour communiquer sur le port série, et avec un effort minimum, de communiquer à distance avec n’importe quel appareil compatible (PC, smartphone, autre module…).
Le principe de ce type de module est quasiment toujours le même, quelque soit le modèle ou le fabricant. La seule différence réside dans les commandes qu’ils acceptent. Pour mettre en place ces modules, il faut commencer par les configurer, vérifier que la connexion fonctionne, puis les intégrer dans votre projet (la partie facile…).
Quelques principes de base
Communication série
Une communication série, c’est une communication dans laquelle les bits à transmettre sont envoyer séquentiellement, c’est-à-dire l’un après l’autre. L’avantage de ce type de communication, c’est qu’on n’a besoin que d’un seul fil pour transmettre des données, quelle que soit leur taille. L’inconvénient, c’est que c’est une communication lente.
Il existe différents types de communications séries : le Serial Peripheral Interface (SPI), l’Inter Integrated Circuite (I2C), ou encore l’Universal Asynchronous Receiver/Transmitter (UART). C’est ce dernier type qui nous intéresse.
L’UART est un protocole très simple, que je ne décris pas en détail ici. Il est par contre utilisé sous différentes formes, et il existe en particulier différentes tensions de référence selon les implémentations. On va s’intéresser ici à l’UART de l’Arduino, qui fonctionne sur des niveaux de 0V et 3.3V. L’UART requiert au minimum 2 fils pour fonctionner un pour la réception (RX) et un pour l’émission (TX). On trouve ces deux fils sur les pins 0 et 1 de l’Arduino. Le protocole UART est implémenté directement en matériel dans le microcontrôleur de l’Arduino. Cependant, l’Arduino est connecté en USB sur le PC. Pour pouvoir communiquer avec l’UART, il y a donc une traduction UART/USB qui est faite par un deuxième microcontrôleur sur la carte. Sous Linux, lorsque vous sélectionnez le port série de l’Arduino, c’est en fait un convertisseur USB/Série, et vous pouvez regardez la communication en vous connectant sur les pins 0 et 1.
Bluetooth
Le Bluetooth est protocole de communication sans fil fonctionnant dans la bande des 2.4 GHz (la même que le WiFi), et conçu pour faire communiquer des périphériques à distance réduite. C’est un protocole complexe, dans cet article on ne s’intéresse qu’à un mode particulier du Bluetooth : le RFCOMM, qui émule une communication type UART sur le Bluetooth.
Configuration
Pour bien comprendre comment fonctionnent ces modules, voici un exemple dans lequel deux Arduino communiquent via 2 modules Bluetooth/Série :
Dans cette configuration, il y a 4 communications séries qui entrent en jeu :
- la communciation entre le PC1 et l’Arduino 1, notée UART0
- la communication entre l’Arduino 1 et le BT1, notée UART1
- la communication entre l’Arduino 2 et le BT2, notée UART2
- la communication entre l’Arduino 2 et le PC2, notée UART3
UART0 et UART3 servent à communiquer avec l’Arduino. Ce sont celles qui sont utilisées lorsque vous utilisez le terminal série du logiciel Arduino, et qui sont également utilisées pour programmer votre carte Arduino. Ce sont ces connexions qui sont utilisées lorsque vous utilisez la librairie Serial.
UART1 et UART2 servent à utiliser le Bluetooth depuis l’Arduino. Selon les cas, elles peuvent donc être utilisées soit pour configurer le Bluetooth selon nos besoins, soit pour communiquer directement. Ces connexions sont réalisées sur des pins de l’Arduino qui ne correspondent pas au port série, on va donc émuler un port série grâce à la librairie « SoftwareSerial ».
Marche à suivre

