New Project

CONNECT

Arduino Obstacle Robot

  • Page Views 1023
  • Spread the love
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  

    ‘Make your own robot’ project we are going to transform this part of the remote control car moving barrier crash autonomous robot.The car will be placing our circuit will make its circuit with Arduino removed.We will place the car in front of the ultrasonic sensor and servo motors under the sensor.In this way, the robot scans the environment to hit the object.

    The components are used:

    • Arduino Uno
    • Remote control car
    • Engine driver card
    • HC-SR04 ultrasonic distance sensor

    Electronic circuit diagram:

    Fritzing circuit diagram file >>Arduino obstacle robot

    Software Part:

    For Toy Car Software

    // Yazılım Geliştirme By Robimek - 2015
    #include <Servo.h>// servo motor kütüphanesi
    #include <NewPing.h>
    //motor pinleri
    #define OnMotor_sol 9
    #define OnMotor_sag 10
    #define ArkaMotor_ileri 11
    #define ArkaMotor_Geri 12
    //sensör pinleri
    #define USTrigger 6
    #define USEcho 7
    #define Maksimum_uzaklik 100
    Servo servo; //servo motor tanımlama
    NewPing sonar(USTrigger, USEcho, Maksimum_uzaklik);//ultrasonik sensör tanımlama
    //kullanılacak eleman tanımı
    unsigned int uzaklik;
    unsigned int on_uzaklik;
    unsigned int sol_uzaklik;
    unsigned int sag_uzaklik;
    unsigned int zaman;
    // program ilk çalıştığında sadece bir kez çalışacak programlar
    void setup()
    {
    //motor çıkışları
    pinMode(OnMotor_sol, OUTPUT);
    pinMode(OnMotor_sag, OUTPUT);
    pinMode(ArkaMotor_ileri, OUTPUT);
    pinMode(ArkaMotor_Geri, OUTPUT);
    servo.attach(4); //servo pin tanımı
    }
    // sonsuz döngü
    void loop()
    {
    delay(500);
    servo.write(90);
    sensor_olcum();
    on_uzaklik = uzaklik;
    if(on_uzaklik > 35 || on_uzaklik == 0)
    {
    ileri();
    }
    else
    {
    dur();
    servo.write(180);
    delay(500);
    sensor_olcum();
    sol_uzaklik = uzaklik;
    servo.write(0);
    delay(500);
    sensor_olcum();
    sag_uzaklik = uzaklik;
    servo.write(90);
    delay(500);
    if(sag_uzaklik < sol_uzaklik)
    {
    sag_geri();
    delay(500);
    sol_ileri();
    delay(500);
    ileri();
    }
    else if(sol_uzaklik < sag_uzaklik)
    {
    sol_geri();
    delay(500);
    sag_ileri();
    delay(500);
    ileri();
    }
    else
    {
    geri();
    delay(500);
    }
    }
    }
     
    // robotun yön komutları
    void ileri()
    {
    digitalWrite(OnMotor_sag, LOW);
    digitalWrite(OnMotor_sol, LOW);
    digitalWrite(ArkaMotor_Geri, LOW);
    digitalWrite(ArkaMotor_ileri, HIGH);
    }
    void geri()
    {
    digitalWrite(OnMotor_sag, LOW);
    digitalWrite(OnMotor_sol, LOW);
    digitalWrite(ArkaMotor_Geri, HIGH);
    digitalWrite(ArkaMotor_ileri, LOW);
    }
    void sol_ileri()
    {
    digitalWrite(OnMotor_sag, LOW);
    digitalWrite(OnMotor_sol, HIGH);
    digitalWrite(ArkaMotor_Geri, LOW);
    digitalWrite(ArkaMotor_ileri, HIGH);
    }
    void sol_geri()
    {
    digitalWrite(OnMotor_sag, LOW);
    digitalWrite(OnMotor_sol, HIGH);
    digitalWrite(ArkaMotor_Geri, HIGH);
    digitalWrite(ArkaMotor_ileri, LOW);
    }
     
    void sag_ileri()
    {
    digitalWrite(OnMotor_sol, LOW);
    digitalWrite(OnMotor_sag, HIGH);
    digitalWrite(ArkaMotor_ileri, HIGH);
    digitalWrite(ArkaMotor_Geri, LOW);
    }
    void sag_geri()
    {
    digitalWrite(OnMotor_sol, LOW);
    digitalWrite(OnMotor_sag, HIGH);
    digitalWrite(ArkaMotor_ileri, LOW);
    digitalWrite(ArkaMotor_Geri, HIGH);
    }
     
    void dur()
    {
    digitalWrite(OnMotor_sag, LOW);
    digitalWrite(OnMotor_sol, LOW);
    digitalWrite(ArkaMotor_ileri, LOW);
    digitalWrite(ArkaMotor_Geri, LOW);
    }
    // sensörün mesafe ölçümü
    void sensor_olcum()
    {
    delay(50);
    zaman = sonar.ping();
    uzaklik = zaman / US_ROUNDTRIP_CM;
    }

    For Robot Kits Software

    // // Software development By Robimek - 2015
    #include <Servo.h>
    #include <NewPing.h>
    //motor pinleri
    #define SolMotorileri 9
    #define SolMotorGeri 10
    #define SagMotorileri 11
    #define SagMotorGeri 12
    //sensör pinleri
    #define USTrigger 6
    #define USEcho 7
    #define Maksimum_uzaklik 100
    Servo servo;
    NewPing sonar(USTrigger, USEcho, Maksimum_uzaklik);
    //kullanılacak eleman tanımı
    unsigned int uzaklik;
    unsigned int on_uzaklik;
    unsigned int sol_uzaklik;
    unsigned int sag_uzaklik;
    unsigned int zaman;
    
    void setup()
    {
    //motor çıkışları
    pinMode(SolMotorileri, OUTPUT);
    pinMode(SolMotorGeri, OUTPUT);
    pinMode(SagMotorileri, OUTPUT);
    pinMode(SagMotorGeri, OUTPUT);
    servo.attach(4); //servo pin tanımı
    }
    
    void loop()
    {
    delay(500);
    servo.write(90);
    sensor_olcum();
    on_uzaklik = uzaklik;
    if(on_uzaklik > 35 || on_uzaklik == 0)
    {
    ileri();
    }
    else
    {
    dur();
    servo.write(180);
    delay(500);
    sensor_olcum();
    sol_uzaklik = uzaklik;
    servo.write(0);
    delay(500);
    sensor_olcum();
    sag_uzaklik = uzaklik;
    servo.write(90);
    delay(500);
    if(sag_uzaklik < sol_uzaklik)
    {
    sol();
    delay(500);
    ileri();
    }
    else if(sol_uzaklik < sag_uzaklik)
    {
    sag();
    delay(500);
    ileri();
    }
    else
    {
    geri();
    }
    }
    }
    
    
    void ileri()
    {
    digitalWrite(SolMotorGeri, LOW);
    digitalWrite(SolMotorileri, HIGH);
    digitalWrite(SagMotorGeri, LOW);
    digitalWrite(SagMotorileri, HIGH);
    }
    
    void geri()
    {
    digitalWrite(SolMotorileri, LOW);
    digitalWrite(SolMotorGeri, HIGH);
    digitalWrite(SagMotorileri, LOW);
    digitalWrite(SagMotorGeri, HIGH);
    }
    
    void sol()
    {
    digitalWrite(SolMotorileri, LOW);
    digitalWrite(SolMotorGeri, HIGH);
    digitalWrite(SagMotorGeri, LOW);
    digitalWrite(SagMotorileri, HIGH);
    
    }
    
    void sag()
    {
    digitalWrite(SolMotorGeri, LOW);
    digitalWrite(SolMotorileri, HIGH);
    digitalWrite(SagMotorileri, LOW);
    digitalWrite(SagMotorGeri, HIGH);
    }
    
    void dur()
    {
    digitalWrite(SolMotorGeri, LOW);
    digitalWrite(SolMotorileri, LOW);
    digitalWrite(SagMotorileri, LOW);
    digitalWrite(SagMotorGeri, LOW);
    }
    // sensörün mesafe ölçümü
    void sensor_olcum()
    {
    delay(50);
    zaman = sonar.ping();
    uzaklik = zaman / US_ROUNDTRIP_CM;
    }

     

    By installing the software we are making the necessary connections.You can change the distance from the obstacle.According to the algorithm can improve your robot.

    ‘Make your own robots’ autonomous movement hit obstacles in our projects that we have completed this part of our robot.
    To discuss the next project …

    Share

    What did they say ?

    1 Comment - "Arduino Obstacle Robot"

    avatar
    Sort:   The Newests | Ancients | Likes
    wpDiscuz

    BE A FACEBOOK FAN

    Instagram