Aujourd’hui, nous allons allumer une LED grâce à une carte Arduino, un module BLE (Bluetooth Low Energy) et un téléphone Android.
Aujourd’hui, nous allons allumer une LED grâce à une carte Arduino, un module BLE (Bluetooth Low Energy) et un téléphone Android.
Matériel pour la réalisation :
Nous allons maintenant créer l’application Android avec App Inventor. Celle-ci nous permettra de contrôler la LED sur notre smartphone.
Il est possible d’accéder à AppInventor sur navigateur à cette adresse. Une fois celui-ci lancé, on commence un nouveau projet vide afin d’atterrir sur l’interface suivante :
L’écran est composé des parties suivantes :
Étape 1, On ajoute dans l’écran un premier HorizontalArrangement (présent dans Layout) dans lequel on ajoute 3 boutons (dans UserInterface).
Étape 2, On ajoute un second HorizontalArrangement dans lequel on placera un dernier bouton qui servira à allumer et éteindre la LED.
Étape 3, Finalement on ajoute une Clock (présent dans Sensors) et on ajoute l’extension BluetoothLE trouvable ici (importer le fichier BluetoothLE.aix).
À la fin de ces étapes, votre application devrait ressembler à quelquechose comme ça :
Afin d’éditer le code de l’application, on clique sur le bouton “Blocks” en haut à gauche de App Inventor.
Le code est composé de trois parties :
En Bleu, la partie connexion, assignant aux boutons prévus à cet effet leurs fonctions permettant de gérer la communication avec le module BLE.
En Vert, la partie qui actualise le voyant de connexion, le passant en vert si la connexion est correctement établie.
En Orange, la partie transmission, envoyant l’état du bouton à la carte Arduino. Chaque appui sur le bouton, passe l’état de la variable de 0 à 1 ou inversement et transmet l’information à la carte Arduino. On récupérera cette information dans le programme Arduino afin de gérer l’allumage de la LED.
Remarque : L’adresse du module BLE (ID), le « service UUID » et la « characteristic UUID » sont facilement trouvables avec des applications Android telles que LightBlue par exemple. Pour cela, lancez l’application, connectez vous au module BLE (nom par défaut HMSoft) puis appuyez sur le dernier élément de la liste.
Il reste maintenant à aller dans le menu “Build” dans le menu en haut de l’écran et de télécharger l’application en .apk afin de la transférer et de l’installer sur votre smartphone. Lors de l’installation, il est possible qu’il vous soit demandé d’aller dans les paramètres afin d’autoriser l’installation d’application depuis des sources inconnues.
Nous allons éditer un programme Arduino permettant de contrôler l’allumage de la LED à l’aide des données envoyées par l’application Android précédemment créée :
#include <SoftwareSerial.h> //Bibliothèque permettant la gestion du module BLE #define RxD 2 #define TxD 3 SoftwareSerial BLE(RxD,TxD); // Déclare le module BLE branché en 2 et 3 void setup() { Serial.begin(9600); pinMode(RxD, INPUT); pinMode(TxD, OUTPUT); setupBleConnection(); pinMode(8, OUTPUT); } void loop() { int LED; if(BLE.available()){//vérifie si des données ont été envoyées depuis le module BLE LED = BLE.read(); //Permet de lire les données reçues } if (LED == 1) {digitalWrite(8,HIGH);} // La LED est allumée quand on reçoit un 1 if (LED == 0) {digitalWrite(8,LOW);} // La LED est éteinte quand on reçoit un 0 } void setupBleConnection() // Fonction paramétrant le module BLE { BLE.begin(9600); // BLE.print("AT+CLEAR"); BLE.print("AT+ROLE1"); //Configure le module BLE en tant que maître BLE.print("AT+SAVE1"); }
Une fois le programme téléversé, lancez l’application sur votre smartphone et connectez vous sur le module BLE à l’aide du bouton prévu.
Une fois la connexion établie, le voyant vert s’allume.
Tout est prêt ! Maintenant vous contrôlez la LED avec votre smartphone !
Une fois son fonctionnement compris, le module BLE peut être utilisé dans beaucoup d’applications plus complexes.
Par exemple, reprenons un ancien article sur le bras robotique Joy-it.
Dans cet article, un bras robotique est contrôlé par une manette reliée par un fil.
Nous pouvons donc essayer de remplacer cette manette par notre smartphone en connectant notre module BLE.
On refait donc une application avec App Inventor selon le même principe sauf qu’ici nous modifions le design pour que celui-ci ressemble à une manette.
On modifie le programme Arduino du bras robotique en ajoutant le contrôle des différentes informations envoyées par les multiples boutons selon le même principe que pour allumer la LED.
Pour les personnes intéressées, vous pouvez télécharger les fichiers ici.
Quant à la connexion du module BLE, on utilise un câble grove comme celui-ci avec un côté femelle qu’on vient connecter sur la pin 8 pour le Rx(fil blanc) et sur la pin 9 pour le Tx(fil jaune) du shield gravity.
Note : Un conflit entre les bibliothèques « SoftwareSerial » et « Servo » nous oblige à utiliser les bibliothèques « ServoTimer2 » et « AltSoftSerial » facilement trouvables sur le net qui sont compatibles entre elles. Cependant, « AltSoftSerial » utilise les pins 8 et 9 pour la connexion de notre module BLE !
Et voilà, on est maintenant capable de contrôler le bras robotique avec notre smartphone !
Date de dernière modification 10 novembre 2020 16 h 01 min