Tu veux communiquer via Bluetooth avec ta carte contrôleur ? C’est possible si tu disposes d’un module Bluetooth compatible avec Arduino ou bien d’une carte comme la ZUM BT-328 qui a un module Bluetooth intégré. Pour communiquer il faut être deux : deux makers, deux robots, deux laitues, etc. Bon, c’est vrai que c’est plus compliqué dans le cas des laitues… Toujours est-il que pour établir une communication sans fil via Bluetooth, tu as besoin de deux programmes : un qui s’exécute sur l’ordinateur ou l’appareil mobile/tablette et un autre qui s’exécute sur la carte contrôleur.
Ici, nous allons t’expliquer comment établir cette communication avec un ordinateur équipé du Bluetooth. Tu vas avoir besoin de :
- Un programme à l’intérieur de la carte contrôleur qui envoie/reçoit des données (nous allons le créer avec bitbloq).
- Un programme à l’intérieur de l’ordinateur ou de l’appareil équipé du Bluetooth qui envoie/reçoit des données (nous allons utiliser le Monitor Serial de l’environnement de développement intégré d’Arduino).
Ouvre bitbloq et télécharge l’environnement de développement intégré d’Arduino (EDI ou IDE en anglais). C’est parti !
ÉCRIRE PAR PORT SÉRIE-BLUETOOTH
Essayons donc d’envoyer la phrase « Bluetooth était un viking » (Bluetooth era un vikingo) par le port Bluetooth en laissant passer deux secondes entre chaque envoi.
Partie 1 : ÉMETTEUR – Programmation dans bitbloq
Nous allons utiliser le bloc suivant de la section Communication afin de sélectionner les paramètres du port série Bluetooth. Si tu utilises une carte ZUM BT-328 tu devras entrer une vitesse de 19200 bauds.
Si tu utilises le module Bluetooth de « Mi Primer Kit de Robótica » (mon premier kit de robotique), qui est un HC-05, tu devras entrer une vitesse de 38400 bauds et connecter le module de la manière suivante :
Attention ! Tu dois débrancher le câble orange de la broche 0 avant de charger le programme sur la carte contrôleur. Mais avant de faire fonctionner le programme, tu dois rebrancher le câble (comme sur le schéma ci-dessus).
Le programme à réaliser dans bitbloq est le suivant :
Comme tu peux le constater c’est très simple. Pour envoyer le message, il te suffit d’utiliser le bloc Bluetooth envoyer données et de lui adjoindre le bloc de texte contenant notre phrase. Il ne te reste plus qu’à charger le programme sur ta carte !
Partie 2 : RÉCEPTEUR – Utilisation du Monitor Serial de Arduino IDE
Nous allons configurer l’ordinateur pour qu’il fasse office de récepteur.
Si tu utilises la carte ZUM BT-328 n’oublie pas de placer l’interrupteur sur la position ON et les commutateurs sur les positions suivantes :


Alimente ta carte via le porte-piles, un adaptateur ou un câble USB.
>> Configuration Bluetooth sous Windows 7 :
Pour établir la connexion, cherche l’assistant de configuration Bluetooth à partir du menu Démarrer.
Selon l’ordinateur utilisé l’assistant pourra être légèrement différent. Voici néanmoins les étapes à suivre :
Une fois le Bluetooth configuré, clique sur connecter. Une fenêtre s’ouvre, te demandant de saisir le mot de passe (PIN) du Bluetooth (1234 par défaut).
>> Configuration Bluetooth sous Linux (Ubuntu) :
- Ouvre un Terminal (Alt + F2) et saisis gnome-terminal.
- Recherche de nouveaux appareils Bluetooth en entrant la commande suivante :
$ sudo hcitool scan
Scanning …
98:D3:31:B2:DB:09 bqZUM_BT328
- Connecte ton appareil au port ‘/dev/rfcomm0′ en entrant la commande suivante, utilisant l’adresse obtenue lors de l’étape précédente :
$ sudo rfcomm bind /dev/rfcomm0 98:D3:31:B2:DB:09
>> Configuration Bluetooth sous MacOX :
- Cherche ta carte et clique sur connecter. Si la connexion échoue et qu’un message d’erreur apparaît, « couple » l’appareil Bluetooth avec l’ordinateur. Pour cela, clique sur Options, entre le code 1234 et clique de nouveau sur connecter.
La connexion est établie ! Nous disposons désormais du numéro de port créé en fonction du système d’exploitation, par exemple : ‘COM46′, ‘/dev/rfcomm0′, ‘/dev/tty.bqZUM_BT320-SPPDev’…
Ouvre l’IDE de Arduino et sélectionne dans Outils la carte [ArduinoUNO ou Arduino BT w/ATmega328] et le port [par exemple : COM46].
Ouvre le Monitor Serial à partir de Outils>Monitor Serial ou en cliquant sur l’icône ci-dessous :
Sélectionne une vitesse de 19200 ou 38400 bauds selon la carte dont tu disposes. Tu verras que notre phrase apparaîtra toutes les deux secondes.
LIRE LE PORT SÉRIE-BLUETOOTH
Recevoir des données via Bluetooth :
Voici un exemple pour savoir comment recevoir des données par le port que nous avons ouvert. Le bloc de la section Communication ci-dessous a pour mission de regarder si des données sont arrivées via Bluetooth :
Si nous recevons des données par le port créé, elles seront conservés dans une variable locale appelée dato (donnée) que nous analyserons pour savoir si elle contient la lettre A (majuscule !). Si c’est le cas, la LED intégrée à la carte, à savoir la LED de la broche numérique 13, s’allumera (tu n’as donc pas besoin de connecter une LED à la carte). Dans le cas contraire, nous éteindrons la LED en question.
– Mais… pourquoi avoir écrit le nombre 65 ? Cher robonaute, aujourd’hui il n’existe pas dans bitbloq de bloc permettant de comparer des variables de texte de type char ; pour l’instant il ne peut s’agir que de texte de type String. Ne t’inquiète pas si tu trouves cela compliqué, il te suffit juste de savoir qu’ici nous utilisons des chiffres à la place des lettres.
La lettre « A » correspond au nombre 65 selon le code ASCII (consulte le tableau à la fin de ce post).
Charge ce programme sur ta carte et ouvre à nouveau le Monitor Serial. Tape un A majuscule et clique sur envoyer… La petite LED s’allume ! Que se passe-t-il si tu envoies autre chose ?
Maintenant que tu maîtrises la communication bitbloq-Bluetooth, sache que l’application RoboPad envoie les caractères S,U,D,R,L,C,M… (stop/stop, up/en haut, down/en bas, right/droite, left/gauche, claw/pince, manual/manuel) quand tu actionnes les boutons de contrôle des PrintBots. Voici le tableau du code ASCII si tu veux aller plus loin :
As-tu remarqué que les chiffres 0,1,2,3… peuvent également être envoyés sous forme de caractères et qu’ils ont leur correspondance décimale dans le code ASCII ? Ah, on peut en apprendre des choses en un jour ! Bientôt tu sauras déchiffrer le code de Matrix !