Commander un robot Arduino par Bluetooth (exemple complet)


  Catégorie : Réalisation de cartes électroniques   Mise à jour le : 07/02/2020 00:00
  Ajouté par : Technologuepro   Lectures : 47366
  Commentaires : 0   [ Poster un commentaire ]   Note : Non évalué
  

On se propose dans cet article dans montage électronique de réaliser un robot à base de la carte Arduino commandé par application mobile Androïde via la liaison Bluetooth avec le module HC-06.

Les robots sont un sujet de d’actualité et futurisme pour les étudiants, les amateurs et les bricoleurs. Si vous êtes débutant, la construction d'un tel robot est probablement l'un des projets importants à faire après avoir appris les bases.
On va  implémenter ensemble un robot contrôlé par Bluetooth en utilisant Arduino et quelques autres composants et construire une voiture robotique simple qui peut être contrôlée à l'aide d'un téléphone Android (via une application) et via une communication Bluetooth.

l’application mobile Androïde RobotBLT:



Prérequis pour construire ce Robot contrôlé par Bluetooth

Outre la carte Arduino Uno, qui est le principal module de contrôle du projet, il existe deux autres modules importants que vous devez connaître pour mettre en œuvre le projet Robot contrôlé par Bluetooth. Il s'agit du module Bluetooth HC-06 et du module pilote de moteur L298N.

HC-06 Bluetooth Module



Le module Bluetooth HC-06 est chargé d'activer la communication Bluetooth entre la carte Arduino et le téléphone Android. Pour plus d'informations sur le module Bluetooth HC-06, reportez-vous au Datasheet du constructeur

Module L298N Motor Driver


Le module de commande de moteur L298N est chargé de fournir le courant d'entraînement nécessaire aux moteurs de la voiture robotique. Référez-vous à ce lien pour plus d'informations sur les ponts en H.

Schéma électronique du robot

Ce robot est équipé essentiellement de quatre roues  avec motoréducteur (moteur électrique DC + réducteur) qu'on trouve facilement sur le marché à un prix très raisonnable. Ces 4 moteurs sont commandés par un pont en H qui est dans notre cas le fameux Module L289.

Ce qui suit est le schéma de circuit du robot contrôlé par Bluetooth utilisant Arduino, L298N et HC-06. Veuillez télécharger les bibliothèques des composants dans ce schéma dans le lien suivant :
Proteus Library Manager (Bibliothèques de composants pour Proteus)



Composants requis
• Arduino UNO [Acheter ici]
• Module pilote de moteur L298N [Acheter ici]
• Module Bluetooth HC-05
• Châssis de robot
• 4 motoréducteurs 5V
• Fils de connexion
• Support de batterie
• Source de courant
• Téléphone Android
• Application de contrôleur Bluetooth

REMARQUE: j'ai utilisé le module pilote de moteur L298N pour entraîner les moteurs du robot. Vous pouvez utiliser celui-ci ou le module pilote de moteur L293D. Si vous utilisez L293D, vérifiez les connexions.

Conception du Robot :

Je n'entrerais pas dans les détails de la construction du robot car votre châssis de robot pourrait être différent du mien et vous pouvez facilement comprendre comment construire le robot à partir des pièces disponibles et une gestion des câbles possible pour rendre le robot plus attrayant.



Code

Le code Arduino pour le projet de robot contrôlé par Bluetooth est donné ci-dessous.

char t;
int ton;
int toff;
int led;
int son;
int pwm;
#define MGAV=8;
#define MGAR=9;
#define MDAV=11;
#define MDAR=10;
void setup() {
pinMode(8,OUTPUT);   //left motors forward
pinMode(9,OUTPUT);   //left motors reverse
pinMode(11,OUTPUT);   //right motors forward
pinMode(10,OUTPUT);   //right motors reverse
pinMode(12,OUTPUT);   //led
pinMode(13,OUTPUT);   //Led
pinMode(3,OUTPUT);   //Led
Serial.begin(9600);
}
void loop() {
if(Serial.available()){
  t = Serial.read();
  Serial.println(t);
}
if(t == 'F'){            //move forward(all motors rotate in forward direction)
  digitalWrite(8,HIGH);
  digitalWrite(11,HIGH);
}
else if(t == 'B'){      //move reverse (all motors rotate in reverse direction)
  digitalWrite(9,HIGH);
  digitalWrite(10,HIGH);
}
else if(t == 'L'){      //turn right (left side motors rotate in forward direction, right side motors doesn't rotate)
  digitalWrite(11,HIGH);
}
else if(t == 'R'){      //turn left (right side motors rotate in forward direction, left side motors doesn't rotate)
  digitalWrite(8,HIGH);
}
else if(t == 'U'){    //turn led on or off)
  digitalWrite(13,HIGH);
}
else if(t == 'u'){
  digitalWrite(13,LOW);
}
else if(t == 'W'){
  digitalWrite(12,HIGH);
}
else if(t == 'w'){
  digitalWrite(12,LOW);
}
else if(t == 'V'){
  son=1;
}
else if(t == 'v'){
  son=0;
}
else if(t == 'X'){
led=1;
}
else if(t == 'x'){
led=0; 
}
else if(t == 'P'){
t = Serial.read();
pwm=t; 
}
else if(t == 'S'){      //STOP (all motors stop)
  digitalWrite(8,LOW);
  digitalWrite (9,LOW);
  digitalWrite(11,LOW);
  digitalWrite(10,LOW);
}
if (son==1){tone(3,800,5);}
if (led==1){
if (ton<255){digitalWrite(13,HIGH);
             digitalWrite(12,HIGH);
             ton=ton+1;}
if (ton>=255){digitalWrite(13,LOW);
             digitalWrite(12,LOW);
              ton=ton+1;}
if (ton>=510){ton=0;}
delay(1);
}                         
}


Android App

L’application androïde est réalisée par le logiciel Windev 24 le principe est très simple, essentiellement deux procédures sont à mettre en œuvre
1)    La recherche des équipements Bluetooth  et la connexion sur le module HC-06
2)    L’envoie  des octets de commande lorsqu’un bouton est appuyé.


Recherche des équipements Bluetooth (code du bouton ON):
sChaineTmp est une chaîne
sListePériphs est une chaîne
SI BTEtat() = btActif ALORS
    Sablier(Vrai)
    // Liste les périphériques
    sListePériphs = BTListePériphérique()   
    IF sListePériphs <> "" ALORS
        POUR TOUTE CHAÎNE sChaineTmp DE sListePériphs SEPAREE PAR RC
            // Récupération des valeurs
            sIdentifiant est une chaîne = ExtraitChaîne(sChaineTmp,1, TAB)
            sAdresseMAC est une chaîne = ExtraitChaîne(sChaineTmp,2, TAB)
            sNom est une chaîne = ExtraitChaîne(sChaineTmp,3, TAB)
            SI sNom = "HC-06" OU sNom = "HC-05" ALORS
                SI SocketConnecteBluetooth("monRobot", "SerialPortServiceClass_UUID", sAdresseMAC) ALORS
                    Info("Connecté au robot")
                    RobotConnected=Vrai
                    BTN_Connexion..Visible=Faux
                    BTN_Annuler..Visible=Vrai
                   
                    Sablier(Faux)
                    SORTIR
                    SINON
                    Sablier(Faux)
                    Info("Échec création Socket "+ErreurInfo())                   
                FIN               
            FIN
            Sablier(Faux)
            Info("Aucun périphérique HC-05 ou HC-06  disponible.")
        FIN
    SINON
        Sablier(Faux)
        Info("Aucun périphérique HC-05 ou HC-06  disponible.")
    FIN
    Sablier(Faux)
SINON
    Info("Veuillez activer le Bluetooth ")
FIN

Envoie des ordres :
Bouton relaché :

SI RobotConnected = Vrai ALORS
    SocketEcrit("monRobot","S")
FIN

 Bouton appuyé (bouton marche avant )

SI RobotConnected = Vrai ALORS
    SocketEcrit("monRobot","F")
FIN

Le code Arduino donné ci-dessus est écrit pour se synchroniser avec les données configurées dans l'application Bluetooth Controller. Lorsqu'une touche est enfoncée, les données correspondantes sont transmises au module Bluetooth à partir du téléphone via la communication Bluetooth.
Dans le code Arduino, l'Arduino UNO reçoit ces données du module Bluetooth (selon la touche enfoncée) et effectue une opération de test simple, chaque cas étant associé aux instructions appropriées aux broches d'entrée du pilote de moteur.

Par exemple, si vous appuyez sur la touche «AVANT» sur le téléphone Android, «F» est transmis. La carte Arduino passe alors IN1 et IN3 comme à l’état HAUT et IN2 et IN4 comme à l’état BAS pour réaliser un mouvement vers l'avant. De même, les autres touches correspondent au réglage approprié des broches IN1 - IN4.

Téléchargement :

Schéma Proteus (ISIS)

Bibliothèque Arduino, L298 et HC-06 pour Proteus

Code source Arduino (.ino)

Application Android (APK)

Application Android sur Google Play

Code source de l’application Androïde (Windev 24)



  

   Lectures recommandées sur ce thème :

Téléchargements

EDUGRAF EDITION ETUDIANT V1.26 -  (28/01/2013)

Annuaire

Schemas et réalisations électroniques -  (08/08/2013)
Robot Blog -  (12/12/2013)
Robot Impact -  (12/12/2013)
Robopolis -  (06/12/2013)
Best of Robots -  (02/12/2013)

Tags

                                           


  Commentaires



Aucun commentaire dans la base de données
*Poster un commentaire :
Uniquement les membres peuvent poster des commentaires

Haut de page

© 2024 Technologue pro, cours électricité électronique informatique · © 2007 - 2024 Technologue pro - Ressources pédagogiques pour l'enseignement technologique en Tunisie
Usage dans un cadre strictement académiqueMontages electroniques simples, pour les amateurs et pro de l'électronique, offre de montage electronique et cours en ligne gratuit: programmateurs de PIC USB, chargeur pour batteries, insoleuse 3 tubes ultra violet pour circuits imprimés et carte développement microcontrôleur PIC

Licence - Sitemap - Qui somme nous ? - confidentialité- Tunisie Index
J'accepte
Ce site web utilise des cookies. Nous utilisons des cookies pour vous offrir la meilleure expérience sur notre site Web. Plus d'infos