دانلود ‫پروژه طراحی و ساخت ربات هوشمند I.RM

Word 1 MB 18337 55
مشخص نشده مشخص نشده کامپیوتر - IT
قیمت قدیم:۲۴,۰۰۰ تومان
قیمت: ۱۹,۸۰۰ تومان
دانلود فایل
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • محل اجرای طرح : شهرستان میانه ساختمان شماره یک منطقه دو دانشگاه آزاد اسلامی
    همکاران طرح :
    1- مهندس مجید شکوفی ( مربی )
    2- حاتم قضائی ( دانشجوی رشته کامپیوتر )
    3- غلامرضا چمن خواه ( دانشجوی رشته کامپیوتر )

    تاریخ ارائه طرح به واحد : 30/10/1381
    تاریخ شروع طرح : 25/2/82
    تاریخ تحویل طرح : 25/4/83
    کل بودجه طرح : -/000/675/9 ریال
    ربات I.R.M یک نمونه از رباتهای متحرک هوشمند است .

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

    فرآیند پردازش تصویر یک اصل اساسی در علم هوش مصنوعی ( هوش ماشینی ) و رباتیک است که پیشرفت این علوم وابسته به پیشرفت علم پردازش تصویر ( Image processing ) می باشند ، این عمل در این ربات بدین صورت است که تصاویر محیط اطراف توسط دوربین دریافت و به کامپیوتر ارسال و توسط نرم افزار فیلتر می شوند ، سپس عمل اسکن و پردازش آنها با نرم افزار نوشته شده صورت می گیرد و تصمیمات لازم با استفاده از نتایج این پردازش ها جهت کنترل ربات به برد کنترل که در روی ربات قرار دارد ارسال می شوند ، درشت فرمانهای ارسالی از سوی کامپیوتر را میکرو کنترلر دریافت کرده و پس از آنالیز آنها به قسمتهای مورد نظر اعمال می دارد .

    ربات I.R.M علاوه بر مشخصه پردازش تصویر، دارای یک سیستم مکانیکی جدید با امکانات زیاد و انعطاف بالا ، برای کار در محیطهای مختلف و سازگاری با شرایط مختلف می باشد .

    در تنه فیزیکی سیستم از 6 عدد Stepper Motor و 3 عدد DC Motor کوچک با بهره بهینه ، صفحات آلومنیومی برای ساخت کف ربات و قوطیهای آلومنیومی برای بازوها و آلات متحرک ربات ، تسمه ها و چرخ دنده ها و قطعات پلاستیکی و .....

    ، استفاده شده است .

    ربات با پورتهای سریال و TV کارت کامپیوتر با سیم در ارتباط است ، منبع تغذیه نیز در بیرون قرار دارد و با سیم ربات را تغذیه می کند .

    ارتفاع فیزیکی ربات در حالت عادی و موقعی که حرکت می کند 75 Cm و محدوده مانور پنجه از 12- تا 95+ Cm می باشد و در حالت توقف از شعاع 0تا 55 cm از محیط را در دسترس خود دارد .

    وزن تقریبی ربات 5/0±7 کیلوگرم می باشد .

    دارای 4 چرخ که دوعدد آن بزرگ ( کوپل به موتورها ) در طرفین و دو عدد دیگر ، کوچک ( هرز گرد ) در جلو و عقب ربات ، می باشد.
    ولتاژ کار ربات از یک منبع تغذیه با خروجیهای 12 ولت1 و 3 آمپری و 5 ولت منطقی تامین می شود که همه ولتاژهای مورد نیاز از یک منبع تغذیه دیجیتالی ( موجود در آزمایشگاههای برق ) قابل تامین است .
    هدف از اجرای این طرح :
    در کل اهدفی که از اجرای این طرح دنبال می شد :
    1- ایجاد یک مسیر تجربی رباتیک برای دانشجویان مستعد در این زمینه .
    2- کسب تجارب و ثبت و مکتوب نمودن آنها برای تحقیقات بعدی در زمینه رباتیک .
    3- فراهم نمودن فرصتی برای عینیت بخشیدن به خلاقیتهای دانشجویان .
    4- برداشتن گامی از سوی این واحد به سمت علم رباتیک و بیان توان خود دراین زمینه .


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

    این طرح نیز نیازمند تغیرات جزئی برای انجام بود که تغیرات لازم بر روی آن صورت گرفته و طرح آماده برای اجرای عملی ، گشت .

    ملاکهای انتخاب طرح از این قرار بودند :
    1- بتوان طرح را با امکانات موجود در واحد و با هزینه اندک ساخت.
    2- ساخت و تکمیل آن در کوتاه مدت میسر باشد .
    3- قابلیت ارتقاء داشته و در محیطهاهی مختلف توانایی کار داشته باشد .
    4- دارای مکانیزمی جدید و ابتکاری باشد .
    طراحی جزء به جزء طرح :
    پس از انتخاب یک طرح کلی ، باید اجزای فیزیکی آن بر اساس نحوه کار و وظایف آن طراحی می شد .

    برای این کار ، لیستی از کارهایی که ربات مورد نظر باید انجام می داد به شرح زیر تهیه گشت :
    1- حرکت کردن به جلو و عقب
    2- دور زدن در یک نقطه ثابت
    3- حرکت دادن کل بازو در تمام نقاط محیط خود در شعاع کاری
    4- جلو و عقب بردن دست و متعلقات ربات در جهت افقی
    5- بالا و پائین بردن دست و متعلقات در جهت عمودی
    6- چرخاندن دست حول محور عمودی و افقی ، جهت برداشتن اشیاء با موقعیتها و اشکال مختلف
    7- باز و بستن پنجه و چرخاندن 360 درجه آن به تعداد دور نامحدود جهت پیچاندن و یا بستن اشیاء و ملزومات مورد نظر و .....


    در کل بر روی این ربات 9 قسمت متحرک مجزا از هم وجود دارد که باید برای هر کدام یک موتور و راه انداز جداگانه در نظر گرفته شود در ضمن حرکت این ربات باید بسیار دقیق باشد چون برای این ربات توان انجام کارهای ریز نیز در نظر گرفته شده است بنابراین باید موتورها و درایورهای بکار رفته در این بسیار دقیق باشند ، برای تعیین موتورهای این ربات مطالعه و بررسی کامل بعمل آمد و تصمیم بر آن شد که 6 بخش از آلات متحرک ربات بایستی باSTEPPER موتور و 3 بخش دیگر با DC موتور راه اندازی شوند .

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

    محور های انتقال نیرو هم بایستی حداقل تلفات انرژی محرکها را داشته باشند که این کار با استفاده از بلبرینگ و بوش عملی می باشد .


    بخش مکانیک ، تشریح و نحوه ساخت : یک ربات خوب در وهله اول باید یک اسکلت بندی مناسب و کار آمد داشته باشد ، یعنی در عین دارا بودن ایستایی و پایداری خوب توان تحت پوشش قرار دادن حداکثر فضای موجود در اطراف خود را داشته باشد .

    برای این کار نیاز به یک طرح ابتکاری بود ربات باید هم می توانست در یک نقطه ثابت حول خود گردش کند و هم می توانست کل بازوی خود را در حالت ایستاده چرخش 360 درجه به دور خود بدهد و در ضمن می بایست محور افقی بازوی خود را نیز می توانست در جهت افقی حرکت دهد ( شکل 1-9) .

    شکل 1-9 هر چهار موتور محرکهای چرخها در طرفین و گرداننده دورانی کل بازو و جلو عقب برنده تیر افقی بازو ، بایستی برای حفظ تعادل ربات بر روی کف شاسی قرار می گرفتند برای کار گذاشتن سه موتور اولی مشکل زیادی نبود چون هر سه آنها به صورت کوپل مستقیم بودند اما مقصد نیروی موتور چهارم در قسمت فوقانی میل عمودی قرار داشت که خود نقطه ثابتی نبود ، برای حل این مشکل از دو محور انتقال نیروی تودر تو استفاده شد محور پوستین از جنس لوله آهنی به طول 350 mm می باشد که ابتدای آن بایک بلبرینگ بر روی کف ربات بطور عمود ستون شده است این لوله از مرکز صحفه آلومنیومی ربات عبور کرده و در زیر ربات به یک چرخ تسمه دندانه دار که با تسمه دندانه دار به شفت موتور متصل است کوپل شده است انتهای بالایی این لوله به یک محفظه آلومنیومی ناودانی شکل که ریلهای تفلونی هم بر روی آن نصب هستند ، به صورت راه به در مهره شده است .

    محور دوم در داخل این لوله آهنی قرار دارد جنس این محور از استیل بوده و با دو بلبرینگ شماره 8 در بالا و پائین به داخل دیواره محور اولی تکیه داده و در حالت عادی آزادانه می چرخد .

    این میله مانند میله اولی از زیر به یک چرخ تسمه دیگر متصل می باشد و بدین ترتیب با تسمه ایی که با شفت موتور دیگر درگیر است نیروی محرکه موتور را با یک چرخ تسمه کوچکی که در انتهای بالاییش قرار دارد و با یک تسمه افقی ثابت درگیر است ، انتقال می دهد دو موتور محرک نیز به صورت متقارن بر روی کف شاسی قرار گرفته اند ( شکل 1-10 ) .

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

    بازوی افقی از جنس آلومنیوم قوطی به اندازه سطح مقطع 35×50 mm و به طول 550 mm ( بااحتساب موتور و ریل انتهایی 150mm±) که بر قاعده کوچک تحتانی یک صحفه آلومنیومی با عرض 5 mm بیشتر از طرفین عرض قوطی و به طول 400 mm به طور موازی پرچ شده است لبه های بیرون آمده از عرض که بخوبی سیقل داده شده اند، در داخل شیارهای تفلونهایی که در طرفین قرار دارند جای گرفته اند و در کل می توانند آزادانه به جلو و عقب لغزش داشته باشند ( شکل 1-11) .

    شکل 1-11 در انتهای عقبی بازوی افقی نیز یک موتور از نوع stepper موتور وجود دارد که عمل بالا و پائین بردن بازوی عمودی متحرک را انجام می دهد نیروی این موتور با یک تسمه به انتهای دیگر بازوی افقی با کاهش تعداد دور گردش و افزایش نیرو انتقال می یابد .

    در انتهای دیگر بازوی افقی یک میله بطور عمودی از انتهای بازو عبور کرده که بر روی دو بلبرینگ موجود در سر و ته آن روی قوطی محکم شده و آزادانه دوران می کند روی این میله و در داخل قوطی یک چرخ تسمه دندانه دار به قطر 25 mm قرار دارد دندانه های این چرخ با دنده های یک تسمه دندانه دار که به صورت باز بر روی قوطی متحرک عمودی ، ثابت شده است ، درگیر است که در این صورت با چرخش محور ( میله ) بازوی افقی نیز بالتبع حرکت خواهد کرد به سر این میله نیز یک چرخ دندانه دار بزرگ به قطر 80mm بسته شده است که با یک تسمه با موتور محرک در ارتباط است ( شکل 1-11 ) .

    و اما بازوی عمودی یعنی قسمت سوم متحرک بازو یک قوطی آلومنیومی با سطح مقطع مربعی35×35 mm و به طول 540mm ( با احتساب موتور فوقانی و بست پائینی ) و با مسافت بازی 480mm می باشد وظیفه این قسمت حرکت دادن دست ربات به ارتفاع مورد نیاز می باشد در بالای این قسمت یک موتور از نوع پله ایی با دقت 9/0 درجه نصب گردیده است که وضیفه اش چرخاندن کل دست به دور خود است این عمل باعث افزایش دسترسی به فضای محیط و قدرت مانور دست می شود .

    کل دست بر روی یک میله آلومنیومی گرد به قطر 8/0 mm و به طول 490 mm که از داخل یک بلبرینگ محصور در داخل و انتهای قوطی عمودی ، می گذرد ، سوار است انتهای این میله در داخل قوطی مستقیما با استفاده از یک لنگی گیر به شفت موتور پله ایی کوپل گردیده است ( شکل 1-13 ) .

    شکل 1-13 این بازو در میان یک قوطی آلومنیومی متصل به انتهای بازوی افقی با لبه های تفلونی به بالا و پائین می لغزد .

    دست ربات از سه تکه متحرک مجزا از هم تشکیل یافته که هر قسمت در نوبت خود بطور مجزا در جهات مختلف حرکت می کنند هر قسمت با یک DC موتور به حرکت در می آیند برای کاهش دور DC موتورها و افزایش نیروی آنها در هر قسمت از یک جعبه دنده استفاده شده است چرخ دنده های جعبه دنده ها برنجی ( چرخ دنده های موجود در داخل ساعتهای کوکی چینی ) و پلاستیکی می باشند بدنه گیربکس ها ( جعبه دنده ها ) نیز به اقتضا از پلاستیک و آلومنیوم ساخته شده است و برای کاهش اصطکاک در دنده ها و محورها تا حد ممکن از بوش و بلبرینگهای ریز استفاده شده است .

    دست ربات از قسمت مچ می تواند در جهت عمودی به میزان 90 درجه به بالا و پائین حرکت داشته باشد .

    پنجه دست نیز می تواند در حین باز و بسته شدن از میان فاصله مچ و پنجه به تعداد دور نامحدود در دو جهت چرخش داشته باشد که در یک ربات این مشخصه یک امتیاز محسوب می شود .

    پنجه دست دو اهرم باز و بسته شونده دارد که می تواند انواع پوسته ها را بر روی خود متناسب با اجسامی که سروکار خواهد داشت ، داشته باشد ) شکل 1-14) .

    شکل 1-14 بخش الکترونیک ، تشریح و نحوه ساخت : تا اینجا ما مکانیک برای ربات طراحی شده ساخته است که هر قسمت و مفصل آن با یک موتور مجزا به حرکت در می آیند در مجموع 9 عدد موتور الکتریکی بر روی ربات کار گذاشته شده که 6 عدد آنها از نوع پله ایی (stepper) می باشند و هر کدام به 1 آمپر جریان 12 ولتی نیاز دارند 3 موتور دیگر که از نوع DC می باشند با 6 ولت 200 میلی آمپری تغذیه می شوند هر موتور پله ایی دو فاز در حالت Bipolar (دو قطبی ) چهار سیم به عنوان ورودی دارد ( شکل 1-15 ) و معمولا با چهار حرف لاتینی A,B,C,D نمایش می دهند دو سر مگنت فاز اول نسبت به فاز دوم یک اختلاف فاز دارد که این اختلاف فاز را اصطلاحا درجه پله ( Step Angle) می نامند و نشان دهنده این است که موتور پله ایی در ازای هر پله چه کسری از 360 درجه ( یک دور کامل ) را طی می کند روتور بر روی خود تعدادی دندانه هایی از جنس فولاد سیلیکون متورق و مغناطیده شده دارد که هر دندانه با دندانه مجاور خود ناهمنام می باشد استاتور نیز دنده هایی همچون دنده های روتور دارد با این تفاوت که دنده های آن رو به داخل ، خنثی و یک عدد بیشتر از دندهای روتور می باشند در حالتی که یکی از دو بوبین فازها در یک جهتی حامل جریان می شود با پدید آمدن فلوی مغناطیسی دنده های غیر همنام در مقابل هم قرار می گیرند با خاموش شدن فاز اول و پاس دادن فلو به فاز دوم چون دنده ها با هم اختلاف فاز دارند به ناچار دنده ها از موقعیت اول خود به میزان اختلاف فازشان به حرکت در می آیند (شکلهای 2-15و 1،2-16) .

    .

    پس برای حرکت موتور پله ایی در جهات و با سرعتهای دلخواه بایستی به طور مداوم جریان را در فازها قطع و وصل نمود ( جدول 3-16 ) .

    برای درایو کردن موتور پله ایی یعنی اعمال ترتیبی جریان به فازها مطابق آنچه که در جدول آمده است نیاز به یک ریز پردازنده می باشد تا به طور دقیق اینکار را انجام دهد .

    برای انجام اینکار پس از تحقیق فراوان در این زمینه و استفاده ازسیستمهای متفاوت برای درایو کردن موتورها بالاخره یک مدار کار آمد طراحی و ساخته شد این مدار نسبت به مدارات قبلی مزایایی از قبیل کم حجمی ، ارزان بودن و قابلیت کار در سطوح مختلف ولتاژ و جریان را داشت .

    جدول نشان دهنده فلوی جریان در فازها برای حرکت در حالات مختلف قبل از تشریح مدار درایور موتورهای پله ایی شاید لازم باشد که دو عنصر بسیار پر کاربرد در این زمینه معرفی شود : اولی تراشه L297 ( شکل 1-17 ) محصول شرکت ST ، یک تراشه 20 پایه با قابلیتهایی از قبیل : 1- دارای یک Clock خارجی و یک اوسیلاتور داخلی برای پردازنده داخلی خود می باشد .

    2- قابلیت حرکت به صورت نیم پله و تمام پله را دارد.

    3- دارای فرمان راست گرد و چپ گرد می باشد .

    4- بارگذاری جریان به فرم سوئیچینگ می باشد .

    5- قابل برنامه ریزی برای نحوه بار گذاری جریان می باشد .

    6- به قطعات خارجی کمی نیاز دارد .

    7- دارای پایه های Reset و Home و Enable می باشد .

    دومی هم تراشه L298 ( شکل 2-17 ) محصول شرکت ST می باشد این تراشه نیز در نوبت خود کاربرد زیادی در درایو موتورهای پله ایی دارد از خصوصیات بارز این تراشه می توان به رنج کاری بالای آن در سطوح ولتاژ و جریان تا ( 46V,4A ) و همچنین سطح ولتاژ اشباع پائین و قابلیت کار در نویز و دمای بالا ، اشاره کرد .

    در نقشه علمی زیر نحوه اجتماع این دو قطعه و اتصالات با قطعات جانبی آنها و همچنین نحوه اتصال آنها به میکرو کنترلر نمایش داده شده است : این مدار بر روی یک برد سوراخ دار 22×10 به تعداد 6 عدد به طور یکسان مونتاژ شده است IC های L298 برای متعادل ساختن دمای کارشان به خنک کننده های آلومنیومی بسته و بر روی فیبر محکم شده اند .

    نکته ایی که در ساختن این بخش از مدار بایستی مد نظر داشت استفاده از مقاومتهای وات بالا برای مقاومتهای Sence1,2 می باشد کار این مقاومتها بار کردن میزان جریان مصرفی موتورها می باشد که زیاد بودن مقدار اهمی آنها موجب داغ شدن شدید موتور و آی سی L298 خواهد بود و در صورت کم بودن باعث Rip زدن موتور خواهد بود همه موتورهای پله ایی استفاده شده در این ربات 1 آمپری هستند پس مقاومت های مورد استفاده 33 اهم و 2 وات سیمی می باشند که در این درایور ها مطلوبترین نتیجه را دارند .

    نکته دیگر در مورد این مدار ولتاژ Reference آی سی L297 می باشد ، این ولتاژ جریان مورد نیاز مدار چاپر ( Chopper ) که در داخل پکیج L297 قرار دارد و عمل بار کردن جریان کاری کل مدار را بر عهده دارد ، می باشد .

    برای ساختن منبع این ولتاژ می توان دو مقاومت را مانند شکل زیر به هم وصل کرده و از تلاقی آنها خروجی را گرفت .

    خروجی چهار عدد از درایورها با سوکتهایی بر روی برد قابل مشاهده هستند و چهار موتور موجود بر روی کف ربات را درایو می کنند دو درایور دیگر خروجیهایشان پس از عبور به روی برد کنترل با کابل فلت کشیده شده در بازو به مقصد یعنی دو موتور پله ایی موجود در روی بازو می روند .

    و اما برای کنترل 3 موتور کوچک DC که بر روی دست ربات کار گذاشته شده اند از 6 عدد رله دو کنتاکت دوباز – دو بسته استفاده شده است ولتاژ تحریک این رله ها 5 ولت می باشد که مستقیما از خروجی گیتهای تراشه ULN2003 ( که ورودی آن هم مستقیما توسط پایه های میکرو کنترلر تحریک می شود) گرفته می شوند .

    چون رله ها از نوع NO - NC هستند بنابراین برای هر موتور از دو رله استفاده شده است یکی از رله ها معکوس دیگری عمل می کند یعنی اگر اولی تحریک شود موتور مورد نظر راست گرد و در حالت تحریک دومی به چپ گردش خواهد کرد .

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

    محل جای گرفتن رله های کنترل موتورهای DC بر روی برد درایورها می باشد که با رنگ زرد قابل رویت هستند .

    رله ها نیز خروجیهای خود را ( 6رشته سیم ) را از طریق کابل فلت رنگی روی بازو به مقصد یعنی موتورهای دست می رسانند .

    برد دیگری که روی ربات قرار دارد برد کنترل آن است که حاوی میکرو کنترلر و IC های رگولاتور و رله های سنسورها و درایورها و ....

    می باشد این برد با پورت سریال کامپیوتر در ارتباط است ( از طریق max 232 ) .

    روی این برد یک میکرو کنترلر At 89C51 قرار دارد این میکرو کنترلر که از خانواده 8051 و ساخت شرکت Atmel می باشد دارای 32 پورت ورودی و خروجی و قابلیت ارسال و دریافت سریال و سازگار با پورت سریال کامپیوترهای شخصی IBM نیز می باشد این تراشه 40 پایه ، 8 بیتی ، دارای 4کیلو بایت Flash ROM و 128 بایت RAM می باشد ( برای کسب اطلاعات بیشتر به کتاب : ( میکرو کنترلر 8051 تالیف محمد علی مزیدی ، جانیس گیلیسپی مزیدی ; ترجمه بهرام پاشایی ، محمد علی جبرئیل جمالی .

    – تهران : جهان نو ، 1380 مراجعه شود ) در این برد از 30 پورت میکرو کنترلر بهره گرفته شده است .

    اما وظیفه میکرو کنترلر در روی این ربات چیست ؟

    دستور تمام حرکات ربات بایستی از سوی کامپیوتر صادر گردد .

    صدور و دریافت دستورات و اطلاعات به درایورها و از سنسورها به صورت مستقیم از ربات به شیوه ( هر بیت یک سیم ) غیر ممکن و غیر عملی می باشد در ورای این کار بهتر آن است که بر روی ربات دستورات ریز و اطلاعات کد شده وجود داشته باشند میکرو کنترلر این کار را به راحتی انجام می دهد در داخل برنامه مقیم در حافظه میکرو روتین حرکت دادن موتور I ام به تعداد پله J در جهت D وجود دارد و فقط کافی است یک فرمان 8 بیتی به طور سریال از کامپیوتر به میکرو ارسال شود که باید 3 بیت آن مشخص کننده شماره موتور ، 4 بیت برای تعداد پله ها و یک بیت برای جهت حرکت موتور باشد .

    پایه های میکرو می توانند یکی از دوحالت 0 ( زمین ) و 1 ( +5v ) را داشته باشند برای ایجاد Clock مورد نیاز درایورها پایه ها به طور مستقیم به هم وصل می شوند .

    برای دادن فرمان راست گرد و چپ گرد به درایورها ( بالا و پائین نمودن پایه 17 L297 ) از رله های کوچک استفاده نمودیم .

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

    از موتورهای DC نیز دو عدد ( موتورهای محرک چرخاننده پنجه و حرکت دهنده دست در جهت بالا و پائین ) هر کدام دارای یک میکرو سوئیچ و یک انکودر و موتور دیگر ( موتور باز و بسته کننده پنجه ) دارای دو میکروسوئیچ برای تشخیص باز و بسته بودن پنجه ، می باشد پس برای خواندن اینها نیز به 6 پایه از میکروکنترلر به عنوان ورودی نیاز خواهیم داشت .

    برای ارتباط دهی فیزیکی بین ربات و کامپیوتر از یک کابل فلت رنگی بیست رشته استفاده شده است البته همه رشته های این کابل دارای وظیفه خاص نیستند بلکه برای بالا بردن ضریب اطمینان از چند رشته به طور مشترک برای کاری استفاده شده است .

    دریک سر کابل یک کانکتور 25 پین می باشد که بر مادگی نصب شده بر روی دیواره ربات ، متصل می شود در انتهای دیگر کابل یک Terminal Box وجود دارد که در داخل آن سیمها تفکیک شده و در مجموع چهار سیم از آن به عنوان ورودی و خروجی که هر کدام به قسمتی از کامپیوتر و منبع تغذیه باید متصل شوند ، بیرون می آید بر روی این جعبه سه عدد LED قرمز وجود دارند که هر کدام نشان دهنده وجود یا عدم وجود جریان های مختلف در سیمها می باشند .

    اتصال به کامپیوتر : همانطور که قبلا هم اشاره شد ربات از طریق کانکتور 9 پین پورت سریال RS232 ( Com1 یا Com2 ) در ارتباط است همانطوری که در شکل مقابل مشاهده می شود هر کدام از پینهای این کانکتور دارای وظیفه خاصی هستند ولی در اینجا از سه پین آن استفاده شده و بقیه نیز به صورت زیر به همدیگر وصل می باشند : پینهای 1،4و6 به همدیگر و پینهای 7و8 هم به همدیگر .

    از پین 3 به عنوان ارسال کننده داده ( متصل به پایه دریافت RXD میکرو کنترلر ) و از پین 2 هم به عنوان دریافت کننده داده ( متصل به پایه ارسالTXD میکرو کنترلر ) از پین 5 هم بعنوان مشترک زمین با میکرو استفاده شده است .

    نکته قابل ذکر در این زمینه این است که ولتاژ کار پورت سریال کامپیوتر TTL نبوده و در آن0 منطقی از3 - تا 25 – ولت و 1 منطقی از3 + تا 25 + ولت می باشد برای ارتباط این پورت با سیستم میکرو کنترلی بایستی از یک مبدل ولتاژ استفاده شود که در اینجا از تراشه MAX232 استفاده شده است .

    max 232 diagram بلوک دیاگرام داخلی میکرو کنترلرAT89C51 .

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

    برنامه مورد نظر ابتدا بایستی در یکی از محیطهای Text کامپیوتر نوشته و سپس با اسمبلر مخصوص میکروکنترلر 8051 اسمبل شده و پس از تبدیل آن به باینری توسط بار کننده برنامه در ROM میکروکنترلر قرار گیرد .

    میکروکنترلر در هنگام روشن شدن شروع به اجرای برنامه موجود در حافظه خود خواهد نمود .

    در اینجا به برنامه های کوچک که در پیکر اصلی برنامه مادر جای گرفته اند روتین گفته می شود .

    روتین زیر موتورهای پله ایی را هنگام روشن شدن ربات در موقعیت صفر( شروع ) قرار می دهد :»» Motor6: انتخاب حالت ساعت گرد برای موتور مورد نظر Setb p0.7; تامین فرکانس clock Acall delay ; تامین clock مورد نیاز درایور موتور مورد نظر با ایجاد فرکانس 20 KHz Cpl p2.5; تا زمانی که میکرو سوئیچ مربوطه 1 نشده این عمل را تکرار کنJnb p0.0,motor6; Motor2: انتخاب حالت ساعت گرد برای موتور مورد نظر Setb p1.0; تامین فرکانس clock Acall delay ; تامین clock مورد نیاز درایور موتور مورد نظر با ایجاد فرکانس 20 KHz Cpl p2.1; تا زمانی که میکرو سوئیچ مربوطه 1 نشده این عمل را تکرار کنJnb p0.1,motor2; Motor3: انتخاب حالت ساعت گرد برای موتور مورد نظر Setb p2.6; تامین فرکانس clock Acall delay ; تامین clock مورد نیاز درایور موتور مورد نظر با ایجاد فرکانس 20 KHz Cpl p2.2; تا زمانی که میکرو سوئیچ مربوطه 1 نشده این عمل را تکرار کنJnb p0.2,motor3; Motor4 انتخاب حالت ساعت گرد برای موتور مورد نظر Setb p2.7; تامین فرکانس clock Acall delay ; تامین clock مورد نیاز درایور موتور مورد نظر با ایجاد فرکانس 20 KHz Cpl p2.3; تا زمانی که میکرو سوئیچ مربوطه 1 نشده این عمل را تکرار کنJnb p0.3,motor4; حلقه تاخیر زمانی Delay: ; Mov r1,#10 Loop1: mov r2, #255 Loop2: djnz r2,loop2 Djnz r1,loop1 بازگشت به محل فراخوانی Ret ; End روتین صحفه قبل برای ست کردن موتورهای پله ایی بود حال یک روتین دیگر جهت ست کردن موتورهای DC در زیر آورده شده است : DC1: حرکت موتور به سمت بالا Setb p1.2 ; تازمانیکه میکرو سوئیچ مربوطه 1 نشده موتور را روشن نگه دارJnb P0.4, DC1 ; موتور مورد نظر خاموش شود clr p1.2 ; Dc2: حرکت موتور به سمت چپ Setb p1.3 ; تازمانیکه میکرو سوئیچ مربوطه 1 نشده موتور را روشن نگه دارJnb p3.7,DC2 ; موتور مورد نظر خاموش شود Clr p1.3 ; Dc3: موتور باز کننده پنجه روشن Setb p1.4 ; تازمانیکه میکرو سوئیچ مربوطه 1 نشده موتور را روشن نگه دارJnb p0.5,DC3 ; موتور مورد نظر خاموش شود Clr p1.3 ; End برنامه زیر کد اسکی یک کلید فشار داده شده از کی بورد را تشخیص داده و بر اساس تعریفی که شده است به موتور مورد نظر دستور گردش به راست یا چپ را می دهد کلیدهایی که کد آنها در این برنامه تعریف شده اند به ترتیب زیر می باشند : A,S,D,F,G,H,J,K,L,M,N,B,V,C,X,Z .

    org 000h ; mov tmod,#20h ; Initialization for serial mod & port >> timer 1 mod 2 mov th1,#-3 ; Buad rate = 9600 mov scon,#50h ; start bit = 1, data leghnt = 8 bit setb tr1 ; start timer 1 mov p2,#00h setb p3.4 here: jnb ri,here mov a,sbuf cjne a,#1100001b,back1 ; compare the recived data by A ascii code mov r3,#8 clr p1.1 clr p0.6 l1: cpl p2.0 cpl p2.4 acall delay1 djnz r3,l1 back1: cjne a,#1110011b,back3 mov r3,#8 setb p0.6 setb p1.1 l2: cpl p2.0 cpl p2.4 acall delay1 djnz r3,l2 back3: ;motor1 left mov p1,#00 cjne a,#1111010b,back4 setb p1.4 acall delay1 back4: ;motor1 right mov p1,#00 cjne a,#1111000b,back5 setb p1.7 acall delay1 back5: ;motor 2 left mov p1,#00 cjne a,#1100011b,back6 setb p1.3 acall delay1 back6: ; motor 2 right mov p1,#00 cjne a,#1110110b,back7 setb p1.6 acall delay1 back7: ;motor 3 left mov p1,#00 cjne a,#1100010b,back8 setb p1.2 acall delay1 back8: ; motor 3 right mov p1,#00 cjne a,#1101110b,back9 setb p1.5 acall delay1 back9: clr ri ljmp here delay1: mov r1,#50 loop1: mov r2,#255 loop2: djnz r2,loop2 djnz r1,loop1 ret end برنامه اسمبلی ارائه شده در صفحه قبل که بایستی بر روی میکرو کنترلر بار شود کدی که به ازای هر بار فشار دادن کلیدی از صفحه کلید کامپیوتر ، از رابط سریال دریافت می کند با تمام کدهای اسکی تعریف شده مقایسه کرده و در صورت درستی گزاره روتین مربوط به آن را اجرا می کند .

    این برنامه اندکی کند عمل می کند چون بایستی به تعداد روتینها عمل مقایسه را انجام دهد .

    راه حل این است که 8 بیت داده دریافتی را به صورت بیت به بیت پردازش شود .

    در میکروکنترلر 8051 می توان به تک تک بیتهای رجیستر A دسترسی داشت با استفاده از این قضیه می توان به صورت قراردادی جدول زیر را برای هر بیت از 8 بیت فرمان ارسالی تعریف کرد :

  • 1- چکیده طرح پژوهشی ....................................................... 4
    2- هدف از اجرای این طرح .................................................. 6
    3- طراحی اولیه ................................................................. 7
    4- طراحی جزء به جزء سیستم ............................................... 8
    5- بخش مکانیک ، تشریح و نحوه ساخت .................................. 9
    6- بخش الکترونیک ، تشریح و نحوه ساخت .............................. 15
    7- اتصال به کامپیوتر .......................................................... 22
    8- برنامه های کنترلی برای راه اندازی اولیه .............................. 24
    9- نصب دوربین ............................................................... 28
    10- پردازش تصویر .............................................................29
    11- شرح برنامه پردازش تصویر ............................................ 32
    12- منابع ........................................................................... 44

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

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

ربات چیست؟ ربات یک ماشین هوشمند است که قادر است در شرایط خاصی که در آن قرار می گیرد، کار تعریف شده ای را انجام دهد و همچنین قابلیت تصمیم گیری در شرایط مختلف را نیز ممکن است داشته باشد. با این تعریف می توان گفت ربات ها برای کارهای مختلفی می توانند تعریف و ساخته شوند.مانند کارهایی که انجام آن برای انسان غیرممکن یا دشوار باشد. برای مثال در قسمت مونتاژ یک کارخانه اتومبیل سازی، قسمتی ...

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

مقدمه اين مجموعه شامل مطالبي در باره ي ساخت ربات هاي کوچک و مثال هايي از ساخت ربات هاست .هر ربات براي هوش و حرکت و کنترل موتور و استنبا طات حسي از يک ميکروکنترلر PIC استفاده ميکند. با تعويض حسگر ها و برنامه ي ميکروکنترلر مي توانيم باغ وحشي

هدف اين مقاله بررسي علم رباتيک و آشنايي با دانش و فناوري وابسته به ابزارهاي مکانيکي کنترل شونده به وسيله رايانه مي‌باشد چون بعضي ها بدين باورند که ربات ها حتماً ماشين هاي سيار انسان نما هستند که تقريباً قابليت انجام هر کاري را دارند. انتظار مي رود م

درآمد حاصل از فروش سيستم هاي ماشين بينايي و متعلقات وابسته در سال 1986 بيش از 400 ميليون دلار بوده و اين رقم تا سال 1991 بالغ بر 2 ميليارد دلار شده است. کاربرد ماشين بينايي در مواردي مثل مونتاژ محصولات ، بازرسي و انتقال مواد ، باعث بهبود کارايي اين

تاريخچه Linux در سال 1991، يکي از دانشجويان دانشگاه هلسينکي به نام Linus Torvalds که از سيستم عامل موجود ناراضي بود به فکر افتاد که از سيستم عامل براي کارهاي خود استفاده کند. Unix يک سيستم عامل قدرتمند محسوب مي شد، ولي قيمت ان گران بود.بنابر اين To

هوش محاسباتي يا (Computational-Intelligence) CI به معناي استخراج هوش، دانش، الگوريتم يا نگاشت از دل محاسبات عددي براساس ارائه به روز داده‌هاي عددي است. سيستم‌هايCI در اصل سيستم‌هاي ديناميکي مدل آزاد (Model-free) را براي تقريب توابع و نگاشتها ارائه م

RSS 2.0 عمران-معماري خاکبرداري آغاز هر کار ساختماني با خاکبرداري شروع ميشود . لذا آشنايي با انواع خاک براي افراد الزامي است. الف) خاک دستي: گاهي نخاله هاي ساختماني و يا خاکهاي بلا استفاده در

ثبت سفارش
تعداد
عنوان محصول