مجتمع فنی و حرفه ای دانشمند با مجوز رسمی سازمان فنی و حرفه ای کشور، مرکز آموزش علوم کامپیوتر ، رباتیک و الکترونیک برای همه دختران ،پسران ،خردسالان ،کودکان،نوجوانان و بزرگسالان

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

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

 

 

 

درس سی و سه   : آشنایی با قسمتهای مکانیکی ربات

 

 ما قبل از شروع بحث PWM در AVR، ابتدا كمي به قسمت‌هاي مكانيكي ربات مي‌پردازيم.

 

شاسي ربات



جهت آشنايي دوستان با انواع شاسی ربات ،در مورد هر كدام توضيح مختصري بيان مي‌شود.

 

پلكسي گلاس:




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

 

MDF




ممكن است بسياري از دوستان با اين نوع آشنايي داشته باشند،زيرا در تهيه‌ي كابينت ، كمد‌ و بسياري از اساس منزل استفاده مي‌شود. اين نوع، از تركيب براده‌هاي چوب با نوعي چسب توليد مي‌شود(مشابه نئوپان) و نسبت به چوب‌هاي معمولي استحكام بيشتري دارد. هيچگونه انعطافي ندارد، و مي‌توان با اره برقي و معمولي آن را بريد.

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 و كاربرد‌هاي آن در ساخت ربات توضيح خواهيم داد.

 

PWM چيست؟




در بسياري از موارد، ما نياز به كنترل ولتاژ بر روي پايه‌هاي خروجي ميكروكنترلر را داريم. مثلاً اگر بخواهيم سرعت موتور را كنترل كنيم، بايد ولتاژي كه بر روي موتور اعمال مي‌شود را كنترل كرد. در حقيقت سرعت موتور تقريباًً تابع مستقيمي از ولتاژي است كه بر روي آن اعمال مي‌شود. يعني اگر ولتاژ كاريِ موتوري (ولتاژ استاندارد براي فعال سازي موتور كه بر روي بدنه‌ي آن نوشته مي‌شود) 12 ولت باشد، با اعمال ولتاژ 6 ولت روي آن، مي‌توانيد سرعت چرخش آن(rpm) را حدوداً به نصف كاهش دهيد.

كنترل سرعت ربات، در همه‌ي سطوح رباتيك اهميت بسيار زيادي دارد، از ربات‌هاي مسيرياب ساده گرفته تا ربات‌هاي فوتباليست. ما تا كنون ياد گرفته‌ايم كه چگونه مي‌توان به موتور دستور حركت يا توقف داد، اما راهي براي كنترل سرعت موتور ياد نگرفته‌ايم.

 

يادآوري

همانطور كه مي‌دانيد سطح ولتاژ پايه‌هاي خروجي ميكروكنترلر منطقي است، يعني يك پايه‌اي كه براي كنترل موتور ربات استفاده مي‌شود فقط مي‌تواند 0 يا 1 باشد. ما 2 پايه از ميكروكنترلر را به حركت ربات اختصاص مي‌دهيم، براي صدور دستور حركت، بايد يك پايه را 0 و پايه‌ي ديگر را 1 كنيم، در اين حالت بين 2 پايه‌ي موتور اختلاف پتانسيل برقرار مي‌شود و حركت مي‌كند. اگر هم بخواهيم موتور معكوس بچرخد، بايد پايه‌اي كه 1 بود 0 ، و پايه‌اي كه 0 بود را 1 كنيم؛ و براي توقف موتور، بايد هر دو پايه را 0 يا هر دو پايه را 1 كنيم (تا بين 2 پايه‌ي موتور اختلاف پتانسيل 0 ولت باشد). در نتيجه در حالت عادي ما فقط 2 فرمان "حركت" و "توقف" را مي‌توانيم به موتورها بدهيم، و ما هيچ كنترلي بر روي سرعت موتور نداريم.

PWM تكنيكي است كه به كمك آن مي‌توانيم ولتاژ پايه‌هاي خروجي ميكروكنترلر، و در نتيجه سرعت موتور يا ساير قطعات جانبي كه به ميكروكنترلر متصل مي‌شود را كنترل كنيم.

 

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 مبحث گسترده‌ايست و كاربرد‌هاي زيادي در صنعت دارد و فقط محدود به ميكروكنترلر هم نمي‌شود. پس طبيعيست كه سطح مطالب كمي بالا باشد و دوستان نيز گاهاً در درك مفاهيم دچار مشكل شوند. حضور در کلاسهای آموزشگاه رباتیک این موسسه شما را توانا خواهد کرد مطالب را عملی و کاربردی فراگرفته و به پیشرفتهای خود ادامه دهید.

 

 

درس بعدی    درس قبلی

 

درس 4  و 3                درس 6 و 5             درس 8 و 7         درس 10 و 9         درس   12  و  11               درس 14  و 13

 

درس  16 و  15             درس 18 و 17            درس 20 و 19        درس 22 و 21        درس 24 و 23               درس 26 و  25

 

درس 28 و 27                درس 30 و 29          درس 32 و 31        درس 34 و 33          درس 36 و 35               درس 38 و 37   

 

درس 40 و 39                درس 42 و 41           درس 44 و 43          درس 46 و 45          درس 48 و47             درس 50 و 49

 

درس 52 و 51            درس 54 و 53            درس 56 و 55          درس 58 و  57          درس 60 و 59              درس 62 و 61

 

 

 

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

 

آموزش رباتیک برای کودکان 4 تا 9 ساله

 

  آموزش رباتیک برای دانش آموزان

 

 آموزش کامپیوتر برای کودکان 4 تا 9 ساله

 

  آموزش کامپیوتر برای  دانش آموزان 

 

آموزش  کاربردی و عمومی کامپیوتر برای همه

 

 آموزش مهارتهای ICDL1 بصورت کاربردی

 

 آموزش مهارتهای ICDL2 بصورت کاربردی

 

آموزش  تایپ  10  انگشتی  -     تضمینی

 

آموزش کارمند امور دفتری و منشیگری - بخش  IT

 

آموزش سخت افزار کامپیوتر

 

آموزش فتوشاپ PHOTOSHOP

 

آموزش کورل  COREL

 

 آموزش تری دی مکس           3D MAX  

 

    آموزش  اتوکد   AUTOCAD

 

دوره های استاندار  فناوری اطلاعات  و علوم کامپیوتر ( بیش از 250 رشته )

 

 دوره های استاندار    الکترونیک ( بیش از 80 رشته )

 

       دوره های اخذ دیپلم کار دانش

 

آموزش عمومی و کاربردی برای دانش آموزان  

آموزش رباتیک برای دانش آموزان  از سوم دبستان به بالاتر
آموزش کامپیوتر برای دانش آموزان
آموزش اینترنت برای دانش آموزان
آموزش هفت مهارت ICDL برای دانش آموزان
آموزش فتوشاپ برای دانش آموزان

دوره های عمومی کاربردی برای شاغلین و کارجویان

   آموزش  فتو شاپ برای بزرگسالان (فشرده و کوتاه مدت)
آموزش کاربردی کامپیوتر برای بزرگسالان ( کوتاه مدت)
آموزش اینترنت برای بزرگسالان (فشرده و کوتاه مدت)
   آموزش  مهارت ICDL برای بزرگسالان (  کوتاه مدت)
 

آموزش تخصصی رباتیک  و  الکترونیک    

آموزش  اصول الکترونیک ( در چهار سطح )
آموزش نرم افزاری کاربردی الکترونیک (طراحی و آزمایشگاه )  
آموزش رباتیک در 12 ترم  ( و در سه سطح )
آموزش میکروکنترلر AVR ( در سه سطح )
آموزش میکرو کنترل ARM ( در سه سطح )
آموزش مبانی رباتیک ( استاندار فنی و حرفه ای )
آموزش سخت افزار  رباتیک ( استاندار فنی و حرفه ای ) 
آموزش میکروکنترلرها در رباتیک ( استاندار فنی و حرفه ای ) 
آموزش سخت افزار  رباتیک ( استاندار فنی و حرفه ای  
آموزش PSPICE  ( شبیه سازی مدارات الکترونیکی )
آموزش  ORCAD ( تحلیل مدارات )
آموزش PROTEUS ( طراحی فیبر مدارچاپی ) 
آموزش ALTIUM DESIGNER ( طراحی مدارچاپی )  
آموزش PROTEL  DXP (  طراحی مدارچاپی و رسم شماتیک ) 
آموزش  PIC  ( در سه سطح )
آموزش FPGA) VHDL )
آموزش   LABVIEW
آموزش   EWB ( الکترونیک ورک بنج )
آموزش  XMEGA
 

دوره های استاندار  فناوری اطلاعات ( بیش از 250 رشته )

آموزش 7 مهارت  ICDL 1
آموزش 7 مهارت  ICDL 2
مبانی فناوری اطلاعات ( IT  BASICS )
رایانه کار درجه 2
رایانه کار درجه 1
رایانه کار نرم افزار POWER POINT  
شهروند الکترونیکی (کار با اینترنت)
   آموزش   طراحی وب سایت
آموزش دوره کامل طراحی وب سایت
آموزش طراحی وب سایت با JOOMLA ( جوملا)
آموزش طراحی سایت با   WORDPRESS   ( ورد پرس )
آموزش  فروشگاه ساز MAGENTO (  مجنتو )
آموزش طراحی وب سایت  استاتیک

  آموزش    JQUERY   (جی کوئری ) 

    آموزش    SEO   ( سئو )

آموزش  ساخت فروشگاه اینترنتی

آموزش  وب   ASP.NET  -C# - NET-SQL-  

 

  آموزش  برنامه نویسی

آموزش برنامه نویسی  (اندروید ) ANDROID
آموزش برنامه نویسی( جاوا ) JAVA
آموزش برنامه نویسی ( سی پلاس پلاس )  ++C
آموزش برنامه نویسی   ( ای اس پی ) ASP.NET
آموزش برنامه نویسی   ( سی شارپ ) C#.NET
آموزش   SQL  SERVER
آموزش برنامه نویسی  کاربردی  
آموزش برنامه نویسی   ( لینوکس )  LINUX
آموزش  ساختمان داده و الگوریتم 
 

  آموزش شبکه و سخت افزار

آموزش فشرده ( نت ورک پلاس ) +NETWORK
آموزش فشرده شبکه   MCITP
آموزش فشرده شبکه  CCNA
آموزش برنامه نویسی   ( ای اس پی ) ASP.NET
آموزش برنامه نویسی   ( سی شارپ ) C#.NET
آموزش عملی سخت افزار +A
آموزش  امنیت شبکه
 

آموزش گرافیک 

آموزش فتوشاپ PHOTOSHOP   
آموزش کورل  COREL
آموزش ایلوستریتور ILLUSTRATOR   
آموزش ایندیزاین   INDESIGN
 

طراحی سه بعدی 

آموزش تری دی مکس  3D MAX   
آموزش  V-AAY   
آموزش راینو   RHINO   
آموزش ایلوستریتور ILLUSTRATOR   
 

آموزش  فنی و مهندسی  

آموزش کتیا  CATIA   
آموزش سالیدورک   SOLID WORKS
آموزش اتوکد  AUTO CAD   
آموزش متلب   MATLAB