آموزش رباتیک
برای دانش آموزان و همه علاقمندان علوم رباتیک و الکترونیک
آموزشگاه رباتیک در تهران تلفن
: 77422883

درس سی و سه :
آشنایی با قسمتهای مکانیکی ربات
ما قبل از شروع بحث
PWM
در AVR،
ابتدا كمي به قسمتهاي مكانيكي ربات ميپردازيم.
جهت
آشنايي دوستان با انواع شاسی ربات ،در مورد هر كدام توضيح مختصري بيان ميشود.

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

ممكن است بسياري از
دوستان با اين نوع آشنايي داشته باشند،زيرا در تهيهي كابينت ، كمد و
بسياري از اساس منزل استفاده ميشود. اين نوع، از تركيب برادههاي چوب با
نوعي چسب توليد ميشود(مشابه نئوپان) و نسبت به چوبهاي معمولي استحكام
بيشتري دارد. هيچگونه انعطافي ندارد، و ميتوان با اره برقي و معمولي آن را
بريد.
MDF
در ضخامتهاي مختلفي وجود دارد كه طبيعتاً هرچه ضخامت آن بيشتر
باشد،استحكام و وزن آن نيز بالاتر ميرود.
MDF
8 ميليمتري براي شاسي رباتهاي مسيرياب پيشرفته و آتش نشان مناسب است،
زيرا براي ساخت اين رباتها محدوديت زيادي براي حجم نداريم، و استحكام
بسيار خوبي هم دارد.
با
اينكه تقريباً پلكسي گلاس از هر نظر از
MDF مناسبتر
است، اما كمي هم از MDF
پرهزينه تر است و به همين خاطر
MDF هنوز
كاربرد زيادي در ساخت رباتها دارد.
در رباتهاي فوتباليست
دانشاموزي، به دليل برخوردهاي شديدي كه گاهاً ممكن است بين رباتها پيش
آيد و فشاري كه به بدنهي ربات وارد ميشود،معمولاً شاسي ربات را از جنس
صفحهي آلمينيوم 2 يا 3 ميليمتري ميسازند، اين امر موجب استحكام بسيار
بالاي بدنه ميشود.MDF
نيز استحكام مناسبي دارد، اما از
لحاظ حجمي، حجم صفحههاي فلزي بسيار كمتر از
MDFاست.تنها ايراد
صفحهي آلمينيوم، وزن زياد آن است ممكن است كار را دچار مشكل كند، از اين
رو دوستان بايد در استفاده از آن دقت لازم را داشته باشند.

چگونه موتورها را به بدنه متصل كنيم؟ |
چند راه براي اتصال
موتورها به بدنهي ربات وجود دارد. يكي از سادهترين و سريعترين روشها
براي اتصال موتورهاي گيربكس دار به بدنه ، استفاده از بَست ديواركوب
لولهي آب است. به شكل زير دقت كنيد.

گيربكس چيست و چه كاربردي در ساخت ربات دارد؟ |
براي سرعت موتور كميتي به
نام rpm
يا "دور بر دقيقه" تعريف ميشود كه اين كميت، تعداد چرخش
شفت موتور را در مدت يك دقيقه نشان ميدهد.موتورهاي عادي بدون گيربكس
rpm بالا و قدرت كمي
دارند. rpm
بالا موجب بالا رفتن سرعت ربات
ميشود. قدرت كم و سرعت زياد،در مجموع موجب غير قابل كنترل شدن ربات ميشود
و هدايت ربات را دچار مشكل ميكند.
با اتصال يك گيربكس يا چرخدنده به شفت
موتور، ميتوان سرعت موتور را پايين آورد و قدرت آن را بالا برد. گيربكسي
در تصوير بالا روي موتور نصب شده است، سرعت موتور را تا 16/1 پاييين آورده
است و سرعت نهايي موتور را به 330
rpm رسانده
است.(در تصوير بالا گيربكس زير بَست قرار گرفته است). در اين موتور، سرعت
شفت موتور قبل از اتصال به گيربكس 5280
rpm بوده
است. اين سرعت براي يك ربات مسير ياب مقدماتي بسيار بالاست. سرعت موتور
رباتهاي ما بايد زير 200
rpm باشند.
تمام اطلاعات
مربوط به موتور را معمولاً شركتهاي معتبر موتورسازي بر روي بدنهي موتور
مينويسند.
انواع موتورهاي
گيربكسدار با سرعتها و قدرتهاي مختلف در حال حاضر در بازار موجود است.

در جلسهي آينده به مبحث ميكروكنترلر برميگرديم و نحوهي كنترل سرعت
موتورها را از طريق PWM
در ميكروكنترلرهاي خانوادهي
AVR بررسي
ميكنيم.جلسهي آينده جمعهي هفتهي آينده بر روي سايت قرار خواهد گرفت.
درس سی و چهار : آشنایی
با PWM
در اين جلسه به مبحث ميكروكنترلر
برميگرديم و در مورد PWM
و كاربردهاي آن در ساخت ربات توضيح خواهيم داد.
در بسياري از موارد، ما
نياز به كنترل ولتاژ بر روي پايههاي خروجي ميكروكنترلر را داريم. مثلاً
اگر بخواهيم سرعت موتور را كنترل كنيم، بايد ولتاژي كه بر روي موتور اعمال
ميشود را كنترل كرد. در حقيقت سرعت موتور تقريباًً تابع مستقيمي از ولتاژي
است كه بر روي آن اعمال ميشود. يعني اگر ولتاژ كاريِ موتوري (ولتاژ
استاندارد براي فعال سازي موتور كه بر روي بدنهي آن نوشته ميشود) 12 ولت
باشد، با اعمال ولتاژ 6 ولت روي آن، ميتوانيد سرعت چرخش آن(rpm)
را حدوداً به نصف كاهش
دهيد.
كنترل سرعت ربات،
در همهي سطوح رباتيك اهميت بسيار زيادي دارد، از رباتهاي مسيرياب ساده
گرفته تا رباتهاي فوتباليست. ما تا كنون ياد گرفتهايم كه چگونه ميتوان
به موتور دستور حركت يا توقف داد، اما راهي براي كنترل سرعت موتور ياد
نگرفتهايم.
يادآوري
همانطور كه ميدانيد سطح ولتاژ
پايههاي خروجي ميكروكنترلر منطقي است، يعني يك پايهاي كه
براي كنترل موتور ربات استفاده ميشود فقط ميتواند
0
يا 1
باشد. ما 2 پايه از ميكروكنترلر را
به حركت ربات اختصاص ميدهيم، براي صدور دستور حركت، بايد يك
پايه را 0 و پايهي
ديگر را 1 كنيم، در
اين حالت بين 2 پايهي موتور اختلاف پتانسيل برقرار ميشود و
حركت ميكند. اگر هم بخواهيم موتور معكوس بچرخد، بايد پايهاي
كه 1 بود 0
، و پايهاي كه 0
بود را 1
كنيم؛ و براي توقف موتور، بايد هر
دو پايه را 0 يا هر
دو پايه را 1
كنيم (تا بين 2 پايهي موتور
اختلاف پتانسيل 0 ولت باشد). در نتيجه در حالت عادي ما فقط 2
فرمان "حركت" و "توقف" را ميتوانيم به موتورها بدهيم، و ما
هيچ كنترلي بر روي سرعت موتور نداريم. |
PWM
تكنيكي است كه به كمك آن ميتوانيم ولتاژ پايههاي خروجي ميكروكنترلر، و در
نتيجه سرعت موتور يا ساير قطعات جانبي كه به ميكروكنترلر متصل ميشود را
كنترل كنيم.
PWM
مخفف واژهي Pulse Width
Modulation و به معناي
"مدولاسيون پهناي پالس"
است. همانطور كه گفتيم
PWM تكنيكي براي كنترل
ولتاژِ پايهي خروجي است. حال ببينيم چگونه با اين تكنيك ميتوان ولتاژ
خروجي را كنترل كرد.
ميدانيم كه ولتاژ در پايههاي خروجي
ميكروكنترلر يا 0 است يا 5 ولت، اما براي كنترل سرعت موتور، بايد بتوانيم
حداقل ولتاژ يكي از پايهها را بين 0 تا 5 تغيير دهيم.
PWM
روشي است تا ما بتوانيم با استفاده از همين پايهي خروجي معمولي، به نوعي
ولتاژ را بين 0 تا 5 ولت تغيير دهيم.
در اين روش، ما
با سرعت بالايي سطح ولتاژ خروجي را 0 و بلافاصله 1
ميكنيم(مثلاً هزار بار در ثانيه)، نمودار ولتاژ خروجي بر حسب زمان به شكل
زير ميشود.

نمودار بالا ولتاژ خروجي اين پايه
بر حسب زمان است.
در شكل بالا جمع
2 بازهاي كه با فلشهاي 2طرفه نشان داده شده است، (به عنوان مثال) 10
ميكرو ثانيه است. كه 5ميكرو ثانيه خروجي 1 و سپس 5ميكرو ثانيه 0
ميشود. اما همانطور كه گفته شد، اين عمل هزاران بار در ثانيه تكرار
ميشود، اما آيا موتور نيز به همين تعداد در ثانيه روشن و خاموش ميشود؟
جواب منفيست،
اتفاقي كه روي ميدهد اين است كه موتور، اين موج را در درون خود به نوعي
ميانگين گيري ميكند و در حقيقت آنرا به شكل زير مي بيند:

يعني در واقع موتور اين موج را به
صورت يك ولتاژ 2.5 ولت معمولي دريافت ميكند.
به همين ترتيب
ميتوان هر ولتاژي بين 0 تا 5 ولت را بر روي خروجي مورد نظر ايجاد كرد.
اگر بخواهيم ولتاژي بالاتر از 2.5 ولت داشته باشيم، بايد طول بازههاي
زمانياي كه خروجي 1 است را نسبت به بازههايي كه خروجي 0
است بيشتر كنيم. به عنوان مثال براي ايجاد ولتاژ 2.5 ولت، بايد 5 ميكرو
ثانيه سطح ولتاژ خروجي 1 باشد، سپس 5 ميكرو ثانيه سطح ولتاژ 0
شود تا موجي به شكل بالا ايجاد شود.
يا به عنوان
مثالي ديگر، اگر بخواهيم در خروجي ولتاژ 4 ولت داشته باشيم، بايد بايد 8
ميكرو ثانيه سطح ولتاژ خروجي 1 باشد، سپس 2 ميكرو ثانيه سطح ولتاژ
0 شود، تا ولتاژ پايهي خروجي مورد نظر 4 ولت باشد.
در حقيقت ولتاژ خروجي از رابطهي سادهي زير به دست ميايد:
(طول كل
بازه) / ( طول بازهاي كه خروجي
1
است)
پس طبق رابطهي
بالا،براي ايجاد ولتاژ 4 ولت، ميتوان به جاي استفاده از بازههاي 8 و 2
ميكرو ثانيهاي، از بازههاي 4 و 1 ميكرو ثانيهاي استفاده كرد. (يعني
4ميكرو ثانيه 5ولت، 1 ميكرو ثانيه 0 ولت) زيرا: 2÷ 8 = 1÷4
نمودار ولتاژهاي 4 ولت و 1 ولت در زير نشان داده شده است:
 |
 |
نمودار نحوهي توليد ولتاژ 4 ولت با تكنيك
PWM. |
نمودار نحوهي توليد ولتاژ 1 ولت با تكنيك
PWM. |
حال ببينيم چگونه ميتوان برنامهاي نوشت تا بر روي پايهاي دلخواه از
ميكروكنترلر PWM
ي براي ولتاژ 4 ولت ايجاد كرد.
هر دستوري كه بر روي خروجيهاي ميكروكنترلر قرار ميگيرد، تا زماني كه
دستور بعدي، خروجي را تغيير ندهد، آن خروجي تغييري نخواهد كرد. يعني مثلاً
زماني كه پايهاي را 1 ميكنيم، تا زمانيكه با دستور ديگري آن پايه
را 0 كنيم، مقدار خروجي آن پايه 1 خواهد ماند. به اين عمل
اصطلاحاً Latch
كردن ميگويند. ميكروكنترلر همواره اطلاعاتي كه بر روي خروجي قرار ميدهد
را Latch
ميكند و تا زمانيكه اطلاعات جديد بر روي پايه قرار نگيرد، اطلاعات قبلي را
تغيير نميدهد.
در نتيجه، مثلاً اگر ميخواهيم پايهاي را 5 ميكروثانيه 1 وسپس 0
كنيم، كافيست پايهي مورد نظر را 1 كنيم و 5ميلي ثانيه در برنامه
تاخير ايجاد كنيم و سپس پايهي مورد نظر را 0 كنيم.
پس وقتي مي خواهيم مثلاَ بر روي پايهي
B.4 ، يك
PWM
براي ولتاژ 2.5 ولت ايجاد كنيم، بايد به شكل زير عمل كنيم.
while(1)
{
PORTB.4=1;
5
ميكرو ثانيه تاخير
PORTB.4=0;
5
ميكرو ثانيه تاخير
}
در بالا يك حلقهي بينهايت تعريف شده
است كه بر روي پايهيB.4، يك
PWM
براي 2.5 ولت ايجاد ميكند.
در جلسهي آينده با توابعي كه براي ايجاد تاخير (delay)
در برنامه استفاده ميشوند آشنا خواهيد شد. همچنين ميآموزيد كه چگونه
ميتوان از PWM
ميكروكنترلرهاي خانوادهي
AVR استفاده كنيد.
اگر مطالب اين جلسه كمي پيچيده به نظر
ميرسند جاي نگراني نيست، زيرا مبحث
PWM مبحث
گستردهايست و كاربردهاي زيادي در صنعت دارد و فقط محدود به ميكروكنترلر
هم نميشود. پس طبيعيست كه سطح مطالب كمي بالا باشد و دوستان نيز گاهاً در
درك مفاهيم دچار مشكل شوند. حضور در کلاسهای آموزشگاه رباتیک این موسسه شما
را توانا خواهد کرد مطالب را عملی و کاربردی فراگرفته و به پیشرفتهای خود
ادامه دهید.
 |