🤖 ربات خودمختار · پروژه عملی

پروژه ساخت ربات: مانع‌گریز خودمختار

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

⏱ ۳۶۰ دقیقه🌱 متوسط⭐ +۴۲۰ XP📋 ۸ مرحله
🎯
هدف پروژه

آخرش باید چی بلد باشی؟

  • ساخت حرکت قابل کنترل.
  • پیاده‌سازی State Machine ساده.
  • تشخیص مانع و Recovery بدون کنترل دستی.
🧰
قبل از شروع

وسایل لازم

شاسی دوچرخدو موتور DCدرایور موتورArduino/ESP32سنسور فاصلهباتریکلید روشن/خاموش
🦺
ایمنی

قبل از برق‌دار کردن مدار

  • ربات را ابتدا روی پایه تست کن تا چرخ‌ها آزاد باشند.
  • در تست باتری، اتصال کوتاه و داغ شدن درایور را بررسی کن.

سناریوی پروژه

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

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

هدف‌های مهندسی

  • ساخت حرکت قابل کنترل.
  • پیاده‌سازی State Machine ساده.
  • تشخیص مانع و Recovery بدون کنترل دستی.

وسایل و پیش‌نیازهای اجرایی

  • شاسی دوچرخ
  • دو موتور DC
  • درایور موتور
  • Arduino/ESP32
  • سنسور فاصله
  • باتری
  • کلید روشن/خاموش

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

روش اجرای پیشنهادی

پروژه را به یک‌باره Integrate نکن. این ترتیب را حفظ کن:

  1. Baseline: کوچک‌ترین بخش قابل تست را مستقل بالا بیاور.
  2. Interface test: ارتباط بین دو بخش را جدا بررسی کن.
  3. Integration: بخش‌ها را یکی‌یکی اضافه کن، نه همزمان.
  4. Fault test: یک خطای واقعی ایجاد یا شبیه‌سازی کن و Recovery را ببین.
  5. Repeatability: سناریوی اصلی را چند بار با شرایط مشابه اجرا کن.
  6. Review: نتیجه را با معیارهای Deliverable مقایسه کن و فقط بعد از آن پروژه را Complete کن.

Definition of Done

  • عبور از مسیر آزمایشی بدون برخورد در سه اجرای متوالی.
  • نمودار State Machine.
  • ویدیو یا گزارش کوتاه از تست.

این موارد «شرح کار» نیستند؛ معیار پایان پروژه هستند. برای هر مورد باید یک شاهد داشته باشی: عدد، Log، عکس، ویدئوی کوتاه، فایل طراحی یا نتیجه چند Run.

جدول تست پیشنهادی

Run شرایط شروع تغییر/نسخه نتیجه Pass/Fail نکته
1 حالت پایه نسخه A … … …
2 همان شرایط نسخه A … … …
3 یک محدودیت سخت‌تر نسخه A … … …

اگر Runها تفاوت زیادی دارند، قبل از بهینه‌سازی سرعت یا ظاهر، دلیل نبود تکرارپذیری را پیدا کن.

عیب‌یابی بدون حدس

وقتی پروژه کار نمی‌کند، آخرین جایی را پیدا کن که می‌دانی درست کار می‌کند. از همان نقطه به جلو Interfaceها را یکی‌یکی تست کن. همزمان چند چیز را تغییر نده. یک Failure log کوتاه نگه دار:

  • علامت خطا چه بود؟
  • در چه شرایطی تکرار شد؟
  • فرض اصلی چه بود؟
  • چه تستی فرض را رد یا تایید کرد؟
  • تغییر نهایی چه بود و آیا دوباره تست شد؟

ایمنی و حفاظت از تجهیزات

  • ربات را ابتدا روی پایه تست کن تا چرخ‌ها آزاد باشند.
  • در تست باتری، اتصال کوتاه و داغ شدن درایور را بررسی کن.

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

گزارش نهایی تیم

در یادداشت پروژه فقط ننویس «کار کرد». حداقل این چهار مورد را ثبت کن:

  1. نسخه نهایی سخت‌افزار/کد/فایل طراحی.
  2. نتیجه چند تست و معیار قبولی.
  3. یک Failure واقعی و مسیر پیدا کردن علت.
  4. یک تصمیمی که اگر پروژه را دوباره شروع می‌کردی عوض می‌کردی.

Challenge اختیاری

وقتی نسخه پایه پایدار شد، فقط یک محدودیت را سخت‌تر کن: زمان کمتر، نویز بیشتر، وزن بیشتر، شبکه ضعیف‌تر، نور متفاوت یا بار بیشتر. دوباره همان Test Plan را اجرا کن و ببین Margin طراحی چقدر است.

✅
تعریف Done

چه زمانی پروژه واقعا تمومه؟

  • عبور از مسیر آزمایشی بدون برخورد در سه اجرای متوالی.
  • نمودار State Machine.
  • ویدیو یا گزارش کوتاه از تست.