توجه :
 
 چنانچه مفاهیم یا عبارت ها و اصطلاحات به کار رفته در این صفحه را متوجه نمی شوید، می توانید مطالعه خود را از اولین جلسه آموزشی رباتیک شروع نمایید. بدین منظور روی لینک زیر کلیک فرمایید:
 
 
همچنین چنانچه بخشی از مطالب را قبلا خوانده اید، برای مشاهده فهرست موضوعات جلسات آموزشی رباتیک، لطفا روی لینک زیر کلیک فرمایید:
 
 
در این بخش از سایت رشد، مطالب آموزشی در زمینه رباتیک با زبان بسیار ساده و بر مبنای مطالبی که در سنین راهنمایی آموخته اید ارائه شده و در هر جلسه مطالب جدیدی آموزش داده شده اند.
 آخرین مطالب
 جلسه‌ي سي و هشتم
جلسه‌ي سي و هشتم
كاربرد تكنيك PWM در ساخت يك ربات مسيرياب پيشرفته...

به نام خدا


با  سلام خدمت دوستان خوبم. اميدوارم همگي خوب و خوش و سلامت باشيد و تا به اينجا امتحاناتتون را با موفقيت پشت سر گذاشته باشيد.

در اين جلسه به دليل همزماني با امتحانات پايان‌ترم عزيزان، سعي مي‌كنيم مطالب كمي ساده‌تر و مختصر باشد. در اين جلسه در مورد كاربرد PWM در ساخت يك ربات مسيرياب حرفه‌اي توضيح مي‌دهيم.

در ربات‌هاي مسيرياب ساده كه در جلسه 19 نيز در مورد آن توضيح داديم، هنوز ميكروكنترلر وارد ربات ما نشده و تصميصماتي كه ربات ما براي يافتن خط مي‌گيريد بسيار مقدماتي هستند و ربات نمي‌تواند مسير‌هاي پيچيده را با سرعت مناسبي دنبال كند.

يكي از مهمترين فوايد استفاده از ميكروكنترلر در ساخت ربات‌هاي مسيرياب، استفاده از قابليت PWM براي هدايت موتور‌هاي ربات است. اما به چه صورت از PWM استفاده مي‌كنيم؟




به شكل بالا نگاه كنيد، در جلسه‌ي نوزدهم گفتيم  3 سنسور هر طرف را با همديگر  ANDمنطقي مي‌كنيم و اگر هر يك از اين 3 سنسور خط را تشخيص داد، موتور همان سمت را متوقف مي‌كنيم تا به اين ترتيب ربات خط را  تعقيب كند.

اما در ربات‌هاي مسيرياب ميكروكنترلر دار، ما مي‌توانيم براي هر سنسور، به طور مجزا دستوري به موتور بدهيم. براي درك اين موضوع مجدد به شكل بالا نگاه كنيد، اين نماي كلي يك ربات از زير است. سنسور‌هاي آن را به ترتيب از چپ به راست، از 7 تا 1 شماره گذاري مي‌كنيم.
همانطور كه به خاط داريد در ربات‌هاي بدون ميكروكنترلر، تفاوتي نداشت كه سنسور 1 يا 2 يا 3 كداميك خط را بيابند، هر كدام خط را تشخيص مي‌داد، موتور سمت چپ خاموش مي‌شد. اما در ربات‌هاي ميكروكنترلر دار، ما مي‌توانيم تعيين كنيم كه مثلاً اگر سنسور شماره‌ي 3 خط را ديد، موتور سمت چپ به طور كامل متوقف نشود، بلكه سرعت آن به نصف كاهش پيدا كند. اين كار به نظر هم منطقي مي‌رسد، زيرا سنسور شماره‌ي 3 و 5 تا خط فاصله‌ي كمي دارند و نياز نيست وقتي خط را تشخيص مي‌دهند به طور كامل موتور متوقف شود، بلكه فقط كافيست سرعت موتور كمي كاهش پيدا كند تا ربات به تدريج به روي خط باز گردد. اين عمل باعث مي‌شود حركت ربات نرم‌تر و دقيق‌تر بشود و در مجموع سرعت ربات بالاتر برود.
حال اگر سنسور شماره‌ي 2 خط را ببيند، يعني شرايط كمي خطرناك‌تر شده و ربات ممكن است از خط خارج شود، پس مي‌توانيم در اينجا به موتور دستور توقف كامل را بدهيم تا ربات با سرعت بيشتري به مسير مسابقه بازگردد. و در نهايت اگر سنسور شماره‌ي 1 خط را ببيند، يعني ربات در آستانه‌ي خروج از مسير مسابقه قرار گرفته است و بايد با حداكثر توان ربات را به مسير مسابقه بازگرداند. براي اين كار به موتور سمت چپ دستور باز گشت به عقب را مي‌دهيم. اين كار بيشترين سرعت ممكن براي چرخش ربات را فراهم مي‌سازد و ربات با سرعت زيادي به زمينه مسابقه باز مي‌گردد.

در زير بخشي از برنامه‌ي يك ربات مسيرياب پيشرفته، كه فقط براي سنسور‌هاي سمت چپ و طبق توضيحات بالا نوشته شده است را مي‌بينيد. همانطور كه مي‌دانيد ما نياز به 3 پايه به عنوان ورودي براي دريافت وضعيت سنسورهاي سمت چپ، و يك پايه‌ي خروجي و يك PWM براي كنترل موتور سمت چپ داريم كه به ترتيب زير هستند:
PA.0 براي سنسور شماره‌ي 1
PA.1 براي سنسور شماره‌ي 2
PA.2 براي سنسور شماره‌ي 3
PD.6 و OCR2 براي كنترل موتور چپ
PD.3 و OCR1BL براي كنترل موتور راست

حالا به برنامه دقت كنيد:


(if (PINA.0==0
}
  ; PORTD.6=0
   ; OCR2=127

  ; PORTD.3=0
   ; OCR1BL=255
{


(if (PINA.1==0
}
  ; PORTD.6=0
   ; OCR2=0

  ; PORTD.3=0
   ; OCR1BL=255
{


(if (PINA.2==0
}
  ; PORTD.6=1
   ; OCR2=0

  ; PORTD.3=0
   ; OCR1BL=255
{



به همين منوال بايد براي سنسور‌هاي سمت راست هم برنامه را ادامه دهيد. دقت كنيد كه بايد حتماً قبل از نوشتن برنامه، از داخل CodeWizard، تنظيمات اوليه را انجام دهيد.

در مورد سنسور وسط هم در جلسه‌ي بيستم توضيحاتي داده شد، اگر اين سنسور  خط را تشخيص دهد، بيانگر اين است كه ربات در وضعيت مناسبي نسبت به خط قرار دارد و هر 2 موتور با تمام توان به سمت جلو حركت مي‌كنند. اگر  پايه‌ي PA.3 را نيز به سنسور وسط اختصاص دهيم، براي اين سنسور نيز داريم:


(if (PINA.3==0
}
;PORTD.6=0
   ; OCR2=255

  ; PORTD.3=0
   ; OCR1BL=255

منتظر سوالات و نظرات دوستان خوبم هستم
تا جلسه‌ي آينده خدا نگه دار

دوست شما، فراز اميرغياثوند

1388/3/3 لينک مستقيم

فرستنده :
فرزين HyperLink HyperLink 1388/4/4
مـتـن : salam.khaste nabashid ma darim ye robat junior soccer baraye mosabeghat misazim mishe darbareye sensor ultrasonic nahve barname nevishisho ba code vision zabane c baram inja ya mail konid bad lotfan mishe zaman mosabeghat kharazmi o dovimn dore ro begid mersi .ayam bekam ezat modam.khodanegahdar.
پاسـخ : سلام
ممنونم. من متاسفانه نمي‌تونم براتون چيزي ميل كنم، ولي اگر سوالي در اين باب داريد مي‌تونم در خدمتتون باشم.
يك راهنمايي: اگر از آلتراسونيك براي فاصله‌يابي مي‌خواهيد استفاده كنيد، كار ساده‌اي در پيش نداريد. من به شما سنسور‌هاي فاصله ياب شركت Sharp رو پيشنهد مي‌كنم. اين سنسور‌ها بسيار دقيق هستند و كار با اونها به مراتب ساده تر از آلتراسونيك است.
موفق باشيد دوست عزيز

فرستنده :
ابراهیم HyperLink HyperLink 1388/4/4
مـتـن : اگه ممکنه در مورد نوشتن الگوریتم لابیرنت برام توضیحی بدی؟؟
پاسـخ : سلام. بله حتماً در مورد ربات لابيرنت هم در جلسات آينده توضيحات مفصلي خواهيم داد.

فرستنده :
حبیب HyperLink HyperLink 1388/4/4
مـتـن : سلام فراز جان
اول از همه بابت سایت موفقت بهت تبریک میگم
من تا حالا چندتا ربات ساختم و تو چند تا مسابقه هم شرکت کردم اخریشم مسابقات بابل بود که با بد شانسی حذف شدم
حالا میخوام رباتیک رو ادامه بدم نه صرفا واسه مسابقات
امکان داره به سوالاتم جواب بدین؟؟
پاسـخ : سلام حبيب جان
بله دوست عزيزم، من حتماً در خدمتتون هستم. شاد و پيروز باشي

فرستنده :
احمد HyperLink HyperLink 1388/4/4
مـتـن : با سلام
آموزش های شما بسیار قابل فهم و درک هستند . سوال من انچنان به درس امروز مربوط نمی شود . راستش من یک موتور قوی می خواهم که مثل step motor عمل کنه و قدرت حرکت 25 کیلو جسم را درجه به درجه داشته باشه . ممنون می شوم اگر مرا راهنمایی کنید .
با تشکر
پاسـخ : سلام دوست عزيز
شما بايد از موتورهايي به نام servo motor استفاده كنيد. اين موتور‌ها تقريباً همين كاري كه شما مي‌خواهيد انجام مي‌دهند. البته راه‌اندازي اونها هم كار زياد ساده‌اي نيست. درباره‌ي اين نوع موتور‌ها در اينترنت مطالب گسترده‌اي وجود دارد.
موفق باشي

فرستنده :
پرام HyperLink HyperLink 1388/4/4
مـتـن : سلام آقا فراز ديگه امتحانات تموم شد و تابستون شروع شده ما هستيم و يك تابستون با كلي وقت آزاد با يك آقا فراز ديگه بايد تند تند درس بديد
پاسـخ : سلام پدرام جان
چشم ، همه‌ي تلاشمو مي‌كنم تا مطالب رو به موقع در اختيارتون قرار بدم. شاد باشد

فرستنده :
دانش آموز سوم راهنمايي HyperLink HyperLink 1388/4/4
مـتـن : مطالب واقعا خوبي ارائه مي دهيد اما سرعت كار بسيار پايين است و اگر مي شود مقداري هم مطالب را صريح و واضح بنويسيد.
براي تهيه ي وسايل مكانيكي در شهرستان ها بايد به كجاها مراجعه كنيم؟
پاسـخ : سلام دوست عزيز
وقفه‌ي ايجاد شده در ارايه‌ي مطالب به خاطر امتحانات بود. انشاالله كار با روند قبلي دنبال خواهد شد.
براي خريد وسايل رباتيك در شهرستان‌ها يكي از راه‌ها، مراجعه به سايت‌هاي اينترنتي فروش وسايل الكترونيكي است.مثلاً سايتhttp://www.roboeq.com
موفق باشيد

فرستنده :
omid HyperLink HyperLink 1388/4/4
مـتـن : سلام فراز جان
يه atmega16Lرو بعد از چند با پراگرام كردن ديگه code vision نمي شناسه!!
ميدوني واسه چي ؟
كريستال هم خارجي نكردم.
ممنون
پاسـخ : سلام اميد جان
اين مساله دلايل مختلفي مي‌تونه داشته باشه. يكي از شايع‌ترين دلايلش مي‌تونه اين باشه كه ميكروكنترلرت سوخته باشه. يا شايد هم پورت LPT كامپيوترت سوخته باشه. ابتدا كابل پروگرامرتو چك كن، اگر مشكلي نداشت، ميكروكنترلرو چك كن و اگر ميكرو هم سالم باشه به احتمال زياد پورت LPT سوخته است.
موفق باشي دوست عزيز

فرستنده :
عاطفه HyperLink HyperLink 1388/4/4
مـتـن : سلام چند تا سوال داشتم 1- در كدام سايت ميتوانيم مسابقات بين المللي را مشاهده كنيم؟2- آيا ما هم ميتوانيم در اين گونه مسابقات بين لمللي مثل آلمان يا چين شركت كنيم؟ واين كه كجا بايد ثبت نام كنيم؟سوال هم كه در رابطه با مسابقات داخلي مثل قزوين داشتم اين كه آيا ميشود به صورت انفرادي شركت كرد و تيم چند نفره تشكيل نداد چون من تا حالا تيمي نداشته ام و با اين حال خيلي هم در اين زمينه موفق بوده ام
پاسـخ : سلام دوست عزيز
در نحوه‌ي شركت در مسابقات رباتيك (اعم از خارجي و داخلي) در جلسات آينده مفصلاً توضيح خواهم داد. بله، مي‌تونيد به صورت انفرادي در مسابقات رباتيك شركت كنيد. موفق و پيروز باشيد

فرستنده :
Golbarg HyperLink HyperLink 1388/4/4
مـتـن : ali bood!! dame jenabali garm!!!:)
پاسـخ : ممنونم

فرستنده :
مجتبی ابدالی HyperLink HyperLink 1388/4/4
مـتـن : سلام آقا فراز امیدوارم که همیشه شاد باشی
من در متن این جلس این قسمتو که راجع به دستورت سنسور وسط نوشتین: &nبbsp; ; PORTD.6=0 متوجه نمیشم.
خیلی متشکر از مطالب خوبتون.
پاسـخ : سلام مجتبي جان.
متشكرم.
عذر خواهي مي‌كنم، اشتباه تايپي بود، رفع شد. موفق باشي

فرستنده :
OMID HyperLink HyperLink 1388/4/4
مـتـن : سلام فراز جان گل
اميدوارم كه حالت خوب باشه!
سرعت گذاشتن جلسه ها عالي شده همينطوري ادامه بدي خيلي خيلي عاليه
راستي داشت يادم ميرفت دهه فاطميه وشهادت مظلومانه حضرت فاطمه (س)رو تسليت ميگم
پاسـخ : سلام اميد جان
ممنونم، چشم تلاشمو مي‌كنم. البته وقفه‌اي به خاطر امتحانات دوستان در برنامه‌ي جلسات خواهيم داشت. موفق باشي دوست عزيز

نظر شما پس از تاييد در سايت قرار داده خواهد شد
نام :
پست الکترونيکي :
صفحه شخصي :
نظر:
تایید انصراف
 

 

 فعاليت هاي علمي
 تماس با ما