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

ربات ماشین هوشمند با قابلیت تشخیص مانع (آردوینو)

رباتیک و هوشمندسازی
۰ نظر
۶۷ نفر
کد ۳۱۷۳

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

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

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

مرحله ۱

آماده‌سازی بدنه ربات (چاپ سه‌بعدی یا چوب)

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

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

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

مرحله ۲

نصب موتورها و چرخ‌های ماشین

همون‌طور که گفتم فرقی نمی‌کنه شاسی پرینت شده باشه یا چوبی؛ حالا باید موتورهای گیربکس‌دار (یا همون موتورهای BO) رو روش سوار کنیم. برای چسباندن موتورها به پایه اصلی، چسب حرارتی باکیفیت بهترین گزینه‌ست. فقط حواست باشه چسب رو بیش از حد داغ نکنی که پلاستیک بدنه موتور رو آب کنه یا تغییر شکل بده.

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

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

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

مرحله ۳

آپلود کد و سیم‌کشی مغز متفکر ربات

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

نرم‌افزار Arduino IDE رو باز کن، کد مربوط به پروژه رو داخلش قرار بده. چک کن که پورت و نوع برد درست انتخاب شده باشن و بعد روی دکمه آپلود کلیک کن. نیازی نیست هیچ تغییری تو کدها بدی. وقتی آپلود تموم شد، کابل رو جدا کن تا بریم سراغ سیم‌کشی قطعات.

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

حالا سوکت موتور سروو رو به پین‌هدر Servo 1 روی شیلد بزن. پین‌های Trig و Echo سنسور التراسونیک رو هم به ترتیب به پین‌های A0 و A1 آردوینو وصل کن. پایه‌های تغذیه سنسور رو هم به 5 ولت و GND متصل کن.

در نهایت پین‌های تغذیه اصلی (Ext power) شیلد رو به قطب مثبت و منفی باتری وصل کن و یک کلید سر راه قطب مثبت قرار بده تا بتونی ربات رو راحت خاموش و روشن کنی.

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

اگر دوست داری ظاهر پروژه حرفه‌ای‌تر بشه و سیم‌کشی‌ها شلوغ نباشن، می‌تونی اتصالات رو تا حد امکان کوتاه در نظر بگیری و اضافه سیم‌ها رو با بست کمربندی مهار کنی. من تصاویر دقیق اتصالات رو برات گذاشتم تا بتونی مرحله به مرحله و با خیال راحت پیش بری. درایور موتور به‌خوبی جریان موردنیاز موتورهای BO رو تأمین می‌کنه و نمی‌ذاره فشاری به پردازنده اصلی بیاد.

ترکیب این قطعات الکترونیکی باعث می‌شه ربات هم قابلیت حرکتی بالایی داشته باشه و هم با کمک سروو و التراسونیک محیط رو به‌خوبی درک کنه.

مرحله ۴

نصب بردها روی شاسی و تست چرخش

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

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

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

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

این پایه رو باید به بازوی پلاستیکی (Horn) موتور سروو بچسبونی؛ من از بازوهای تخت سروو استفاده کردم که چسبوندن قطعات روش راحت‌تره. پایه سنسور رو به این بازو بچسبون و بذار کامل خشک بشه، بعد شفت سروو رو داخل این بازو جا بزن.

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

مرحله ۵

جاگذاری نهایی قطعات و باتری

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

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

حالا قاب سنسور التراسونیک (که به بازوی سروو متصلش کردیم) رو روی موتور قرار بده. همون‌طور که قبلا گفتیم، می‌تونی از مقوا یا چوب هم برای ساخت قاب سنسور استفاده کنی و دقیقا همین مراحل رو براش پیش ببری.

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

مرحله ۶

کلام آخر

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

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

امیدوارم از ساخت این ربات هوشمند در آیسی‌مدار لذت برده باشی. اگر وسط کار به مشکلی خوردی یا ایده‌ای برای ارتقای این ماشین (مثلا اضافه کردن بازر یا کنترل بلوتوثی) به ذهنت رسید، حتما تو بخش نظرات برامون بنویس. موفق باشی و از رباتیک لذت ببر!

فایل‌های پیوست

STL car frame.stl
INO ARDUINO_OBSTACLE_AVOIDING_CAR.ino

تو میتونی اولین سازنده باشی!

اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر

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

آموزش‌های مشابه

گفتگو‌های کاربران

هنوز نظری ثبت نشده؛ تو شروع کن!