🛠️ پروژه سیستم نهفته · پروژه عملی

پروژه Embedded: کنترلر چندسنسوره پایدار

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

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

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

  • ساخت Driver یا لایه خواندن سنسورها.
  • مدیریت زمان بدون delay طولانی.
  • تشخیص خطا و حفظ کارکرد بخش‌های سالم.
🧰
قبل از شروع

وسایل لازم

ESP32 یا STM32دو سنسور با پروتکل متفاوتLED/Buzzer یا Actuator سادهLogic Analyzer اختیاریمولتی‌متر
🦺
ایمنی

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

  • سطح ولتاژ Peripheralها را با MCU تطبیق بده.

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

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

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

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

  • ساخت Driver یا لایه خواندن سنسورها.
  • مدیریت زمان بدون delay طولانی.
  • تشخیص خطا و حفظ کارکرد بخش‌های سالم.

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

  • ESP32 یا STM32
  • دو سنسور با پروتکل متفاوت
  • LED/Buzzer یا Actuator ساده
  • Logic Analyzer اختیاری
  • مولتی‌متر

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

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

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

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

Definition of Done

  • Firmware ماژولار با حداقل سه فایل/لایه منطقی.
  • ثبت خطای ارتباط سنسور.
  • گزارش زمان‌بندی و نرخ نمونه‌برداری.

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

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

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

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

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

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

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

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

  • سطح ولتاژ Peripheralها را با MCU تطبیق بده.

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

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

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

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

Challenge اختیاری

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

✅
تعریف Done

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

  • Firmware ماژولار با حداقل سه فایل/لایه منطقی.
  • ثبت خطای ارتباط سنسور.
  • گزارش زمان‌بندی و نرخ نمونه‌برداری.