نمایش نتایج 1 تا 2 از 2

نام تاپیک: کد روبات تعقیب گر جسم

  1. #1

    کد روبات تعقیب گر جسم

    با استفاده از این کد شما میتوانید روباتی بسازید که به طرف جسم در حال حرکت رفته و یا جسمی را پیدا کرده و به سمت او حرکت میکند. در روبات شما باید دو سنسور اینفرارد قرار گیرد. این دو سنسور نباید هم جهت باشند و یکی به سمت شمال شرقی باشد و یکی به سمت شمال غربی.

    با وارد کرد این کد، 5 حالت وجود خواهد داشت :

    1. اگر هردو سنسور جسمی را شناسایی کردند و این جسم بین 5 تا 15 سانتی متر با سنسور فاصله داشت، این جسم در محدوده ی سنسور میباشد و در صورتی که روبات در حال حرکت باشد از حرکت می ایستد و دوباره چک میکند.
    2. اگر هردو سنسور جسمی را شناسایی کردند و این جسم کمتر از 5 سانتی متر با سنسور فاصله داشت، این جسم به روبات نزدیک هست و روبات برای جلوگیری از برخورد با جسم، به عقب حرکت میکند.
    3. اگر سنسور سمت چپ، جسمی را شناسایی کند اما سنسور سمت راست شناسایی نکند، روبات به سمت چپ میچرخد و سپس به جلو حرکت میکند.
    4. اگر سنسور سمت راست، جسمی را شناسایی کند اما سنسور سمت چپ شناسایی نکند، روبات به سمت راست میچرخد و سپس به جلو حرکت میکند.
    5. اگر هیچ کدام از سنسور ها جسمی را شناسایی نکردند، برای جستجو به چرخش ادامه میدهد.

    #define pin A1  // distance sensor to analog 1

    int E1 = 5;
    //M1 Speed Control
    int E2 = 6;
    //M2 Speed Control
    int M1 = 4;
    //M1 Direction Control
    int M2 = 7;
    //M1 Direction Control
    void stop(void)
    // stop
    {


    digitalWrite(E1,0);

    digitalWrite(M1,LOW);

    digitalWrite(E2,0);

    digitalWrite(M2,LOW);

    }

    void advance(char a,char b)
    //forward
    {
    analogWrite (E1,a);
    //PWM Speed Control


    digitalWrite(M1,LOW);

    analogWrite (E2,b);

    digitalWrite(M2,LOW);


    }

    void back_off (char a,char b)
    //backward


    {

    analogWrite (E1,a);


    digitalWrite(M1,HIGH);

    analogWrite (E2,b);

    digitalWrite(M2,HIGH);


    }


    void turn_L (char a,char b)
    //left


    {
    analogWrite (E1,a);


    digitalWrite(M1,LOW);

    analogWrite (E2,b);

    digitalWrite(M2,HIGH);


    }
    void turn_R (char a,char b)
    //right
    {


    analogWrite (E1,a);


    digitalWrite(M1,HIGH);

    analogWrite (E2,b);

    digitalWrite(M2,LOW);


    }


    void setup() {


    // put your setup code here, to run once:
    int i;
    for(i=4;i<=7;i++)


    pinMode(i, OUTPUT);

    pinMode(8,INPUT);


    pinMode(9,INPUT);


    pinMode (pin,INPUT);


    Serial.begin(9600);


    }


    int left=0;


    int right=0;




    void loop() {
    // put your main code here, to run repeatedly:
    uint16_t value = analogRead (pin);
    int x= get_gp2d120x (value);

    left=digitalRead(8);


    right=digitalRead(9);


    Serial.println(x);


    if(!left && !right && x>15)


    {
    advance(100,100);


    }
    else if((!left && !right&& x>8 && x<15)||(left &&right))


    {


    stop();


    }


    else if(!left && !right&& x<8)


    {


    back_off(100,100);


    }
    else if(!left && right)


    {
    turn_L(100,100);


    }
    else if(left && !right)


    {
    turn_R(100,100);


    }


    }
    double get_gp2d120x (uint16_t value)
    {
    if (value < 16)
    value = 16;


    return 2076.0 / (value - 11.0);
    }




  2. دوشنبه 11 اسفند 1393, 11:20 صبح

    دلیل
    برای تشکر فقط از دکمه تشکر کردن استفاده کنید

  3. #2

    نقل قول: کد روبات تعقیب گر جسم

    ممنونم عالی بود

تاپیک های مشابه

  1. روبات جستجوگر
    نوشته شده توسط zrahimic در بخش C#‎‎
    پاسخ: 3
    آخرین پست: یک شنبه 06 اسفند 1385, 14:21 عصر
  2. YAL12 - کامپوننت ساخت روبات یاهو
    نوشته شده توسط فرهاد شفق در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 4
    آخرین پست: شنبه 15 مهر 1385, 19:07 عصر
  3. مشکل در نوشتن تعقیب کننده لینک(crawler)
    نوشته شده توسط amirhosein در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: دوشنبه 06 شهریور 1385, 10:45 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •