Projet "robot car" en Arduino / étape 2 : programmation des modules

Accueil Forums Forum Robotique Projet "robot car" en Arduino / étape 2 : programmation des modules

2 sujets de 1 à 2 (sur un total de 2)
  • Auteur
    Messages
  • #8161
    xavadam
    Maître des clés

    Avant de se lancer dans « l’intelligence du robot car« , je poste ici un résumé rapide de la programmation unitaire des différents modules (capteur de distance, servoMoteur, Moteurs des 2 roues…).

    IDE arduino

    Programme 1 : Hello world !

    Pour valider l’upload du programme à travers l’IDE, notre premier programme sera le mythique « hello world ». L’affichage est « poussée » vers la console via serie9600 bps.

    
    void setup() {
      Serial.begin(9600);      // ouvre le port serie 9600 bps:    
    }
    void loop() {  
      Serial.print("Hello world !!");  
    }
    

    Programme 2 : Module capteur de distance

    Un premier module assez simple à programmer. 2 PINs à configurer. 1 pour l’envoie d’un echo et un 2eme pour écouter le retour.

    
    const byte PIN_TRIGGER = 5; 
    const byte PIN_ECHO = 4;   
    
    void setup() {
      Serial.begin(9600);
      /* Initialisation du capteur*/
      pinMode(PIN_TRIGGER, OUTPUT);
      pinMode(PIN_ECHO, INPUT);
    }
    
    void loop() {  
     /* 1. Lance une mesure de distance */
      digitalWrite(PIN_TRIGGER, HIGH);
      delayMicroseconds(10);
      digitalWrite(PIN_TRIGGER, LOW);
      
      /* 2. Mesure le temps entre l'envoi */
      long measure = pulseIn(PIN_ECHO, HIGH);
       
      /* 3. Calcul la distance */
      float distance = measure / 58;
       
      /* résultat  */
      Serial.print("Distance de retour : ");
      Serial.print(distance);
    
      
    }
    

    Programmation 3 : Moteurs du Robot.

    La connexion est simple via le module L298N. Seulement 6 Pins sur l’arduino permettent de commander les 2 moteurs.
    La fonction digitalWrite(pin,[LOW|HIGH]); permet d’arrêter un moteur, le faire avancer ou reculer.

    
    // motor one
    int enA = 10;
    int PIN_1 = 9;
    int PIN_2 = 8;
    // motor two
    int enB = 5;
    int PIN_3 = 7;
    int PIN_4 = 6;
    
    void setup()
    {
      // initialisation des pins du controle Moteur
      pinMode(enA, OUTPUT);
      pinMode(enB, OUTPUT);
      pinMode(PIN_1, OUTPUT);
      pinMode(PIN_2, OUTPUT);
      pinMode(PIN_3, OUTPUT);
      pinMode(PIN_4, OUTPUT);
    }
    
    void loop()
    {
      // démarre les 2 moteurs
      digitalWrite(PIN_1, HIGH);
      digitalWrite(PIN_2, LOW);
      digitalWrite(PIN_3, HIGH);
      digitalWrite(PIN_4, LOW);
      delay(2000);  // avance pendant 2 sec.
    
      // stop le moteur 1 pour faire pivoter le robot
      digitalWrite(PIN_1, HIGH);
      digitalWrite(PIN_2, LOW);
      delay(500); // tourne pendant 500ms.
    
      // arret du robot
      digitalWrite(PIN_1, LOW);
      digitalWrite(PIN_2, LOW);
      digitalWrite(PIN_3, LOW);
      digitalWrite(PIN_4, LOW);
      delay(1000); // arrêt pendant 1sec.
    }
    

    //Code Extrait de maxi-pratique.com

    • Ce sujet a été modifié le il y a 6 années et 10 mois par xavadam.
    • Ce sujet a été modifié le il y a 6 années et 10 mois par xavadam.
    • Ce sujet a été modifié le il y a 6 années et 10 mois par xavadam.
    • Ce sujet a été modifié le il y a 6 années et 10 mois par xavadam.
    • Ce sujet a été modifié le il y a 6 années et 10 mois par xavadam.
    #8167
    xavadam
    Maître des clés

    Programme 4 : Module de détection de ligne

    Un capteur TCRT5000 IR très simple à programmer …

    #define pinLigne1 10
    void setup() {
    Serial.begin(9600);
    }
    void loop() {
    int val=digitalRead(pinLigne1);
    Serial.print("Présence de la ligne noir:"); Serial.println(val);
    }

2 sujets de 1 à 2 (sur un total de 2)
  • Vous devez être connecté pour répondre à ce sujet.