فایل جهت دانلود

معرفی و دانلود فایلهای پر کاربرد فارسی

فایل جهت دانلود

معرفی و دانلود فایلهای پر کاربرد فارسی

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


لینک دریافت فایل خرید پایین توضیحات

فرمت فایل word  قابل ویرایش پرینت

تعداد صفحات: 22

 

اموزش ساخت ربات (میکروکنترلر) 

میکروکنترلر چیست: میکروکنترلر رو درواقع توان یه کامپیوتر کوچولو در قالب یه چیپ کنترل وسایل الکترونیکی (در اینجا ربات) تلقی کرد. تفاوت میکروکنترلر میکروپروسسور اینه میکروکنترلر دارای یک CPU ٫مقدار محدودی RAM ٬ ROM ٬ پورت I/O تایمر درون خود باشد صورتی میکروپروسسور فقط یه CPU هست شما باید RAM, ROM ,... رو صورت اجزای جانبی اون متصل کنید (درست مثل CPU کامپیوتر). همین میکروکنترلرها تک منظوره ولی میکروپروسسورها همه منظوره هستند. تفاسیر میکروکنترلرها دارای کارایی خاص خودشون مثلا ماشین لباسشویی٬ ماکروویو٬ تلفن البته ربات هاو... هستند یعنی جایی استفاده میکروپروسسور نه نظر کارایی نه نظر اقتصادی عقلانیه! تازه فهمیدیم میکرو یعنی چی

انتخاب میکرو(مناسب ربات ما:

در انتخاب میکرو فاکتورهای زیادی دخیله: ۱-هزینه  ۲-سرعت  ۳-کارایی قابلیت ها  ۴-راحتی کار و... حال حاضر در بازار ایران میکروهای متنوعی ازجمله ۸۰۵۱ اینتل٬ PIC میکروچیپ تکنولوژی AVR شرکت ATMEL هواخواهان زیادی دارن. همچنین امارها نشون داده ساخت ربات اکثرا PIC استفاده شده (در امریکا :)) ولی من خوام پروژه رو AVR انجام بدم چون تقریبا کم هزینه (۳۵۰۰) هستش٬ کارایی مناسبی داره٬ برنامه نویسی برا اون اسونه (هم C داره Basic تازه کلی نرم افزار Emulator, Simulator ,... داره) تازه پروگرمر ائن بسیار ساده کم خرجه. حال فکر نمی کنم نوع میکرو تفاوتی نقشه مدار و.. بزاره بجز کد کامپایلر میکرو سعی کنم مال PIC حتی ۸۰۵۱ رو کنار AVR زمیمه کنم. پس کسایی AVR کار نکردن اصلا نگران نباشن.راستی یادم رفت بگم برا ربات از AVR مدل Atmega32 استفاده خواهم کرد (مفت ۳۵۰۰ اموزش برنامه نویسی اون وجود کامپایلرهای متنوعی چون Bascom (بیسیک) CodeVision (سی) من Bascom رو انتخاب کنم تازه کارهای برنامه نویسی مشکلی نداشته باشن (بیسیک دیگه کاری نداره!). فکر نمی کنم چیزی ناگفته مونده باشه! پس جلسه بعد اموزش ساخت پروگرمر یکم اموزش برنامه نویسی AVR ٬البته فقط حد کار خودمون -ربات- رو خواهیم داشت.

جلسه قبل کمی میکرو میکروی مناسب کار خودمون صحبت کردیم. جلسه خوام طور کلی تر راجع قابلیت میکروی AVR بخصوص مدل Atmega32 صحبت کنم. بزارین بعضی از قابلیت مهم مربوط کار خودمون رو بصورت لیست بنویسم:

کارایی بالا توان مصرف کم

سرعت بسیار بالا نسبت سایر میکروها

32K حافظه فلش داخلی قابل برنامه ریزی

پایداری حافظه فلش: قابلیت 10000 بار نوشتن پاک کردن

2K حافظه داخلی SRAM

2 تایمر-کانتر 8 بیتی یک تایمر-کانتر 16 بیتی

.....

برنامه نویسی

Atmega32:همونطور گفته بودم برنامه نویسی میکرو Basic کامپایلر معروف Bascom استفاده کنم (لینک دریافت فایل کامپایر رو اخر پست گذاشتم). چون من خوام خیلی گزرا چند تکنیک وتابع زبان اون برنامه نویسی رباتمون استفاده میشه اشاره کنم اصلا وقت نمیشه موضوع یکی یکی ابزارهای محیط کامپایلر توضیح بدم. اما اینده اموزش پروپه دیگه حتما اونا رو پوشش خواهم داد.

همونطور بینید فقط 7 منو قرار File, Edit, Program, Options, Tools, Window, Help داره. منوی File, Edit, Window, Help تمام برنامه ویندوز مو نمی زنه پس اینا هیچ :). منوی Options اسمش پیداست تنضیمات کامپایلر معرفی نوع مدل میکرو و.. هست البته هنگام پروگرام کردن میکرومون سراغش میایم توضیحات کافی رو میدم. مونه منوی Program درواقع گزینه کامپایل کد, Syntax Check شبیه سازی داره مجرد شروع برنامه نویسی باهمینا باید سروکله بزنیم.حتما Bascom رو دریافت فایل کنید یکم وارسیش کنید چون پس فردا برگشتم دیگه تفره نمی رم دیگه اموزش کد نویسی رو خواهیم داشت اون یکی دو جلسه بیشتر طول نمی کشه بعد میریم سر مباحث الکترونیکی رباتمون. اما باور کنبد لذت برنامه نویسی سروکله زدن میکرو اونم AVR چیزی کم ساخت ربوت نداره

بدنه یک برنامه محیط

Bascom:منظور بدنه حداقل کد یک برنامه هستش بدون هیچ فرمانی)  بدنه یک برنامه محیط Bascom شامل تعیین نوع میکرو استفاده٬ کریستال٬ پایان گزینه اختیاری دیگری زیر معرفی میشن.

معرفی میکرو:

برای شروع یک برنامه محیط Bascom ابتدا بایستی میکروی نظر تعریف گردد. چون توصیه من استفاده مدل ATMEGA16|32|128 بود٬ بنابراین فعلا به علت زیق در همه چی فقط به تعریف همین ۳ مدل بسنده کنم:

$REGFILE = VAR       'فرم کلی تعریف٫ "وار" یه رشته معرف مدل خاص میکروی مورد نظر هستش$REGFILE =  "M16def.dat"       'MEGA 16 MCU برا مدل$REGFILE =  "M32def.dat"       'MEGA 32 MCU برا مدل$REGFILE =  "M128def.dat"     'MEGA 128 MCU برا مدل

کریستال:

برای مشخص کردن فرکانس کریستال (میکرو باید یه قطعه خارجی بنام کریستال وصل بشن) استفاده شده برحسب هرتز دستور CRYSTAL = X$ استفاده نماییم X فرکانس کریستال استفاده شده حسب هرتز است. خوشبختانه AVR دارای یک کریستال 1MHZ داخلی هستش واقعا یک نعمته! اما حتی برای استفاده اون باید دستور رو بکار ببریم. مثال:

$CRYSTAL = 100000        '1MHz internal$CRYSTAL = 140000        '14MHz external

یاداشت(اختیاری): گاهی نیاز یاداشتهایی اطلاعات بیشتر برنامه اضافه کنید٬ Bascom هم مثل بیسیک تونید علامت " ' " REM اینکارو انجام بدید. درست مثل یادداشت اضافی من مثالهای قسمتهای قبل استفاده کردم! مثال:

Print "Hello World"      'این دستور بعدا معرفی میشه  

REM یه مدل دیگه یادداشت اختیاریه

همچنین پایان هر برنامه باید کلمه END استفاده کنید مثل یک حلقه پایان عمل کنه (مثلا سی باید همیشه یه حلقه درست کنی. یه کار تکراری) و دلیل استفادش چه کامپایر میکرو چه سایر کامپایلرها میکروهای دیگه٬ اینه سیستم برنامه میکرو کامپیوتر فرق فوکوله و اگه END حلقه پایان استفاده نکنیم برنامه همینطور میره پایین سایر ادرس حافظه میکرو رو خیال ادامه برنامه میخونه باعث Error میشه دیگه! پس End یادتون نره!خوب دیگه گزینه اجباری بدنه تغریبا چیزی نموند اینجلسه کافیه! جلسه بعد اموزش نحوه تعریف شرط حلقه ... Bascom رو داریم پس حتما مطلب رو دنبال کنید.

پیکربندی پورتها:

همونطور شکل مقابل بینید میکروی AVR (مدل ATMEGA32) داری ۴۰ پایه هستش ۳۲ پایه اون می تونه چهارتا پورت موجود اون استفاده میشه. ۴ پورت مانند شکل صورت PA, PB, PC, PD نامگزاری شده اند البته هر کدام پورتها دارای ۸ پین (۸X۴=۳۲) هستند. درواقع هر پورت رو باید صورت یک بایت نظر گرفت هر پین رو صورت یک بیت (حتما دونید هر بایت، ۸ بیت هستش!) فرض کرد هر کدوم ۳۲ پایه میکرو مربوط پین خاصی یک پورت است. Bascom نماد پورتها صورت portx X یکی حروف A..D هست بکار میره نماد پین هر پورت صورت portx.y اینجا X مثل بالا هستش y شماره پین ۰ ۷ میباشه (۰تا۷ میشه ۸تا). مثال:

 PortB = 10         'set portb to 10 PortC.0 = 0        'Set pin 0 of portC to 0 PortC.4 = 1        'Set pin 4 of PortC to 1

نکته دیگه باید دقت کنید اینه پورت یک بایتی هستند یعنی نهایت عددی میشه اونا قرار داد ۲(۱۱۱۱۱۱۱۱) درمبنای باینری ۲۵۵ مبنای دهدهی خودمون هست. وقتی عدد ۲(۱۱۱۱۱۱۱۱) ۲۵۶ رو مثلا پورت سی قرار بدیم تمام پین پورت ۱ میشن اگر باز عدد ۱۷ معادل ۲(۰۰۰۱۰۰۰۱) رو اون قرار بدیم (PortC=17) انگاه پینهای ۰ و ۴ پورت یک خواهند شد. فکر کنم فهمیده باشید قضیه از چه قراره :) فقط باید یکم تبدیل باینری دهدهی برعکس رو بلد باشید... اما اگر هنوز کار میکروکنترلر رو درک نکردید اصلا نمیدونید حالا یک شدن هر پین چه درد خوره اصلا نگران نباشید چون موقع توضیح خواهم داد

روباتیک

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

 

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