LE MODULE GROVE BLUETOOTH Le module Bluetooth GROVE permet de créer une liaison sans fil entre 2 objets connectés. Il comporte 4 broches, VCC et GND pour l'alimentation du circuit ainsi que Rx et Tx pour la transmission d'information. On peut connecter ce module aux sorties du shield Bluetooth (De D2 à D8). Ce module est compatible avec le Bluetooth V2.0 + EDR (Enhanced Data Rate) 2 Mbps de débit modulaire, et est couplé avec un émetteur-récepteur radio de fréquence 2,4 Ghz en bande basse. MATÉRIELS UTILISÉS Le matériel utilisé est une carte Arduino UNO + un shield GROVE + un shield GROVE Bluetooth + D6 GESTION DE LA CONNEXION BLUETOOTH DU COTÉ ARDUINO (BLOCKLY@RDUINO) Coté arduino, on doit initialiser la connexion Bluetooth à l'aide du logiciel Blocky@arduino. Plusieurs possibilités en fonction de la carte arduino: Ici on connecte le module Bluetooth sur la broche D6 du GROVE. Il semble que la vitesse 9600 est son importance! - Méga: Sur la méga, on a la possibilité d'utiliser d'autres ports que les broches Rx0 et Tx0. En effet, il en existe 3 autres, Rx1/Tx1 à Rx3/Tx3; respectivement comme suit: Rx1, broche n 19 et Tx1, broche n 18 Rx2, broche n 17 et Tx2, broche n 16 - Rx3, broche n 15 et Tx3, broche n 14 Page 1/22
1.0 LE PUPITRE DE COMMANDE SUR LA TABLETTE, COMMENT ÇA MARCHE? Pour se connecter sur le module Bluetooth Lorsque je reçois 2, le texte D2= passe à D2=0 et en rouge Lorsque je reçois 102, le texte D2= passe à D2=1 et en vert. Ainsi de suite (voir protocole) Lorsque j'appuie sur A0, j'envoie le code 160, je demande de me renvoyer la valeur de la broche A0 qui s'affiche dans le cadre en dessous On reçoit des valeurs qui s'affichent dans les cadres bleus. Valeur du protocole Lorsque l'on appuie sur les boutons du pupitre. On bascule de 0 à 1, et le bouton passe au vert. Le pupitre envoie une commande sous forme d'un nombre. A vous ensuite de faire ce que vous voulez. On a quand même décidé d'un protocole. A voir par la suite. Ce bouton est très pratique en cas de Bug, car il en reste encore!!!! On réinitialise toutes les variables pour remettre à 0 la console. Ce sont les valeurs du protocole que l'on envoie. Valeur du protocole, c'est la valeur envoyée. Numéro de la broche Valeur de la broche Numéro de la broche Valeur de la broche C'est un pupitre manuel. Ici on peut envoyer sur une mega par exemple, différentes valeurs. Ex : Si Broche = 23 Ici, c'est un peu plus compliqué, et expliqué plus en détail plus loin. Des bugs résistent encore. Donc à 0 on envoie 23 À 1, on envoie 123 Un clic sur le bouton init. C'est le protocole 200 Page 2/2222
11 1.1 PUPITRE DE COMMANDE: LE MATÉRIEL UTILISÉ POUR ESSAYER L'APPLICATION, VOICI LE MATÉRIEL UTILISÉ. Matériel Remarques Connecté sur Carte Arduino UNO Environ 20 USB COM Module Grove Base Shield 103030000 Environ 10 Arduino Module Bluetooth Grove 113020008 Environ 20 D6 Module bouton Grove 111020000 Environ 2,2 D8 Led verte 3 ou 5 mm Grove 104030007 Environ 2,2 D3 Led violette 3 mm Grove 104020002 Environ 2,2 D4 Servomoteur Grove Environ 11 D2 Capteur de température Grove 101020015 Environ 3,3 A0 Capteur d'humidité et de T Grove Environ 6,5 A1 Module joystick Grove 101020028 Environ 6,5 A2 Page 3/22
2.0 COMMENT FONCTIONNE LE DIALOGUE? LE PROTOCOLE Pour faire le dialogue entre Android (tablette et smartphone) et notre maquette (Arduino ou autre) on va décider d'un protocole de communication grâce à des nombres. C'est un choix du groupe pour être transportable. Vous pouvez le modifier à votre souhait. Le protocole normal entre 2 et 159 Code envoyé par la tablette Broche de l'arduino remarques 2 Mettre la broche 2 à 0 102 Mettre la broche 2 à 1 3 Mettre la broche 3 à 0 103 Mettre la broche 3 à 1 4 Mettre la broche 4 à 0 104 Mettre la broche 4 à 1 5 Mettre la broche 5 à 0 105 Mettre la broche 5 à 1 6 Mettre la broche 6 à 0 106 Mettre la broche 6 à 1 7 Mettre la broche 7 à 0 107 Mettre la broche 7 à 1 8 Mettre la broche 8 à 0 108 Mettre la broche 8 à 1 Etc.. 55 Mettre la broche 55 à 0 155 Mettre la broche 55 à 1 Le protocole analogique de 0 à 199 Code envoyé par la tablette Broche de l'arduino remarques 160 Demande des informations de A0 161 Demande des informations de A1 162 Demande des informations de A2 163 Demande des informations de A3 164 etc 199 Page 4/22
2.1 COMMENT FONCTIONNE LE DIALOGUE? LE PROTOCOLE Afin de pouvoir échanger entre Android et Arduino, nous avons décidé d'un protocole de communication. LE PROTOCOLE NORMAL Exemple avec une LED sur la broche 4. J'APPUIE SUR LA TOUCHE D4 LA TABLETTE ENVOIE LE CODE 104 LE PROGRAMME DANS ARDUINO, ENREGISTRE L'INFORMATION ET EST PROGRAMMÉ POUR METTRE LA BROCHE 4 À 1 DONC ALLUME LA LED LE PROGRAMME DANS ARDUINO, RENVOIE LE CODE 104 À LA TABLETTE, ET DONC ALLUME LE BOUTON EN DESSOUS EN LE METTANT EN VERT, ET EN INSCRIVANT D4=1 LE PROTOCOLE ANALOGIQUE EXEMPLE, ON BRANCHE UN CAPTEUR DE TEMPÉRATURE SUR LA BROCHE A0 LORSQUE J'APPUIE SUR LA TOUCHE A0 DE LA TABLETTE, J'ENVOIE LE CODE 160. LE PROGRAMME DANS ARDUINO ENREGISTRE L'INFORMATION, PREND LA VALEUR DU CAPTEUR ET LA RENVOIE SUR LA TABLETTE ET L'INSCRIT EN DESSOUS, DANS A0= VALEUR DU CAPTEUR. Page 5/22
2.2 COMMENT FONCTIONNE LE DIALOGUE? LE PROTOCOLE 200 Il y a un dialogue qui nous manque, c'est celui d'envoyer des ordres à la carte Arduino, comme des valeurs pwm pour la puissance du moteur par exemple, il faut donc instituer un protocole de dialogue. On a donc mis en place un protocole appelé 200. Comment ça fonctionne? La tablette envoie le code 200. Les programmes basculent grâce à une variable en protocole 200. la carte arduino reçoit le code, elle renvoie le nombre 10 pour indiquer qu'elle a bien reçu le protocole. La tablette reçoit 10 et alors envoie le numéro de la broche à activer La carte arduino reçoit le code, elle renvoie le nombre 20 pour indiquer qu'elle a bien reçu le numéro de la broche à activer. La tablette reçoit 20 alors envoie la valeur de la broche à activer. La mise en place de ce protocole demande beaucoup de variable dans le programme. Des variables permettant de savoir dans quel mode on se trouve. Une variable étape qui permet de savoir à quelle étape on se trouve. J'envoie 200 Je reçois 10 J'envoie le numéro De la broche Je reçois 20 J'envoie la valeur à Attribuer à la broche 201 et 202 sont réservés pour envoyer des codes d'erreur ou de contrôle Page 6/22
3.0 EXPLICATION DU PROGRAMME. LE PROTOCOLE NORMAL Voici quelques éléments qui expliquent le programme sur app inventor, celui de la tablette. Quand j'appuie sur D2 Envoie broche = 2 Si ancienne valeur du bouton est fausse Alors j'envoie 102 sur bluetooth Je mets le bouton en vert Si ancienne valeur du bouton est vraie Alors J'envoie 2 sur bluetooth Je mets le bouton en rouge. Mettre ancienne valeur à nouvelle valeur. (Cette variable permet de basculer le bouton) Procédure recevoir D2 Si valeur reçue en bluetooth = 2 Alors mettre D2= 0 Mettre le bouton en rouge. Si valeur reçue en bluetooth = 102 Alors mettre D2=1 Mettre le bouton en vert. Page 7/22
3.1 EXPLICATION DU PROGRAMME SUR BLOCKLY ARDUINO. LE PROTOCOLE NORMAL Voici quelques éléments qui expliquent le programme sur BLOCKLY ARDUINO. Dans la partie initialisation, on déclare le module bluetooth Et les différentes variables nécessaires Si une donnée est reçue sur bluetooth Alors Si protocole normal est vraie Alors Si valeur reçue sur bluetooth = 102 Alors allumer le moteur Si valeur reçue sur bluetooth = 2 Alors éteindre le moteur Si valeur reçue sur bluetooth = 4 Alors éteindre la LED Si valeur reçue sur bluetooth = 104 Alors allumer la LED Protocole analogique. Si valeur reçue sur bluetooth = 160 Alors envoyer la valeur sur la broche A0 LED1_ON LA FONCTION OU PROCÉDURE Procédure LED1_ON Mettre la DEL sur la broche 4 à 1 Envoie_protocole = 104 Envoyer sur bluetooth à la valeur envoie protocole. Vider la mémoire du bluetooth Page 8/22
3.2 EXPLICATION DU PROGRAMME SUR APP INVENTOR. Il faut initialiser la partie BLUETOOTH. VOUS POUVEZ TOUJOURS METTRE CETTE COMMANDE. Le chronomètre est un bouton que l'on ajoute, pour faire une boucle toutes les Valeurs de millisecondes paramétrées lorsque l'on créé le bouton. Ici, on a créé 2 boutons un visible et l'autre invisible. Ensuite on bascule si notre Bluetooth est connecté ou pas! On déclare les différentes variables nécessaires Page 9/22
3.3 EXPLICATION DU PROGRAMME SUR APP INVENTOR. Répéter toutes les 500ms Si bluetooth est connecté Alors valeur recu = valeur bluetooth Si le protocole analogique = FAUX Alors appeler détection protocole. (cette procédure va pouvoir détecter si un protocole est activé en fonction de l'envoie du nombre) Si protocole normal et pas protocole analogique Alors Appeler les procédure pour savoir si j'ai reçu une information entre 2 et 8 ou 102 et 108 Si protocole 200 et etape = 1 Alors réaliser le protocole 200 Afficher les valeurs ( à l'écran) Si protocole analogie est vraie Alors Si valeur = 160 alors afficher la valeur reçue A0 Si valeur = 161 alors afficher valeur reçue A1 Page 10/22
4.0 EXPLICATION DU PROTOCOLE 200 (CÔTÉ ARDUINO) SUR BLOCKLY ARDUINO Si protocole 200 = vrai Alors je réalise la procédure lire_protocole_200 Si la valeur reçue = 200 et l'étape =0 Alors j'active le protocole 200 Je désactive le protocole normal Étape = 1 Procédure protocole 200 Si étape = 3 La valeur de la broche = valeur reçue Ici j'active un moteur avec la broche et la valeur reçue (pwm) dans le protocole 200 Je réinitialise les variables pour passer un mode normal et étape = 0 Si je ne reçois rien, j'envoie la valeur 202 (cette valeur est envoyée tant que je ne suis pas en étape 3) Si étape = 2 Broche = valeur reçue J'envoie 20 pour dire que j'ai bien reçu le numéro de la broche Étape = 3 Si je ne suis pas à l'étape 2 j'envoie 201 Si étape = 1 J'envoie 10, pour dire que j'ai bien reçu le protocole 200 Étape = 2 Page 11/22
4.1 EXPLICATION DU PROTOCOLE 200 (CÔTÉ APP INVENTOR, TABLETTE) SUR APP INVENTOR, SUR L'APPLICATION PUPITRE Procédure détection protocole Ici en fonction de la valeur reçue je vais activer le mode de protocole dans mon programme. Si = 200 alors protocole 200 Si entre 170 et 199 alors protocole analogique Si inférieur à 159 alors protocole normal De 160 à 169, ce sont les valeurs pour demander une information sur les capteurs analogiques. Procédure détection protocole Si protocole 200 Mettre protocole normal à faux Si valeur reçue = 200 et étape = 1 Alors étape = 2 Si reçu = 10 et étape = 2 Alors Valeur à envoyer = Numéro de la broche saisie Envoyer sur Bluetooth=valeur à envoyer Si reçu = 20 et étape = 3 Alors valeur broche = Valeur analogique (curseur) Envoyer sur Bluetooth= valeur broche Page 12/22 22
5.0 UTILISER L'APPLICATION POUR VOS MAQUETTES VOICI UN EXEMPLE D'APPLICATION DU PUPITRE DE COMMANDE. 1- Se connecter 2- Choisir le bon équipement appairé auparavant. 3- je suis connecté 4- J'appuie sur D4 5- Je passe en vert, et j'envoie 104, donc 4 à 1 Dans arduino, le programme allume la DEL quand on reçoit 104 6- Dans arduino, je renvoie la valeur 104, donc je bascule en vert en dessous du bouton D4. D4=1 Page 13/22
5.1 UTILISER L'APPLICATION POUR VOS MAQUETTES 7- J'appuie sur D4 8- J'envoie la valeur 4, et dans arduino la DEL s'éteint quand il reçoit 4 sur bluetooth 9- Le bouton D4 passe en rouge, mais D4=1 est toujours vert, car l'appli n'a toujours pas reçu la valeur 4 10- J'ai reçu 4 (R protocole) et le texte passe en rouge et D4=0 Page 14/22
5.2 UTILISER L'APPLICATION POUR VOS MAQUETTES 11 J'utilise la commande manuelle J'appuie sur N broche 12- Je saisie le numéro sur le clavier 13 J'ai mis 4 14 je peux décider de le mettre à 1 ou 0, la valeur changera automatiquement 15- Ici j'ai mis 4 à 1, la valeur envoyée sera 104 quand je clique sur le bouton envoyer 16- la DEL s'allume. Je reçois même l'info 104. Je peux mettre de 2 à 59 sur le clavier. Page 15/22
5.3 UTILISER L'APPLICATION POUR VOS MAQUETTES 17- J'appuie sur A2 J'envoie le nombre 162 18- Dans arduino, j'ai décidé de renvoyer la valeur X du joystick, lorsque je reçois le code 162 19 J'ai reçu la valeur 10 qui s'affiche dans A2=10 Page 16/22
5.4 UTILISER L'APPLICATION POUR VOS MAQUETTES, LE PROTOCOLE 200 19 Je choisis le numéro de la broche 20 entre0 et 99 21- On peut modifier la valeur avec le curseur. Attention, à chaque fois que vous modifiez, il envoie la valeur grâce au protocole 200 sur arduino. Cela peut être très utile pour diminuer la vitesse d'un moteur en direct. (Il y a quand même un temps de latence dû à la communication bluetooth) 22- sinon on clique sur valider. Page 17/22
6.0 INSTALLER L'APPLICATION SUR VOTRE TABLETTE. 1- TÉLÉCHARGER L'APPLICATION PUPITRE V2.0.APK (IL EST DANS LE DOSSIER ZIP) 2- BRANCHER VOTRE TABLETTE SUR L'ORDINATEUR VOTRE TABLETTE APPARAÎT DANS L'EXPLORATEUR J'AI UN DOSSIER DOWNLOAD JE COLLE MON FICHIER APK DANS LE DOSSIER AVANT D'INSTALLER IL FAUT MODIFIER VOS PARAMÈTRES DE SÉCURITÉ SUR LA TABLETTE. COCHER LA CASE SOURCES INCONNUES Page 18/22
ENSUITE ALLER DANS PARAMÈTRES, CLIQUER SUR L ICÔNE MES FICHIERS. NORMALEMENT VOTRE APPLICATION COPIÉE APPARAÎT DANS LES FICHIERS D'AUJOURD'HUI SI CE N'EST PAS LE CAS, ALLER DANS DOSSIERS PUIS DOWNLOAD ET CLIQUER SUR LE FICHIER PUPITRE CLIQUER SUR INSTALLER Page 19/22
L'INSTALLATION EST RÉUSSIE CLIQUER SUR OUVRIR VOTRE APPLICATION EST EN ROUTE. Page 20/22 22
7.0 INSTALLER LE PROGRAMME SUR ARDUINO 1- VOUS AVEZ DÉJÀ INSTALLÉ LE PROGRAMME ARDUINO. OUVRIR LE FICHIER ARDUINO_PUPITRE.INO. (ATTENTION, IL FAUT QUE VOUS SOYEZ CONNECTÉS DE LA MÊME FAÇON QUE DANS NOTRE PAGE, SINON IL FAUDRA MODIFIER LE PROGRAMME SUR BLOCKLY ARDUINO. VOTRE FICHIER S'OUVRE IL SUFFIT ENSUITE DE LE TÉLÉVERSER. SI VOUS AVEZ CONNECTÉ DE LA MÊME FAÇON QUE MOI, CELA VA FONCTIONNER. SINON, OUVRIR HTTP://WWW.TECHNOLOGIESCOLLEGE.FR/BLOCKLY@RDUINO/?LANG=FR CHARGER LE FICHIER BLOCKLY_ARDUINOV2_0.XML MODIFIER EN FONCTION DE VOTRE MONTAGE. CHARGER VOTRE FICHIER DANS ARDUINO. Page 21/22 22
BIBLIOGRAPHIE, RESSOURCES ARDUINO ET APP INVENTOR, PILOTER UNE LAMPE PAR F JONQUIERE SUR LE ÉDUSCOL STI HTTP://EDUSCOL.EDUCATION.FR/STI/RESSOURCES_TECHNIQUES/APP-INVENTOR-EXEMPLES-DIHM- ANDROID-POUR-CARTE-ARDUINO HTTP://EDUSCOL.EDUCATION.FR/STI/INDIVIDUS/JONQUIERE-FABIEN BLOCKLY ARDUINO HTTP://WWW.TECHNOLOGIESCOLLEGE.FR/BLOCKLY@RDUINO/?LANG=FR LA CHAINE YOU TUBE DE YANNICK GOURDIN AVEC PLEINS DE RESSOURCES. HTTPS://WWW.YOUTUBE.COM/CHANNEL/UCNR6Y7ZMUYXBEDFYLHDTNQW Page 22/22