bluea51
Bac STI2D

TP n°11 : Réseau sans fil Bluetooth 

Noms :

 
Centre d'intérêt : Communication entre systèmes
Classe : Terminale Sti2d Sin
Id programme : sin17, sin19, sin22, sin29, sin33, sin36, sin39  
Condition : En binôme, durée  2 heures.
Matériel :

- Carte dfrobot Roméo ( Arduino );
- shield BluetoothV3;
- tablette tactile;

Logiciel :

- IDE Flashdevelop pour As3

- IDE Arduino

 

I. Objectifs

- Etudier un réseau sans fil Bluetooth;
- Créer une application qui commande un robot mobile à l'aide d'une tablette.

II. Le module bluetoothV3

Pour réaliser votre application, vous utiliserez le module BluetoothV3 de DFRobot. 

 Source : http://www.dfrobot.com/wiki/images/thumb/8/89/TEL0026.jpg/300px-TEL0026.jpg

 

2.1. Etude documentaire

A partir des liens suivants répondre aux questions ci-dessous :

http://www.dfrobot.com/wiki/index.php?title=DF-BluetoothV3_Bluetooth_module_(SKU:TEL0026)

et

http://fr.wikipedia.org/wiki/Bluetooth

Quel est l'intérêt des réseaux bluetooth ?

Quelle est la classe du module BluetoothV3 ?

 

En déduire pour le module BluetoothV3 :  

La portée du signal en champ libre:
Le débit maximum :
La puissance d'émission du signal:
La bande de fréquences utilisée :
Le type de modulation :
La norme utilisée :

Calculer sa puissance électrique consommée pour une tension d'alimentation de 5V. 

Donner les 2 types de topologie pour le Bluetooth ( nom et schéma ):

 
 
 
Nom :  Nom :

2.2. Nouvelle technologie : BLE ou Bluetooth Low Energy (Classe 4)

Donner l'intérêt de cette nouvelle technologie :

III. Application avec le bluetooth

3.1. Cahier des charges

Un client souhaite une application mobile qui commande un robot mobile à l'aide d'une tablette en utilisant une liaison Bluetooth.

Le diagramme Sysml de cas d'utilisation est le suivant :

 Cas d'utilisation

Quelle topologie allez-vous réaliser pour cette application?

 

 

3.2. Eléments pour réaliser l'activité

Le diagramme de classe du programme est le suivant :

 

 Description des classes utilisées :

Nom de la classe Description de la classe
MajnPages Gestion des Pages de l'application.
ExtendsBluetooth Gestion du bluetooth 'connexion déconnexion, transfert et réception des données).
Main La classe principale.
ExtendsClass

Classe commune à toutes les pages de l'application. Elle sert à déclarer les attributs  communs ( variables ) à toutes les pages (largeur, hauteur, titre, singleton ...)  

Sommaire

Créer les pages de l'application.

Joystick

La page pour commander le robot arduino.

MonSingleton

Elle centralise les attributs (variables) et dispatche les événements de l'application ( clique bouton, changement de page, retour page, ...)

Le robot devra réagir aux requêtes suivantes :

  requète  
avancer <a> advance
arrêt <s> stop
gauche <l> left
droite <r> right
marche arrière <b> back off

Le diagramme de séquence de l'application est la suivante :

 

IV. Réalisation de l'IHM

4.1. Algorithme

A l'aide des éléments précédents, compléter l'algorithme pour que la tablette envoie les commandes ci-dessus.

 Algorithme
 Classe Joystick

~ Créer les objets ~

Créer l'objet croix

Créer l'objet flecheAvant

~ Pour afficher les commandes envoyées vers le robot ~
Créer l'objet label

Fonction Joystick()
Début

   ~ le titre de la barre du haut ~
   Renommer le titre de la barre du haut en Joystick

   ~ Place les objets sur la scéne ~
   Positionner et mettre flecheAvant dans le conteneur

   Positionner et mettre Croix dans le conteneur
 

   Positionner et mettre label dans le conteneur

   Positionner et mettre conteneur sur la scène


   ~ Créer des écouteurs d'évenements ~
   Ecouteur clique souris sur  flecheAvant qui appelle la procédure mouseClique
   Ecouteur clique souris sur  croix qui appelle la procédure mouseClique


Fin ~ Fin de la procédure Joystick ~
 

~ Gestion des événements ~
Procédure mouseClique(évènement) 
Début
   Cas Ou Objet Cliqué Vaut
       flecheAvant : transmettre '<a>' au bluetooth
                           labal.afficher(‘<a>')
      croix            : transmettre '<a>' au bluetooth
                           labal.afficher(‘<s>')
      autre : 
   Fin ~ Fin de choix multiples ~

Fin ~ Fin procédure mouseClique ~

Appeler le professeur pour faire valider l'algorithme.

4.2. Programmation de la classe Joystick

Lancer Flashdevelop et ouvrir le projet Bluetooth mobile. Compléter la classe Joystick.as pour répondre à l'algorithme.

Copier ci-dessous le code que vous avez réalisé.

 

 

V. Programmation du robot arduino

En vous aidant des 2 programmes ci-dessous, réalisez le programme pour commander le robot mobile à l'aide de la tablette.

Programme 1 : Commande la led 13 à l'aide de la tablette. 

si <a> -> allumer led 13
si <s> -> éteindre led 13

// la variable qui recupère les requêtes reçues

String command;

void setup() {
   // initialise le port série à 9600 bits par seconde:
   Serial.begin(9600);

   //initialise la borne 13

   pinMode(13, OUTPUT);

   //initialise la variablecommand

   command = "";
}

//boucle inifnie
void loop() {
   // Ecoute le port serie Rx:
   while(Serial.available()>0)
   {
      char c = (char)Serial.read();
      //Serial.println(c);

      if(c == '<')//Debut message
         {command = "";
         }
      else if(c != '>') //Fin message avec >
         {command += c;
         }
      else {
         //traite la commande reçue
         if(command=="a") digitalWrite(13,HIGH);
         if(command=="s") digitalWrite(13,LOW);
         //Serial.println(command);
      }

   }//fin boucle conditionnelle while

}//fin fonction loop

 

Programme 2 : Commande les moteurs du robot arduino

#include <MotorDC.h>

MotorDC moteur(255); //Créer une variable moteur (instance ou objet)

void setup()
{
}

void loop()
{
   //les commandes du robot:
   moteur.advance(); //Le robot avance 
   delay(1000);
   moteur.back_off(); //Le robot recule 
   delay(1000);
   moteur.turn_Left(); //Le robot tourne à gauche
   delay(1000);
   moteur.turn_Right(); //robot tourne à droite 
   delay(1000);
   moteur.stop(); //Le robot s'arrête.
   delay(1000);
   moteur.newSpeed(200);//change la vitesse du robot.

}

Lancer l'IDE Arduino et réaliser le programme pour que le robot réagisse aux requêtes de la tablette. 

Ecrire votre programme dans le bloc ci-dessous.

Tester votre programme et le faire valider par le professeur.

V. Conclusion

Faire une synthèse du TP

Affichages : 2785