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

ربات حل‌کننده مکعب روبیک CUBOTino با رسپبری‌پای (نسخه تمام‌خودکار)

رباتیک و هوشمندسازی
۰ نظر
۳۵ نفر
کد ۴۳۳۴

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

مغز متفکر این ربات، برد مینیاتوری رسپبری‌پای Zero 2 به همراه یه ماژول PiCamera هست. ربات خودش مکعب رو می‌چرخونه، با دوربین از تمام وجوهش عکس می‌گیره، به کمک الگوریتم‌های بینایی ماشین (Computer Vision) رنگ‌ها رو تشخیص می‌ده و در نهایت با الگوریتم معروف Kociemba، بهترین مسیر حل رو پیدا و اجرا می‌کنه.

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

  1. ربات کاملا مستقله و بدون نیاز به کامپیوتر خارجی کار می‌کنه.
  2. رسپبری‌پای و دوربین به عنوان سیستم بینایی ماشین عمل می‌کنن.
  3. از الگوریتم اثبات‌شده Kociemba برای پیدا کردن سریع‌ترین راه‌حل استفاده می‌شه.
  4. تمام سورس‌کدهای پروژه به زبان پایتون نوشته شدن.
  5. یه نمایشگر کوچیک، وضعیت ربات و مراحل حل رو بهت گزارش می‌ده.
  6. قطعات مکانیکی پرینت سه‌بعدی تقریبا مشابه نسخه پایه هستن، با این تفاوت که چند قطعه برای نصب دوربین اضافه شده.
  7. کل زمان کار حدود 90 ثانیه‌ست؛ 30 ثانیه برای اسکن کردن رنگ‌ها و 60 ثانیه برای اجرای حرکات مکانیکی.
  1. تشکر ویژه از آقای Kociemba بابت الگوریتم حل مکعب و نسخه پایتون اون.
  2. از توسعه‌دهنده‌هایی که نصب نرم‌افزار رو ساده کردن و برد PCB رو طراحی کردن.
  3. و ممنون از تمام کسایی که با فیدبک‌هاشون باعث ارتقای این پروژه شدن.

قطعات موردنیاز

  • برد رسپبری‌پای Zero 2 WH (یا مدل Zero 2 وات)
  • کارت حافظه میکرو SD کلاس 10 با ظرفیت 16 گیگابایت
  • ماژول دوربین رسپبری‌پای (PiCamera V1.3 یا V2)
  • کابل فلت مخصوص اتصال دوربین به رسپبری‌پای Zero
  • دو عدد سروو موتور فلزی 25 کیلویی (مدل TD-8325MG) با بازوی فلزی 25 دندانه
  • نمایشگر 1.77 اینچ TFT (با رابط SPI)
  • حدود 500 گرم فیلامنت پرینت سه‌بعدی (ترجیحا PETG یا PLA)
  • ال‌ای‌دی 3 واتی همراه با درایور داخلی
  • ماژول سنسور لمسی خازنی (به عنوان دکمه)
  • ماژول کاهنده ولتاژ (Step-down Voltage Regulator)
  • ماژول سوکت Micro-USB یا USB-C (برای ورودی برق اصلی)
مرحله ۱

نکات قبل از شروع ساخت

هرچند این ربات تو نگاه اول خیلی ساده و جمع‌وجور به نظر می‌رسه، اما از نظر فنی پیچیدگی‌های خاص خودش رو داره. انتظار نداشته باش که به محض سرهم کردن قطعات، ربات شروع به کار کنه؛ باید برای کالیبره کردن و تنظیمات نرم‌افزاری وقت بذاری! اگه تا حالا هیچ رباتی نساختی و تجربه کافی نداری، پیشنهاد می‌کنم اول نسخه ساده‌تر (Base Version) همین ربات رو بسازی تا دستت راه بیفته.

مرحله ۲

مطالعه دقیق فایل راهنمای جامع (PDF)

من یه فایل PDF خیلی کامل (با اسم How_to_make_...) آماده کردم که صفر تا صد مراحل ساخت و کالیبراسیون رو با جزئیات کامل توش توضیح دادم.

این فایل حدود 150 صفحه است و علاوه بر دستورالعمل ساخت، پر از نکات آموزشی مفیده. اکیدا توصیه می‌کنم قبل از شروع کار، کل این فایل رو یه بار با دقت بخونی. حتی پیشنهاد دومم اینه که یه دور دیگه هم بخونیش! :-)

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

مرحله ۳

ساخت برد واسط الکترونیکی (Connection Board)

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

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

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

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

مرحله ۴

نصب و پیکربندی نرم‌افزاری رسپبری‌پای

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

مرحله ۵

کالیبره کردن زاویه سروو موتورها قبل از مونتاژ

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

  1. سروو موتورها رو به برد واسط متصل کن.
  2. تو ترمینال رسپبری‌پای با دستور cd cubotino/src وارد پوشه کدها شو.
  3. محیط مجازی پایتون رو با دستور source .virtualenvs/bin/activate فعال کن.
  4. حالا با اجرای دستور python Cubotino_T_servos.py --set 0 موتورها به صورت خودکار تو زاویه وسط قرار می‌گیرن.

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

مرحله ۶

پرینت سه‌بعدی قطعات بدنه

بدنه این ربات از 13 قطعه مختلف تشکیل شده که کلا حدود 500 گرم فیلامنت (ترجیحا PETG) نیاز داره. این قطعات طوری طراحی شدن که:

  • روی پرینترهایی با صفحه ساخت حداقل 20 در 20 سانتی‌متر جا بشن.
  • برای چاپ هیچ‌کدوم نیازی به ساپورت‌گذاری (Support) نداشته باشی.

بهترین زاویه برای پرینت هر قطعه رو تو فایل PDF توضیح دادم. نکته: اگه قبلا نسخه Base ربات رو ساختی و الان می‌خوای ارتقاش بدی، قاب محافظ مدار (PCB Cover) قبلی به دردت نمی‌خوره و باید قطعات جدید رو پرینت بگیری. اگه دوست داری تو طراحی‌ها دست ببری، فایل‌های سه بعدی (STEP) رو تو صفحه گیت‌هاب برات گذاشتم.

مرحله ۷

مونتاژ و سرهم‌بندی نهایی قطعات

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

مرحله ۸

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

همون‌طور که قبلا گفتم، این ربات بلافاصله بعد از مونتاژ کار نمی‌کنه و باید دوربینش رو تنظیم کنی. خوشبختانه یه رابط کاربری گرافیکی (GUI) به نرم‌افزار اضافه شده که پروسه کالیبراسیون رو خیلی راحت و بصری کرده. با این رابط می‌تونی برش تصویر (Cropping) و اصلاح اعوجاج (Warping) لنز دوربین رو به راحتی انجام بدی تا دوربین دقیقا روی مربع‌های مکعب فوکوس باشه.

تمام پارامترهایی که باید تنظیم بشن رو با جزئیات تو فایل PDF توضیح دادم.

مرحله ۹

ویدیوی عملکرد ربات (بدون تدوین)

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

مرحله ۱۰

تبریک؛ ربات شما آماده است!

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

مرحله ۱۱

منتظر نظراتتون هستیم

اگه از ساخت این پروژه لذت بردی یا ایده‌ای برای بهبودش داری، تو بخش نظرات تیم آیسی‌مدار با ما در میون بذار.

مرحله ۱۲

آخرین تغییرات و به‌روزرسانی‌های پروژه

خلاصه مهم‌ترین آپدیت‌ها: 1) اضافه شدن سازگاری با سیستم‌عامل رسپبری‌پای 11 (Bullseye). اگه الان رباتت داره با سیستم‌عامل 10 (Buster) درست کار می‌کنه، اصلا نیازی به آپدیت نداری. 2) اگه از رسپبری‌پای مدل Zero W (نسل اول) استفاده می‌کنی، سیستم‌عامل 11 به شدت سرعت رو میاره پایین؛ پس حتما روی همون نسخه 10 بمون.

3) اگه مموریت خراب شد و بک‌آپ نداشتی، مجبوری از سیستم‌عامل Bullseye استفاده کنی. 4) اگه تازه الان داری ربات رو می‌سازی، پیشنهاد می‌کنم مستقیم بری سراغ نسخه Bullseye.

5) روی برد Zero 2 وات، تفاوتی بین پرفورمنس دو تا سیستم‌عامل دیده نمی‌شه. آپدیت‌های نرم‌افزاری: 1) اضافه شدن پارامتر اصلاح نوردهی (Exposure Shift) تو رابط گرافیکی برای حل مشکل نور زیاد تو کتابخونه جدید دوربین. 2) دوربین حالا با آنالیز 4 وجه مکعب، بهترین تعادل رنگ سفید (AWB) و گین رو تنظیم می‌کنه.

3) اضافه شدن سیستم مختصات ثابت (FCS) برای وقت‌هایی که به خاطر نور بد یا مکعب‌های بدون حاشیه، لبه‌یابی تصویر دچار مشکل می‌شه. یه خبر خوب: با کدهای بهینه‌شده جدید، سرعت چرخش موتورها 13 درصد بیشتر شده! تو این روش به جای دو تا چرخش 90 درجه، موتور یه سره 180 درجه می‌چرخه.

قابلیت آنالیز رنگ غالب هم به برنامه اضافه شده. این قابلیت برای مکعب‌هایی که روی رنگ‌هاشون لوگو یا نوشته دارن فوق‌العاده‌ست و تشخیص رنگ رو خیلی دقیق‌تر می‌کنه. برای فعال کردنش کافیه موقع اجرای اسکریپت پارامتر -D رو اضافه کنی (مثلا python Cubotino_T.py -D).

در نهایت، پشتیبانی از دوربین‌های V2 و V3 رسپبری‌پای هم به پروژه اضافه شده و فایل طراحی هولدر دوربین متناسب با ابعاد این دوربین‌ها تو گیت‌هاب آپدیت شده.

مرحله ۱۳

آموزش حل مکعب روبیک با دست!

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

  1. حل‌کننده آنلاین: اگه هنوز رباتت رو نساختی و یه مکعب قاطی دستته، این ابزار آنلاین کمکت می‌کنه حلش کنی.
  2. آموزش‌های قدم‌به‌قدم برای انواع پازل‌های چرخشی.
  3. تایمر و شبیه‌ساز مجازی برای تست سرعت حل مکعب.
  4. و کلی مطلب جذاب دیگه برای علاقه‌مندان به روبیک.

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

PDF How_to_make_CUBOTino_autonomous_robot_20241119.pdf
PDF How_to_make_CUBOTino_autonomous_robot_20260511.pdf
PDF Cubotino_autonomous_Connection_board.pdf

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

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

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

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

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

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