رده:رایانه

از مشروطه
پرش به ناوبری پرش به جستجو

􀂺􀃋􀂁􀁚􀂈􀁝 􀁛􀁚􀃋 􀂀􀃌􀂈􀂻 􀁣􀁚􀁝􀁿 􀂮􀃋 􀃄􀂿􀃂􀂴􀁱 www.iranrobotic.com 1 علی معیری – بهمن ماه سال 1384 􀀮􀀮 􀂺􀂺􀃋􀃋􀂁􀂁􀁚􀁚􀂈􀂈􀁝􀁝 􀁛􀁛􀁚􀁚􀃋􀃋 􀂀􀂀􀃌􀃌􀂈􀂈􀂻􀂻 􀁣􀁣􀁚􀁚􀁝􀁝􀁿􀁿 􀂮􀂮􀃋􀃋 􀃄􀃄􀂿􀂿􀃂􀃂􀂴􀂴􀁱􀁱 مقدمه : برای ساختن یک ربات باید آشنایی مقدماتی با 3 رشته مکانیک ، برنامه نویسی و الکترونیک آشنایی داشته باشیم البته نیازی نیست در تمامی این رشته ها خود تسلط داشته باشیم چنانچه شما عضو یک تیم هستید هریک از اعضای تیم باید در مهارت خود تسلط داشته باشند تا شما به نتیجه دلخواه و ایده آل خود برسید . در اینجا روش ساخت یک ربات همچنین تجربیاتی را که در این زمینه کسب کرده ام درا ختیار شما قرار خوا هم داد . همانطور که گفته شد بحث ما شامل سه بخش است . -1 مکانیک -2 الکترونیک -3 برنامه نویسی 􀂺􀃋􀂁􀁚􀂈􀁝 􀁛􀁚􀃋 􀂀􀃌􀂈􀂻 􀁣􀁚􀁝􀁿 􀂮􀃋 􀃄􀂿􀃂􀂴􀁱 www.iranrobotic.com 2 علی معیری – بهمن ماه سال 1384 مکانیک درمکانیک یک ربات مسیر یاب چند بخش وجود دارد مکانیک ربات مسیر یاب جزء ساده ترین مکانیک ها محسوب می شود این مکانیک شامل بخش های زیر است . -1 شاسی (یا بدنه ) که تمام اجزاء روی آن قرار خواهند گرفت ٢- موتور ها ٣- چرخ ها ۴- برد سنسور -1 شاسی یا بدنه : اینستف بخش در ساده ترین حالت می تواند یک طلق پلاستیکی یا چوب (تخنه سه لا) باشد که نسبتا سبک بوده و استحکام خوبی دارد . برد الکترونیکی شما روی آن پیچ می شود و موتور ها وچرخ ها به آن وصل می شود و برد سنسور در جای خود قرار می گیرد . -2 موتور ها : موتور های ربات یکی از مهمترین اجزاء ربات محسوب می شوند از سه نوع موتور می توان برای ربات استفاده کرد . می باشند و مستقیماً نمی توان آنها را به چرخ DC Motor موتور هایی که باید در این ربات ها استفاده شوند از نوع وصل کرد مگر اینکه توسط گیرباکس از سرعت آنها کم شود و به قدرت آنها اضافه شود -1 موتور های اسباب بازی ها و گیرباکس آن ها در ساده ترین حالت شما می توانید گیرباکس اسباب بازی هارا باز کرده و از آن ها استفاده کنید فقط اگر از این روش استفاده می کنید دقت کنید گیرباکس ها کاملاً روان باشند و موتور ها نیز جریان کشی بالایی نداشته باشد . اگر موتور ها جریان کشی بالایی دارند بهتر است از یک موتور دیگر استفاده کرد . ٢- گویی وپولی : روش دیگری که می توان استفاده کرد استفاده از گویی وپولی ها است که از تسمه برای وصل کردن وتبدیل دور استفاده می شود این روش هم خالی از مشکل نیست این روش توصیه نمی شود . 􀂺􀃋􀂁􀁚􀂈􀁝 􀁛􀁚􀃋 􀂀􀃌􀂈􀂻 􀁣􀁚􀁝􀁿 􀂮􀃋 􀃄􀂿􀃂􀂴􀁱 www.iranrobotic.com 3 علی معیری – بهمن ماه سال 1384 ٣- موتور های گیرباکس دار : در این موتور ها موتور و گیرباکس داخل یک مجموعه قراردارند و در دورهای مختلف با توان های مختلف عرضه شده اند بهترین گزینه استفاده از این نوع موتور ها می باشد . چرا که یک مجموعه مطمئن است . بی صدا و حجم کمی را اشغال می کنند و معمولا جریان کشی مناسبی دارند و تنها مشکل آن ها قیمت بالای آن ها است . نکته 1 : دقت کنید موتور های معمولی را مستقیماً به چرخ وصل نکنید زیرا آن ها دارای سرعت بالا ( 2000 تا 3000 ) دور در دقیقه ولی قدرت لازم برای حرکت را ندارند . نکته 2 : شما در یک ربات مسیر یاب به 2 موتور نیاز دارید یکی برای موتور سمت راست ودیگری برای موتور سمت چپ می باشد . بهتر است موتور ها و چرخ ها در عقب ربات نصب شوند و چرخ هرزگرد و برد سنسور در جلوی ربات نصب شوند. -3 چرخ ها : برای یک ربات موفق مسیر یاب چند نکته حائز اهمیت است : -1 اندازه قطر چرخ ها -2 اندازه عرض چرخ ها -3 میزان اصطحکاک چرخ با زمین 1 –قطر چرخ ها : بهتر است اندازه چرخ ما طوری تعیین شود که با موتور ها هماهنگی کاملی داشته باشد چون هرچه قطر چرخ ها بیشتر باشد با یک دور چرخش موتور ربات به مقدار بیشتری حرکت کند و هرچه چرخ ها کوچکتر باشد حرکت ربات کمتر است . پس اندازه چرخ ها با سرعت ربات نسبت مستقیم دارد. -2 عرض چرخ ها بهتر است بین 1 تا 2 سانتی متر باشد چون هرچقدر عرض چرخ ها بیشتر باشد هم وزن چرخ بیشتر می شود و سطح اصطحکاک بیشتری با زمین پیدا می کند . -3 برای اینکه باستیکها سر نخورند بهتر است چرخی را انتخاب کنید که اصطحکاک بسیار بالایی بازمین داشته باشد . نکته کنکوری : ساده ترین روش برای بالا بردن اصطحکاک چرخ با زمین استفاده از چسب برق از جهت چسبنده روی چرخ است که چرخ کاملاً برروی زمین بچسبد و اصطحکاک زیادی داشته باشد . چرخ هرزگرد : این نوع چرخ چرخی است که فقط وظیفه حفظ تعادل ربات را بر عهده دارد و باید کمترین اصطحکاک را بر با زمین داشته باشد تا در زمانی که ربات به سمت راست یا چپ گردش داشت گشتاور کاملی داشته باشد یکی از نمونه های چرخ هرزگرد ساچمه یا بلبرینگ است . -4 برد سنسور : این برد در جلوی رباب نصب می شود و باید فاصله استاندارد از سطح زمین را داشته باشد تا بهترین بازده از لحاظ وضعیت خط زیر ربات را به ما ارائه دهد . 􀂺􀃋􀂁􀁚􀂈􀁝 􀁛􀁚􀃋 􀂀􀃌􀂈􀂻 􀁣􀁚􀁝􀁿 􀂮􀃋 􀃄􀂿􀃂􀂴􀁱 www.iranrobotic.com 4 علی معیری – بهمن ماه سال 1384 نکات مهم درباره کانیک و نوع بستن آن -1 حتماً مکانیک کاملا محکم بسته شود -2 چنانچه از چسب استفاده می کنید سعی کنید از چسب به همراه بست استفاده کنید و مهره استفاده کنید Spacer -3 برای اتصال برد ها به بدنه اصلی حتماً از پیچ و مهره و یا -4 برای محکم شدن اتصالات و جلوگیری از بازشدن آنها از واشر فنری استفاده کنید باعث اتصالات در مدار شما شوند از واشر فیبری استفاده کیند Spacer -5 در جاهایی که ممکن است مهره یا 􀂺􀃋􀂁􀁚􀂈􀁝 􀁛􀁚􀃋 􀂀􀃌􀂈􀂻 􀁣􀁚􀁝􀁿 􀂮􀃋 􀃄􀂿􀃂􀂴􀁱 www.iranrobotic.com 5 علی معیری – بهمن ماه سال 1384 الکترونیک نکته : • سعی کنید از فیبر های سوراخ دار برای برد اصلی استفاده نکیند به این دلیل که سیم های زیادی استفاده می شود و چنانچه یک سیم قطع شود ربات شما به درستی کار نمی کند • به این نکته توجه داشته باشید مدار الکترونیکی شما حتما در مقابل نویز مقاوم باشد چون مدار درایور موتور موتور ها نویز شدیدی در مدار ایجاد می کنند DC و تجربه ندارید بهتر است از برد های آماده یا برد های آموزشی IC • چنانچه در طراحی و ساختار مدار و استفاده کنید نمونه یک برد آموزشی با 8051 AVR نمونه یک برد آموزشی با الکترونیک مدار ربات مسیر یاب از بخش های زیر تشکیل شده است -1 مدار تغذیه -2 مدار درایور موتور -3 بخش خروجی ها -4 میکروکنترلر -5 مقایسه گر های آنالوگ -6 مدار برد سنسور 􀂺􀃋􀂁􀁚􀂈􀁝 􀁛􀁚􀃋 􀂀􀃌􀂈􀂻 􀁣􀁚􀁝􀁿 􀂮􀃋 􀃄􀂿􀃂􀂴􀁱 www.iranrobotic.com 6 علی معیری – بهمن ماه سال 1384 مدار تغذیه : این بخش از مدار وظیفه تبدیل ولتاژ ورودی مدار به برق 5 ولت را برعهده دارد برق مدار شما باید 5 ولت باشد به این دلیل که میکرو کنترلر شما و اکثر المان های برد با برق 5 ولت کار می کنند برای این تبدیل ولتاژ بهتر است از رگولاتور 7805 استفاده و برای گرفتن نویز مدار یک خازن با ظرفیت بالا ( با این بخش موازی کنیم LED 2000 ) و یک خازن با ظرفیت بسیار پایین با مدار موازی کنیم ، بهتر است یک uf تا وضیعت روشن یا خاموش بودن مدار کاملا مشخص باشد در این مدار فقط خازن با ظرفیت پایین با مدار موازی شده که بهتر است یک خازن با ظرفیت بالا بعد از رگولاتور با مدار موازی شود -1 مدار درایور موتور یکی دیگر از مهمترین بخش های یک ربات بخش درایور موتور است . وظیفه این بخش تأمین ولتاژ و جریان مورد نیاز های موتور است و توسط میکروکنترلر کنترل می شود میکروکنترلر مستقیما نمی تواند برق موتور ها را تأمین کند برای راه اندازی موتور ها از 2 روش استفاده می شود • رله رله ها قطعات الکترو مکانیکی هستند که با وصل کردن برق رله اتصال دو سیم رله متصل می شود و برق به موتور های ما وصل می گردد استفاده از رله چند عیب دارد ، سرعت قطع و وصل شدن رله کم است و نمی توان از آن به صورت استفاده کرد ، موتور ها را نمی توانیم به صورت 2 جهته کنترل کنیم یعنی هم به صورت PWM چپ به راست و هم راست به چپ تنها حسن رله مدار ساده آن و قدرت بالا در جریان دادن و ولتاژ آن است 􀂺􀃋􀂁􀁚􀂈􀁝 􀁛􀁚􀃋 􀂀􀃌􀂈􀂻 􀁣􀁚􀁝􀁿 􀂮􀃋 􀃄􀂿􀃂􀂴􀁱 www.iranrobotic.com 7 علی معیری – بهمن ماه سال 1384 های درایور موتور IC • ترانزیستور ها یا های درایور موتور می توان موتور ها را کنترل کرد بهترین گزینه برای IC با ترانزیستور ها یا 3 آمپر ) می باشد که می توان ) L 1 آمپر) و آی سی 298 ) L کنترل این موتور ها آی سی 293 کنترل کرد (Bidirectional) موتور های را به صورت 2 جهته چرا باید از موتور ها به صورت 2 جهته استفاده کینم ؟ چنانچه بخواهیم ربات ما مستقیما به جلو حرکت کند کافی است 2 موتور را روشن کنیم چنانچه بخواهیم ربات به سمت راست بچرخد می توانیم موتور سمت راست را خاموش کنیم و موتور سمت چپ روشن باشد تا ربات به سمت راست گردش داشته باشد چنانچه بخواهیم ربات به سمت چپ بچرخد می توانیم موتور چپ را خاموش کنیم و موتور سمت راست روشن باشد تا ربات به سمت چپ گردش داشته باشد پس چرا موتور ها باید به صورت 2 جهته کنترل شود ؟ دلیل آن کاملا واضح است چنانچه بخواهیم ربات را با سرعت بالایی کنترل کنیم باید در پیچ های 90 درجه یا بیشتر از معکوس استفاده کنیم یعنی مثلا می خواهیم ربات به سمت راست بچرخد به جای خاموش کردن موتور سمت راست آن را به صورت معکوس روشن می کنیم یعنی موتور سمت راست به سمت عقب می چرخد و موتور سمت چپ به سمت جلو پس ما گردش با سرعت بالاتر و حول محور مرکز ربات را خواهیم داشت و همین مسئله در گردش به سمت چپ صدق می کند -2 بخش های ورودی و خروجی ها باشد که بتوانیم خروجی های یک ربات و وضعیت های آن را LED و LCD این بخش ها می تواند شامل مشاهده کنیم تا بتوانیم راحت تر مشکلات ربات را بررسی و برطرف کنیم البته این بخش یک بخش اختیاری در ربات است ولی بودن آن بسیار مفید است و کمک می کند 􀂺􀃋􀂁􀁚􀂈􀁝 􀁛􀁚􀃋 􀂀􀃌􀂈􀂻 􀁣􀁚􀁝􀁿 􀂮􀃋 􀃄􀂿􀃂􀂴􀁱 www.iranrobotic.com 8 علی معیری – بهمن ماه سال 1384 -3 میکروکنترلر : میکرو کنترلر در حقیقت مغز ربات ما می باشد و طبق برنامه که ما به آن می دهیم ربات را کنترل می کند یعنی شامل فرایند دریافت ورودی از سنسور ها ، پردازش توسط برنامه ای که ما برای آن مشخص کرده ایم و خروجی دادن به موتور ها می شود میکرو هایی که معمولا در ربات های مسیریاب استفاده می شود از 2 خانواده هستند میکرو هایی که معمولا در ریات های مسیریاب استفاده می شود از 2 خانواده هستند 1. میکروکنتر های 8051 AVR 2. میکرو کنترهای خانواده را به چند دلیل پیشنهاد می کنیم AVR البته ما میکرو کنترلر 1. مدار ساده تر نسبت به خانواده 8051 2. داشتن مبدل آنالوگ به دیحیتال سخت افزاری PWM 3. داشتن 4. داشتن مدار پروگرامر ساده Noise 5. تکنولوژی بالاتر در طراحی میکرو و مقاوت بیشتر در مقابل های رایج در خانواده IC 89 اشاره کرد و از c 89 یا 51 s های رایج در خانواده 8051 می توان به 51 IC از اشاره کرد Mega و 32 Mega به 16 AVR را Noise نکته مهم در استفاده از میکرو ها این است که باید مدار آن طوری بسته شود که کمترین میزان شدن Reset ها نسبت به نویز یا تغیرات ولتاژ بسیار حساس هستند و می تواند باعث IC داشته باشد چون این با هنگ کردن میکرو شوند 􀂺􀃋􀂁􀁚􀂈􀁝 􀁛􀁚􀃋 􀂀􀃌􀂈􀂻 􀁣􀁚􀁝􀁿 􀂮􀃋 􀃄􀂿􀃂􀂴􀁱 www.iranrobotic.com 9 علی معیری – بهمن ماه سال 1384 نقشه مدار یک ربات مسیر یاب با میکرو 8051 ها Opamp مدار مقایسه گر آنالوگ این مدار در صورتی مورد نیاز است که از میکرو های خانواده 8051 استفاده کنیم در این مدار خروجی سنسور ها با یک ولتاژ متغیر که توسط یک مقاومت متغیر ساخته شده مقایسه می شود و خروجی آنالوگ ولتاژ سنور ها به صفر یا یک تبدیل شده که برای میکرو قابل فهم است اشاره کرد ( 2 مقایشه LM 4 مقایشه کرد در یک گیت) یا 558 ) Lm های رایج می توان به 324 Opamp از کرد در یک گیت) به دلیل داشتن مبدل آنالوگ به دیجیتال ما ولتاژ را در میکرو به صورت یک عدد بین 0 AVR در میکرو های تا 1023 دریافت می کنم که 0 به عنوان 0 ولت و 1023 به عنوان ولتاژ مرجع ( 5 ولت ) است مدار سنسور این مدار به عنوان یکی از بخش های مهم در ربات شناخته می شود و وظیفه این بخش مشخص کردن وضعیت حالت زیر سنسور است که آیا سفید است یا مشکی ؟ برای مشخص کردن این وضعیت از 2 نوع سنسور می توان استفاده کرد Photocell .1 فوتوسل یک مقاومت متغیر است که نسبت به تغیرات شدت نور حساس است مقدار مقاومت آن تغییر می کند اگر بخواهیم از این سنسور استفاده کنیم باید از یک فرستنده که نور مرئی به زمین 􀂺􀃋􀂁􀁚􀂈􀁝 􀁛􀁚􀃋 􀂀􀃌􀂈􀂻 􀁣􀁚􀁝􀁿 􀂮􀃋 􀃄􀂿􀃂􀂴􀁱 www.iranrobotic.com 10 علی معیری – بهمن ماه سال 1384 می تابند استفاده کنیم و اندازه بازتاب نور را توسط فتوسل اندازه گیری کینم که این کار دقت بالایی ندارد و نور مرئی مستقیما نباید با گیرنده در ارتباط باشد و یکی دیگر از مشکلات این روش این است که خروجی سنسور های ربات در شرایط مختلف نوری تغییر می کند و نور محیط بر آن تاثیر مستقیم دارد 2. سنسور های مادون قرمز این سنسور ها در مقایسه با سنسور های فتوسل موفق تر هستند و از کیفیت بالاتری برخوار هستند چون از نور مرئی استفاده نمی کنند و نور محیط تاثیر بسیار کمی در آن دارد بهترین نوع این سنسور ها – سنسور های فرستنده و گیرنده در یک پک می باشند که به راحتی وضعیت اشاره کرد که GP2S زمین را مشخص می کنند از این نوع سنسور ها هم می توان به سنسور 06 توضیحات این سنسور در اینجا آمده است دقت داشته باشید طرز چیدن سنسور ها به آلگوریتم برنامه مربوط می شود ولی سعی کنید حداقل از 5 سنسور در مدار خود استفاده کنید نقشه مدار برد سنسور که خروجی آن توسط یک مقایسه گر آنالوگ به 0 و 1 تبدیل می شود نمونه یک برد سنسور مادون قرمز با 5 سنسور 􀂺􀃋􀂁􀁚􀂈􀁝 􀁛􀁚􀃋 􀂀􀃌􀂈􀂻 􀁣􀁚􀁝􀁿 􀂮􀃋 􀃄􀂿􀃂􀂴􀁱 www.iranrobotic.com 11 علی معیری – بهمن ماه سال 1384 برنامه نویسی : برنامه یک ربات مسیریاب می تواند شامل چند بخش باشد که آنها را توضیح می دهیم -1 خواندن وضعیت از سنسور ها -2 تصمیم گیری ( پردازش اطلاعات ) -3 فرمان دادن به موتور ها یک مثال برای کنترل ربات با 3 سنسور در ساده ترین حالت وصل است Porta. سنسور سمت راست ما و به 0 SR وصل است Porta. سنسور سمت چپ ما و به 1 SL وصل است Porta. سنسور وسط ما و به 2 SC وصل است Portd.4 , Portd.5 , Portd.6 , Portd. موتور های ما نیز به 7 Void main() { While (1) { SR = PORTA.0; SL = PORTA.1; SC = PORTA.2; if (SR==1) center(); if (SL==1) moveright(); if (SC==1) moveleft(); } } function center() { PORTD.4=1; PORTD.5=0; PORTD.6=1; PORTD.7=0; Return 0; } function moveright() { PORTD.4=1; PORTD.5=0; 􀂺􀃋􀂁􀁚􀂈􀁝 􀁛􀁚􀃋 􀂀􀃌􀂈􀂻 􀁣􀁚􀁝􀁿 􀂮􀃋 􀃄􀂿􀃂􀂴􀁱 www.iranrobotic.com 12 علی معیری – بهمن ماه سال 1384 PORTD.6=0; PORTD.7=0; Return 0; } function moveleft() { PORTD.4=0; PORTD.5=0; PORTD.6=1; PORTD.7=0; Return ; } یک مثال برای کنترل ربات با 5 سنسور در ساده ترین حالت وصل است Porta. سنسور سمت راست ما و به 4 SR1 وصل است Porta. سنسور سمت راست ما و به 3 SR2 وصل است Porta. سنسور سمت چپ ما و به 2 SL1 وصل است Porta. سنسور سمت چپ ما و به 1 SL2 وصل است Porta. سنسور وسط ما و به 0 SC وصل است Portd.4 , Portd.5 , Portd.6 , Portd. موتور های ما نیز به 7 Void main() { While (1) { SR1 = PORTA.4; SR2 = PORTA.3; SL1 = PORTA.2; SL2 = PORTA.1; SC = PORTA.0; if (SC==1) center(); if (SL1==1) moveleft(); if (SR1==1) moveright(); if (SL2==1) moveleftfast (); if (SR2==1) moverightfast (); } } 􀂺􀃋􀂁􀁚􀂈􀁝 􀁛􀁚􀃋 􀂀􀃌􀂈􀂻 􀁣􀁚􀁝􀁿 􀂮􀃋 􀃄􀂿􀃂􀂴􀁱 www.iranrobotic.com 13 علی معیری – بهمن ماه سال 1384 function center() { PORTD.4=1; PORTD.5=0; PORTD.6=1; PORTD.7=0; Return 0; } function moveright() { PORTD.4=1; PORTD.5=0; PORTD.6=0; PORTD.7=0; Return 0; } function moveleft() { PORTD.4=0; PORTD.5=0; PORTD.6=1; PORTD.7=0; Return ; } function moverightfast() { PORTD.4=1; PORTD.5=0; PORTD.6=0; PORTD.7=1; Return 0; } function moveleftfast() { PORTD.4=0; PORTD.5=1; PORTD.6=1; PORTD.7=0; Return ; } البته به این نکته توجه داشته باشید که برای کنترل با سرعت زیاد باید بشتر ار 5 سنسور استفاده کنید و حتما از کنترل سرعت با فرکانس استفاده کنید PWM تکنولوژی 􀂺􀃋􀂁􀁚􀂈􀁝 􀁛􀁚􀃋 􀂀􀃌􀂈􀂻 􀁣􀁚􀁝􀁿 􀂮􀃋 􀃄􀂿􀃂􀂴􀁱 www.iranrobotic.com 14 علی معیری – بهمن ماه سال 1384 چند نمونه از ربات های مسیر یاب چندین ربات مسیر یاب ربات مسیر یاب با بِرِد بُرد که توصیه نمی شود !!! Moayeri@gmail.com

این رده در حال حاضر حاوی هیچ صفحه یا پرونده‌ای نیست.