1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

تعداد سنسورها و نقش آنها در کنترل ربات تعقيب کننده ي خط

شروع موضوع توسط Mr Perfect ‏27/7/15 در انجمن مهندسی مکانیک

  1. کاربر فوق حرفه ای

    تاریخ عضویت:
    ‏23/6/15
    ارسال ها:
    4,491
    تشکر شده:
    6,079
    امتیاز دستاورد:
    113
    جنسیت:
    مرد
    حرفه:
    Engineering Management
    تعداد سنسورها و نقش آنها در کنترل ربات تعقيب کننده ي خط
    شيوه هاي زيادي براي دنبال کردن يک خط توسط ربات وجود دارد که در تمامي آنها از تعدادي سنسور براي اين کار استفاده ميشود. در اين مقاله قصد داريم درباره ي تاثير تعداد سنسورها در توانايي ربات براي تعقيب خط بحث کنيم.

    استفاده از يک سنسور: (The Edge Finder)

    [​IMG]

    در اين حالت تنها يک سنسور وظيفه ي دنبال کردن خط را بر عهده دارد و عملا يک لبه از خط با تغيير مکان از سياه به سفيد توسط ربات درک ميشود. يک موتور وقتي فعال ميشود که خط ديده ميشود و موتور ديگر وقتي که خط توسط سنسور ديده نميشود فعال ميشود. اين روش تنها براي سرعت هاي بسيار کم قابل استفاده است و در سرعت هاي بالاتر کاربرد ندارد.واضح است در صورتي که ربات در لبه ي ديگر ربات قرار بگيرد در جهت مخالف حرکت خواهد کرد و يا اگر ربات خط را گم کند در يک مدار دايروي براي هميشه چرخش خواهد کرد. از اين نوع سنسور به ندرت همراه با ميکروکنترلرها استفاده ميشود. در حالت باينري براي سنسورها تنها دو صورت صفر يا يک را ميتوان در نظر گرفت.

    تنها حالت ها ي ممکن عبارتند از:

    0 - Off the line
    1 - Over the line

    استفاده از 2 سنسور : (The Line Avoider)

    [​IMG]

    استفاده از 2 سنسور شبيه به حالت يک سنسور ميباشد با اين تفاوت که هر سنسور به طور مجزا وظيفه ي کنترل يک موتور را دارد. سنسورها در دو طرف خط قرار ميگيرند و از وارد شدن به خط اجتناب ميکنند. ربات در اين حالت بهتر از حالت قبل کار ميکند اما با گم کردن خط دچار سرگرداني ميشود دليل اين اتفاق اين است که ربات نميتواند اختلاف بين در خط قرار گرفتن با بيرون خط بودن را درک کند. در اين حالت در صورتي که از ميکرو کنترلر استفاده شود ميتوان بعضي از اين مشکلات را از طريق نرم افزار برطرف کرد. در صورتيکه دو سنسور را به انداره اي نزديک هم قرار داده باشيم که هر دو روي خط وسط قرار گرفته باشند ميتوانيم به اين روش هم خط را دنبال کنيم که با خروج هر سنسور از خط موتور متصل به آن خاموش شود.


    حالت هاي ممکن براي اين حالت عبارتند از:


    00 - Straddling the line or lost the line
    01 - Found right side of line
    10 - Found left side of line
    11 - Not used unless sensors are placed less than the line's width apart

    استفاده از 3 سنسور : (The Line Seer)

    [​IMG]

    حال با اضافه کردن سنسور سوم به ربات آن را از وجود خط و همچنين لبه هاي خط آگاه ميکنيم. حالا ربات اين برتري را دارد که از موقعيت خط آگاهي پيدا کند براي مثال گم کردن خط را توسط سنسور وسط درک کند. سنسور سوم همچنين ميتواند در مسير هاي داراي خميدگي (انحناء) نقش بسيار زيادي را در کاهش سرعت براي بالا بردن دقت در عمل تعقيب خط و جلوگيري از گم کردن خط داشته باشد و سرعت را در مسيرهاي مستقيم چندين برابر کند به اين روش کنترل چند سرعته يا PWM گفته ميشود.

    استفاده ار سنسور سوم در طراحي ها رايج است خصوصا در ربات هايي که در آنها از ميکروکنترلر استفاده شده است.


    شرايط امکان پذير براي اين حالت عبارتند از:

    001 - Moving off the line to the left
    010 - Centered over the line
    011 - Slightly off the line to the left
    100 - Moving off the line to the right
    101 - Not used
    110 - Slightly off the line to the right
    111 -Not used ,but could be used in the advanced or maze solving contests




    استفاده از 5 سنسور: (The Line Dancer)

    ممکن است اين سوال مطرح شود که 3 سنسور براي کنترل کامل ربات کافي ميباشد در اينصورت دليل استفاده از 2 سنسور اضافه چيست؟




    صورت هاي ممکن براي اين حالت : (تنها حالتهاي مفيد نوشته شده)

    00000 - Lost line from overshoot or break in line
    00001 - Almost off the line, steer hard right and reduce speed
    00011 - Near the right edge of the line, steer right
    00010 - Right of the center of the line, steer right
    00110 - Slightly to the right of the center of the line, slight correction to the right
    00100 - Centered over line, increase speed for straight runs
    01100 - Slightly to the left of the center of the line, slight correction to the left
    01000 - Left of the center of the line, steer left
    11000 - Near the left edge of the line, steer left
    10000 - Almost off the line, steer hard left and reduce speed
    11111 - Line intersection or circle at end of maze


    دقت داشته باشيد که با در نظر گرفتن سنسورها به عنوان اعداد باينري به راحتي ميتوانيم تصميمات منطقي خود را به برنامه تبديل کنيد.


    در زير قسمتي از برنامه ي يک ربات تعقيب خط که در Bascom نوشته شده آورده شده است:




    توضيحات :

    Lineflag is a variable that contains a binary representation of the 5 sensors

    Servo(1) is the steering servo PWM channel

    Servo(2) is the drive motors PWM channel controlled by an ESC

    Overshoot is a flag that indicates if we have lost the line at a turn



    Bascom Basic Code Segment

    Select Case Lineflag

    Case &B00000 'No line
    'If the bot loses the line, make steering changes
    Servo(2) = Slow - Progspeed
    If Lastlineflag < 4 Then
    Overshoot = 1 'Overshot a righthand corner
    Elseif Lastlineflag > 4 Then
    Overshoot = 1 'Overshot a left hand corner
    End If

    Case &B00100 'Line under center sensor
    Overshoot = 0
    Servo(1) = Center
    Servo(2) = Mediumfast - Progspeed

    Case &B00110
    Overshoot = 0
    Servo(1) = Smallright
    Servo(2) = Mediumfast - Progspeed

    Case &B00010
    Overshoot = 0 'Line under midright sensor
    Servo(1) = Mediumright
    Servo(2) = Mediumfast - Progspeed

    Case &B00011 'Line between midright and right sensor
    If Overshoot = 0 Then
    Servo(1) = Largeright
    Servo(2) = Medium - Progspeed
    Else
    Servo(1) = Mediumright
    Servo(2) = Medium - Progspeed
    End If

    Case &B00001 'Line under right sensor
    If Overshoot = 0 Then
    Servo(1) = Hardright
    Servo(2) = Mediumslow - Progspeed
    Else
    Servo(1) = Largeright
    Servo(2) = Mediumslow - Progspeed
    End If

    Case &B01100 'Line between center and midleft sensor
    Overshoot = 0
    Servo(1) = Smallleft
    Servo(2) = Mediumfast - Progspeed

    Case &B01000 'Line under midleft sensor
    Overshoot = 0
    Servo(1) = Mediumleft
    Servo(2) = Mediumfast - Progspeed

    Case &B11000 'Line between midleft and left sensor
    If Overshoot = 0 Then
    Servo(1) = Largeleft
    Servo(2) = Medium - Progspeed
    Else
    Servo(1) = Center
    Servo(2) = Medium - Progspeed
    End If

    Case &B10000 'Line under left sensor
    If Overshoot = 0 Then
    Servo(1) = Hardleft
    Servo(2) = Mediumslow - Progspeed
    Else
    Servo(1) = Largeleft
    Servo(2) = Mediumslow - Progspeed
    End If

    End Select

    بنابراين ميبينيم که 5 سنسور درجه ي کنترل بهتري را براي ربات فراهم ميکند که اين اجازه را به ما ميدهد تا سرعت ربات خود را افزايش دهيم تا بتوانيم زماني را که صرف هدايت ربات در پيچ ها شد جبران کنيم.



    نتيجه:

    تعداد سنسورهاي استفاده شده در ربات به نظر شما بستگي دارد. غالبا ربات هاي تعقيب خط سريع از دو سنسور استفاده ميکنند و تعداد سنسورهاي بيشتر به قدرت کنترل بهتر ربات کمک ميکند و البته استفاده از يک ميکروکنترلر ميتواند در بالا بردن قابليت ها و کيفيت کار بسيار موثر باشد همواره از روشي که پاسخگوي نيازهاي شما و هماهنگ با سطح مهارت شما باشد استفاده کنيد.

    منبع:انجمن مهندسی مکانیک