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

از ابن جلسه ما وارد مبحث میکروکنترلر می‌شویم. این مبحث نسبت به مباحث قبلی، نیازمند توجه و دقت بیشتری است و دوستان باید زمان بیشتری برای آموزش این مبحث صرف کنند. بخشی از این مبحث مربوط به برنامه نویسی تحت زبان C است که ما سعی می کنیم دوستان رو در حد کمی با مقدمات برنامه نویسی در این زبان نیز آشنا کنیم.


جلسه‌ي بيست و يكم

صفحه‌ي اصلي رباتيك

جلسه‌ي بيست و سوم


به نام خدا

با عرض سلام خدمت همه‌ي دوستان عزيزم

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

 

   ميکروکنترلر در زبان انگليسي به معني «ريز کنترل کننده" است. اين قطعه در واقع يک کنترل کننده ي مرکزي و يک مرکز تصميم گيري و هدايت براي مدارهاي ماست. اين قطعه يک آي سي است که مي تواند توسط کاربر برنامه ريزي شود. برنامه ريزي آن نيز توسط زبان هاي مختلف برنامه نويسي مانند C، اسمبلي و basic انجام مي شود.

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



   تصوير بالا تصوير يک ميکروکنترلر ATmega16L است. اين ميکرو کنترلر يک آي سي 40 پايه از خانواده ي ميکروکنترلرهاي AVR است و به دليل ويژگي هاي خاص و قيمت مناسبش(حدوداً 2000تومان)، به عنوان يکي از پرکاربردترين و معروف ترين انواع ميکروکنترلرها در جهان شناخته شده است. به همين دليل ما نيز آموزش کار با همين ميکروکنترلر را خواهيم داد. البته اين به اين مفهوم نيست که ما اگر ميکروکنترلرATmega16L را آموزش ببينيم فقط مي تونيم فقط با همين ميکروکنترلر کار کنيم، بلکه کار کردن با ساير ميکروکنترلرهاي خانواده ي AVR را نيز فرا مي گيريم و فقط کافيست چند نکته ي کوچک در مورد ميکروکنترلر هاي ديگر اين خانواده ياد بگيريم تا بتوانيم با آن ها نيز کار کنيم.

   جالبه بدونيد که اولين ميکروکنترلرها در دهه ي 80 ميلادي ساخته شد، که هنوز هم کار با آن ميکروکنترلرها در بسياري از دانشگاه ها و مراکز مختلف آموزشي، آموزش داده مي شود.

خوب، حالا کمي با اين قطعه ي جادويي بيشتر آشنا بشويم...

   ميکروکنترلر يک ريز پردازنده (Processor) است که مي تواند ورودي و خروجي هاي متعدد داشته باشد. يعني تعددادي ورودي از محيط دريافت کند و طبق برنامه ريزي هايي که روي آن انجام شده، خروجي هايي متناسب با آن ها صادر کند.

   ما براي برنامه ريزي اين قطعه، از زبان C که يکي از کاملترين زبان هاي برنامه نويسي روز دنياست، استفاده مي کنيم.

توضيحات ابتدايي در مورد قسمت هاي نرم افزاري:

 

   به برنامه اي که توسط کاربر نوشته مي شود، Source گفته مي شود. اين برنامه بايد توسط يک نرم افزار، به زبان قابل فهم براي ميکروکنترلر تبديل شود. به اين نرم افزار کامپايلر مي گويند. به اين برنامه ي کامپايل شده نيز، يک Object مي گويند. حالا بايد اين Object توسط نرم افزار ديگري به چيپ (Chip) يا همان آي سي منتقل شود. به اين عمل، يعني انتقال برنامه ي کامپايل شده به چيپ، پروگرام کردن مي گويند و به نرم افزاري که اين کار را انجام مي دهد پروگرامر (Programmer) مي گويند. محيطي که ما در آن برنامه ي مورد نظر خود را مي نويسيم (تايپ مي کنيم) Editor نام دارد. اين نرم افزار ما را در خلل برنامه نويسي بسيار کمک مي کند، مثلاً کلمات رزرو شده و غير قابل تعويض را با رنگها و فونت هاي گوناگون براي ما برجسته مي کند.

   اين 3 برنامه، يعني کامپايلر، پروگرامر و اديتور، در غالب نرم افزاري به نام "Code Vision" توسط شرکت HP به بازار عرضه شده است . کاربر با نصب اين نرم افزار بر روي کامپيوتر شخصي خود، در حقيقت هر 3 برنام را، به علاوه ي چندين قابليت و برنامه ي جانبي ديگر را که در جلسات آينده با آن ها آشنا خواهيد شد، بر روي دستگاه خود نصب کرده است. در واقع Code vision يک بسته‌ي نرم افزاري کامل و جامع براي خانواده ي AVR است که تمام نيازهاي نرم افزاري ما را براي کار کردن با ميکروکنترلرهاي اين خانواده برطرف مي کند.
در جلسات آينده در مورد اين نرم افزار بيش تر توضيح خواهيم داد.

توضيحات مقدماتي در مورد قسمت هاي سخت افزاري:

   ميکروکنترلر ATmega16L داراي 4 پورت (Port) يا درگاه است. هر پورت داراي 8 پايه است که مي توانند به عنوان ورودي يا خروجي استفاده شوند. در حقيقت اين ميکروکنترلر داراي 32 پايه براي دريافت اطلاعات و يا صدور دستورات مختلف براي کنترل ساير قطعات است. 8 پايه ي ديگر نيز وظايف مختلفي بر عهده دارند که در جلسات آينده در مورد آن ها نيز توضيح داده خواهد شد.

   در بعضي از ميکروکنترلرها براي انتقال برنامه به چيپ (پروگرام کردن چيپ)، از يک مدار جانبي به نام "Micro controller programmer" استفاده مي کنند و چيپ را در آن مدار قرار داده و چيپ بايد فقط روي آن مدار پروگرام شود. ATmega16L اين قابليت را دارد که بدون هيچگونه مدار خارجي و فقط به وسيله ي چند رشته سيم معمولي، بر روي خود ربات يا مدار اصلي پروگرام شود. اين قابليت به اختصار ISP يا (In System programing) نام دارد. اين قابليت يکي از بزرگترين مزيت هاي اين نوع ميکروکنترلر به شمار مي رود. زيرا ديگر نيازي به صرف هزينه ي اضافي براي خريد اين مدار نيست. علاوه بر اين ديگر نيازي نيست چيپ هر بار براي پروگرام شدن از روي ربات جدا شود.

 

   در مورد ميکروکنترلر مطالب بسيار گسترده و زيادي وجود دارد، تا جايي که به عنوان يکي از درس هاي تخصصي رشته هاي برق و کامپيوتر به دانشجويان مقطع کارشناسي ارائه مي شود. بديهي است ما نمي توانيم در اينجا تمامي مطالب موجود در مورد ميکروکنترلر ها را آموزش دهيم. اما به هر حال در جلسات آينده سعي مي کنيم شما رو تا حد مناسبي با اين قطعه ي با ارزش آشنا کنيم.

تا جلسه آينده خدا نگه دار
پيروز باشيد!

دوست شما، فراز


جلسه‌ي بيست و يكم

صفحه‌ي اصلي رباتيك

جلسه‌ي بيست و سوم


1387/6/16 لينک مستقيم

فرستنده :
نغمه HyperLink HyperLink 1387/12/7
مـتـن : ببخشید میشه فرق میکروکنترلر ATmega16L با ATmega16 رو بگید؟
پاسـخ : سلام
تقريباً اين 2 تفاوت خاصي با هم ديگه ندارند كه در كار ما تاثير مستقيمي داشته باشد.

فرستنده :
احمد HyperLink HyperLink 1387/7/10
مـتـن : با عرض سلام و خسته نیاشید خدمت شما.من امشب برای اولین بار به بخش رباتیک شما اومدم.
من امسال تابستان حدود 10 جلسه کلاس رباتیک رفتم.بیشتر برنامه نویسی picتدریس شد.کلاس تمام شده.و من برای شرکت در مسابقات باید خودم و از روی کتاب مطالب باقی مانده را یاد بگیرم.می خواستم برای تکمیل آموخته های خود از بخش شما استفاده کنم.می خواهم بدانم
1- که از برنامه AVRمی توان در PICاستفاده کرد؟
2-برای ساخت ربات مسیر یاب به وسیله ی PIC دانستن چه مطالبی نیاز است؟
پاسـخ : سلام. خوشحالم که با بخش ما آشنا شدید.
من فکر می کنم شما نیاز به آموزش مفصلی دارید تا بتونید ربات بسازید، از برنامه های AVR نمی شه برای PIC استفاده کرد، ولی از بقیه ی مطالب میشه خیلی استفاده کرد. به نظر من شما مطالب رو از ابتدا شروع کنید به خوندن، مطمئن باشید خیلی بهتون کمک می کنه.
موفق باشی دوست عزیز

فرستنده :
ناشناس HyperLink HyperLink 1387/7/10
مـتـن : خوبه
پاسـخ :

فرستنده :
ناشناس HyperLink HyperLink 1387/7/10
مـتـن : سلام خسته نباشيد.
در مورد 7segment براي كار ما آند باشه يا كاتد تفاوتش چيه؟
در مورد بستن مدار جاي قرار گرفتنشون چه تفاوتي داره؟
متشكرم
پاسـخ : سلام
ممنونم دوست عزیز
تقریباً این 2 هیچ تفاوتی با هم ندارند، فقط نحوه ی اتصال + و -اونها برعکس هم دیگر است. که در جلسه ی مربوطه در موردش توضیحاتی دادم.
موفق باشی دوست عزیز

فرستنده :
ناصر HyperLink HyperLink 1387/6/22
مـتـن : با عرض سلام وخسته نباشیدو ضمن قبولی طاعات وعبادات شما استاد گرامی و همکارانتان در سایت شبکه ی رشد .مطالب این جلسه بسیار ارزشمند ومفید بودند. من خیلی خوشحالم که وارد مبحث بسیار گسترده و پیچیده ی میکروکنترلر شده ایم . استاد من چند تا سوال دارم و ممنون می شوم که به انها پاسخ دهید.
1- ایا برای شروع بخش مربوط به برنامه نویسی میکروکنترلر این زبانی که انتخاب کرده اید مشکل نیست و بهتر نیست با زبان ساده تری مثل ویژوال بیسیک برای اشنایی شروع کنیم البته باز شما استادید وصاحب اختیار ومن فقط یک پیشنها د دادم.
2- چرا بعضی از میکروکنترلرها برای programmکردن نیاز به مدارات خارجی دارند .ایا این به دلیل ساختمان داخلی انها است یا اینکه فناوری این نوع ای سی ها کهنه شده است؟
3- ایا نرم افزار Code Visionفقط برای میکروکنترلر های خانواده ی avrمی باشدیا برای همه ی خانواده هامی توان از ان استفاده کرد؟
پاسـخ : سلام دوست عزیز
روزه نمازهای شما قبول حق. خیلی ممنونم.
سوال اول: باید عرض کنم که اینجوری نیست که ما برای هر میکروکنترلری کامپایلرهای مختف برای زبان ها برنامه نویسی مختلف داشته باشیم. یعنی ما نمی توانیم هر زبانی را که خواستیم انتخاب کنیم و با آن برنامه بنویسیم. علاوه بر این، زبان C زبان بسیار قدرتمندی و برنامه نویسی با اون کار زیاد سختی نیست. ما هم قرار نیست C را به طور کامل یاد بگیریم. ما فقط در حد رفع نیاز با این زبان آشنا خواهیم شد.
سوال دوم: هر دو، یعنی بعضی از این میکروکنترلر ها به خاطر قدیمی بودن فناوری شان نیاز به مدار خارجی دارند، مثل 8051 که چندین سال پیش، توسط سازنده ی همینAVR به بازار عرضه شد و نیاز به مدار خارجی داشت.
ولی خوب خیلی از میکروکنترلرهای مدرن هم نیاز به مدار خارجی دارند.
سول سوم: بله، این نرم افزار فقط برای همین خانواده طراحی شده است.
پیروز باشی

فرستنده :
ali HyperLink HyperLink 1387/6/18
مـتـن : با عرض سلام و خسته نباشید خدمت آقا فراز
من چند هفته ای است که با این سایت آشنا شدم و الان تا جلسه 19 پیش رفتم ولی به یه مشکلی بر خوردم اگه میشه کمک کنید .
1) شما در جلسه 14در مدارهاي سنسورهاي نوري فتوترانزيسوری سنسور گیرنده رو رسم کردید اما فرستنده نه و اینکه چرا + باتری رو به -- گیرنده وصل کردید ؟؟
2) چرا در شماتیک ربات مسیریاب در جلسه 19 هم اثری از فرستنده نیست ؟
پاسـخ : سلام دوست عزیز
خوشحالم که شما هم به جمع ما پیوستید.
ج1: علی جان در همون جلسه ی چهاردهم قبل از اون 2 مدار برای گیرنده، مدار فرستنده رو کشیدم براتون، دقت کن دوباره.
ممنون از دقت نظرت، دلیل این که چرا به طور معکوس گیرنده را وصل میکنیم، یکی دیگه از دوستان هم در همون جلسه پرسیده بود. دلیل این کار بر می گرده به ساختار داخلی دیودها و پیوندهای P-n میان آن ها. انشاالله در فیزیک پیش دانشگاهی با این مفاهیم بیشتر آشنا خواهید شد.
ج2: چون وصل کردن فرستنده ها پیچیدگی خاصی نداره، نخواستم اون مدار را بیش از حد شلوغ کنم. ولی کمی بالاتر توضیح دادم که هر جا گیرنده میذارید، بهتره یک فرستنده هم کنارش باشه. یعنی به ازای هر گیرنده یک فرستنده باید تعبیه شود.
پیروز باشی

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

 

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