Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arduino : Robot Controllé par vocal via Bluetooth

Sujet résolu
    14 mai 2019 à 4:22:25

    Bonsoir,

    Bon j'ai suivi cette vidéo :

    https://www.youtube.com/watch?v=QYa02BYWD14&t=382s

    ça consiste en un véhicule qu'on contrôle par vocal, on se connecte avec bluetooth au module HC-05 via un Smartphone (une application) ensuite par exemple quand on dit : "avancer" le véhicule avance.

    voici le programme : 

    //viral science
    //voice controlled car
    
    #include <AFMotor.h> 
    #include <Servo.h>   
    String voice;
    
    AF_DCMotor motor3 (3, MOTOR34_1KHZ); 
    AF_DCMotor motor4 (4, MOTOR34_1KHZ); 
    Servo myServo; 
    
    void setup()
    {
      Serial.begin(9600); 
      myServo.attach(10); 
      myServo.write(130);  
    
    }
    
    void loop() 
    {
      while (Serial.available()){ 
         delay(10); 
        char c = Serial.read(); 
        if (c == '#') {break;} 
        voice += c; 
      }
      if (voice.length() > 0){
        if(voice == "*avancer"){
          forward_car();
          }
        else if(voice == "*reculer"){
          back_car();
          }
        else if(voice == "*droite") {
          right_car();
        }
        else if(voice == "*gauche") {
          left_car();
        }
        else if(voice == "*stop") {
          stop_car();
        }
        
      voice=""; 
      }
    }
    
    void forward_car()
    {
      motor3.run(FORWARD);
      motor3.setSpeed(700);
      motor4.run(FORWARD);
      motor4.setSpeed(700);
      delay(2000);
      motor3.run(RELEASE);
      motor4.run(RELEASE);
    }
      
    void back_car()
    {
      motor3.run(BACKWARD);
      motor3.setSpeed(700);
      motor4.run(BACKWARD);
      motor4.setSpeed(700);
      delay(2000);
      motor3.run(RELEASE);
      motor4.run(RELEASE);
    }
      
    void right_car()
    {
      myServo.write(80);
      delay(1000);
      myServo.write(130);
      delay(1000);
      motor3.run(FORWARD);
      motor3.setSpeed(190);
      motor4.run(BACKWARD);
      motor4.setSpeed(190);
      delay(1000);
      motor3.run(RELEASE);
      motor4.run(RELEASE);
    }
      
    void left_car()
    {
      myServo.write(170);
      delay(1000);
      myServo.write(130);
      delay(1000);
      motor3.run(BACKWARD);
      motor3.setSpeed(190);
      motor4.run(FORWARD);
      motor4.setSpeed(190);
      delay(1000);
      motor3.run(RELEASE);
      motor4.run(RELEASE);
    }
    
    void stop_car ()
    {
      motor3.run(RELEASE);
      motor4.run(RELEASE);
    }
    

    je l'ai essayé et ça a marché une ou deux fois, après ça ne marche plus alors que je n'ai rien modifié, je me connecte normalement au module bluetooth, mais quand je dis par exemple "avancer" il ne se passe rien.

    J'ai fais un autre programme pour essayer si'il n'y a pas un problème avec les moteurs ou le moteur shield L293D, et bah ça marche sans aucun problème, je ne comprends vraiment pas où est le problème.

    Ps : pour la source externe j'utilise un Transfo 12v, 2A.

    J'espère que quelqu'un pourra m'aider car je galère vraiment.

    • Partager sur Facebook
    • Partager sur Twitter
      18 mai 2019 à 18:30:52

      Bonjour,

      si la commande des moteurs fonctionne correctement, tout laisse à penser alors que c'est la réception de la commande qui a un problème, il faudrait pouvoir visualiser ce que reçoit l'Arduino pour savoir ce qu'il se passe.

      • Partager sur Facebook
      • Partager sur Twitter
        20 mai 2019 à 4:16:29

        Le problème était dans le module bluetooth, j'en changé un autre ça a marché, mais je ne sais pas quel est le problème exact qu'il y a avec l'ancien module bluetooth.
        • Partager sur Facebook
        • Partager sur Twitter

        Arduino : Robot Controllé par vocal via Bluetooth

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown