Mes projets en vidéo

ROBOT BASIQUE AVEC CHASSIS ZUMO DE POLOLU
                                            Robot 4 roues motrice avec capteur 

son programme 1.0

#include <Servo.h>                                  //includes the servo library

   
   
    int servopin = 8;
    int sensorpin = 0;
    int dist = 0;
    int leftdist = 0;
    int rightdist = 0;
    int object = 500;            //distance at which the robot should look for another route                        

    Servo myservo; // déclare une variable de type Servo appelée myservo
    Servo myservo1;
    Servo myservo2;
    Servo myservo3;

   
   
    Servo myservo5;

    void setup ()
    {

        myservo.attach(4); // associe le servomoteur à la broche 9
  myservo.writeMicroseconds(1410);  // positionne le servomoteur au milieu

 myservo1.attach(2); // associe le servomoteur à la broche 9
  myservo1.writeMicroseconds(1240);  // positionne le servomoteur au milieu

myservo2.attach(3); // associe le servomoteur à la broche 9
  myservo2.writeMicroseconds(1520);  // positionne le se
myservo3.attach(5); // associe le servomoteur à la broche 9
  myservo3.writeMicroseconds(1280);  // positionne le se


     
      myservo5.attach(servopin);
      myservo5.write(90);
      delay(700);
    }
    void loop()
    {
      dist = analogRead(sensorpin);              //reads the sensor

      if(dist < object) {                        //if distance is less than 550
      forward();                                  //then move forward
      }
      if(dist >= object) {              //if distance is greater than or equal to 550
        findroute();
      }
    }

    void forward() {                            // use combination which works for you
       myservo.attach(4); // associe le servomoteur à la broche 9
  myservo.writeMicroseconds(1300);  // positionne le servomoteur au milieu

 myservo1.attach(2); // associe le servomoteur à la broche 9
  myservo1.writeMicroseconds(1980);  // positionne le servomoteur au milieu

myservo2.attach(3); // associe le servomoteur à la broche 9
  myservo2.writeMicroseconds(1620);  // positionne le se
myservo3.attach(5); // associe le servomoteur à la broche 9
  myservo3.writeMicroseconds(1061);  // positionne le se

      return;
     }

    void findroute() {
      halt();                                            // stop
      backward();                                      //go backwards
      lookleft();                                      //go to subroutine lookleft
      lookright();                                  //go to subroutine lookright
                                        
      if ( leftdist < rightdist )
      {
        turnleft();
      }
     else
     {
      turnright ();
     }
    }

    void backward() {
       myservo.attach(4); // associe le servomoteur à la broche 9
  myservo.writeMicroseconds(1515);  // positionne le servomoteur au milieu

 myservo1.attach(2); // associe le servomoteur à la broche 9
  myservo1.writeMicroseconds(500);  // positionne le servomoteur au milieu

myservo2.attach(3); // associe le servomoteur à la broche 9
  myservo2.writeMicroseconds(1420);  // positionne le se
myservo3.attach(5); // associe le servomoteur à la broche 9
  myservo3.writeMicroseconds(1479);  // positionne le se

      delay(800);
      halt();
      return;
    }

    void halt () {
       myservo.attach(4); // associe le servomoteur à la broche 9
  myservo.writeMicroseconds(1410);  // positionne le servomoteur au milieu

 myservo1.attach(2); // associe le servomoteur à la broche 9
  myservo1.writeMicroseconds(1240);  // positionne le servomoteur au milieu

myservo2.attach(3); // associe le servomoteur à la broche 9
  myservo2.writeMicroseconds(1520);  // positionne le se
myservo3.attach(5); // associe le servomoteur à la broche 9
  myservo3.writeMicroseconds(1280);  // positionne le se

      delay(1500);                          //wait after stopping
      return;
    }

    void lookleft() {
      myservo5.write(140);
      delay(700);                                //wait for the servo to get there
      leftdist = analogRead(sensorpin);
      myservo5.write(90);
      delay(700);                                //wait for the servo to get there
      return;
    }

    void lookright () {
      myservo5.write(40);
      delay(700);                          //wait for the servo to get there
      rightdist = analogRead(sensorpin);
      myservo5.write(90);                                
      delay(700);                        //wait for the servo to get there
      return;
    }

    void turnleft () {
       myservo.attach(4); // associe le servomoteur à la broche 9
  myservo.writeMicroseconds(1100);  // positionne le servomoteur au milieu

 myservo1.attach(2); // associe le servomoteur à la broche 9
  myservo1.writeMicroseconds(500);  // positionne le servomoteur au milieu

myservo2.attach(3); // associe le servomoteur à la broche 9
  myservo2.writeMicroseconds(1420);  // positionne le se
myservo3.attach(5); // associe le servomoteur à la broche 9
  myservo3.writeMicroseconds(1061);                                                        // positionne le se

      delay(1000);                    // wait for the robot to make the turn
      halt();
      return;
    }

    void turnright () {
       myservo.attach(4); // associe le servomoteur à la broche 9
  myservo.writeMicroseconds(1515);  // positionne le servomoteur au milieu

 myservo1.attach(2); // associe le servomoteur à la broche 9
  myservo1.writeMicroseconds(1980);  // positionne le servomoteur au milieu

myservo2.attach(3); // associe le servomoteur à la broche 9
  myservo2.writeMicroseconds(1620);  // positionne le se
myservo3.attach(5); // associe le servomoteur à la broche 9
  myservo3.writeMicroseconds(1479);  // positionne le se

      delay(1000);                              // wait for the robot to make the turn
      halt();
      return;
    }

2 commentaires:

  1. Ce commentaire a été supprimé par un administrateur du blog.

    RépondreSupprimer
  2. Ce commentaire a été supprimé par un administrateur du blog.

    RépondreSupprimer