آزمایش مدار و کد آردوینو، پیش از آنکه حتی یک قطعه لحیم شود
طراحی و توسعه شبیهساز الکترونیکی آردوینو
محیطی نرمافزاری برای آزمایش مدارها، میکروکنترلر آردوینو و رفتار قطعات پیش از ساخت سختافزار؛ مناسب آموزش و نمونهسازی اولیه.
الکترونیکوضعیت پروژه: در حال توسعه
تعریف مسئله
یادگیری الکترونیک و برنامهنویسی میکروکنترلر معمولاً به سختافزار واقعی وابسته است: برد، قطعات، سیمکشی و ابزار اندازهگیری. برای دانشجویان و علاقهمندان، تهیه این تجهیزات همیشه آسان نیست و یک اشتباه ساده در سیمکشی میتواند به قطعات آسیب بزند.
در نمونهسازی اولیه نیز، آزمودن ایدهها روی سختافزار واقعی کند است و پیدا کردن علت خطا، اینکه مشکل از کد است یا از مدار، زمان زیادی میبرد. یک محیط شبیهسازی که رفتار مدار و برنامه را همزمان نشان دهد، میتواند این چرخه را کوتاهتر و کمخطرتر کند.
رویکرد فنی
این شبیهساز بهصورت یک محیط نرمافزاری طراحی شده است که در آن کاربر قطعاتی مانند LED، مقاومت، کلید و سنسور را روی صفحه کار قرار میدهد، آنها را به پایههای یک برد آردوینو مجازی وصل میکند و برنامه خود را اجرا میکند.
هسته شبیهساز دو بخش اصلی دارد: مدلی از میکروکنترلر که اجرای برنامه، وضعیت پایههای دیجیتال و آنالوگ و خروجی سریال را دنبال میکند، و مدلی سادهشده از مدار که رفتار قطعات را بر اساس سطح ولتاژ و اتصالها نشان میدهد. هدف، دقت آموزشی و قابلفهم بودن رفتار است، نه جایگزینی کامل ابزارهای شبیهسازی آنالوگ حرفهای.
معماری
۱
ویرایشگر مدار
رابط گرافیکی برای قرار دادن قطعات، سیمکشی و تنظیم مشخصات هر قطعه.
۲
مدل میکروکنترلر
اجرای برنامه آردوینو و مدیریت وضعیت پایههای دیجیتال، آنالوگ و ارتباط سریال.
۳
مدل قطعات و مدار
مدل رفتاری سادهشده برای LED، مقاومت، کلید، پتانسیومتر و سنسورها.
۴
هسته زمانبندی شبیهسازی
هماهنگسازی اجرای کد با بهروزرسانی وضعیت مدار در گامهای زمانی.
۵
نمایش و مانیتور سریال
نمایش وضعیت قطعات، مقادیر پایهها و خروجی سریال برنامه.
قابلیتها
قرار دادن و سیمکشی قطعات روی برد مجازی
شبیهسازی ورودی و خروجی دیجیتال
شبیهسازی ورودی آنالوگ با مقادیر قابل تنظیم
رفتار LED، مقاومت، کلید و سنسورهای پایه
مانیتور سریال برای مشاهده خروجی برنامه
شناسایی خطاهای رایج اتصال
مناسب تمرینهای آموزشی و نمونهسازی اولیه
تصمیمهای طراحی
مهمترین تصمیم در این پروژه، انتخاب سطح دقت مناسب بود. شبیهسازی کامل و دقیق آنالوگ پیچیده و کند است و برای هدف آموزشی ضرورتی ندارد. به همین دلیل، مدار با مدلی رفتاری و سادهشده نمایش داده میشود: یک LED بر اساس جهت اتصال و وجود مقاومت محدودکننده روشن یا خاموش میشود و یک ورودی آنالوگ مقداری در بازه مبدل آنالوگ به دیجیتال برمیگرداند. این سطح از دقت برای فهم منطق مدار و آزمودن کد کافی است.
تصمیم دوم، جدا کردن مدل میکروکنترلر از مدل مدار است. این دو بخش فقط از طریق وضعیت پایهها با هم ارتباط دارند؛ در نتیجه میتوان قطعه تازهای اضافه کرد بدون اینکه منطق اجرای برنامه تغییر کند.
جریان شبیهسازی
در هر گام زمانی، هسته شبیهسازی بخشی از برنامه را اجرا میکند، تغییر وضعیت پایهها را به مدل مدار میفرستد و پاسخ قطعات، مانند وضعیت یک کلید یا مقدار یک سنسور، را دوباره به ورودیهای میکروکنترلر برمیگرداند. خروجی سریال در یک پنجره جداگانه نمایش داده میشود تا کاربر بتواند مانند کار با برد واقعی، برنامه را عیبیابی کند.
هر قطعه یک واسط مشخص دارد که ورودیها، خروجیها و رفتار آن را تعریف میکند.
هشدارهای ساده برای اتصالهای رایج نادرست، مانند LED بدون مقاومت، به یادگیری کمک میکند.
ساختار ماژولار، آزمون خودکار هر قطعه را بهصورت جداگانه ممکن میسازد.
امکان توسعه
از جمله گسترشهای ممکن میتوان به کتابخانه قطعات بزرگتر، نمایشگرها و موتورها، سناریوهای تمرینی آماده و شبیهسازی ارسال داده سنسور به یک سامانه اینترنت اشیا اشاره کرد. این آخرین مورد، پلی میان آموزش الکترونیک و طراحی سامانههای اینترنت اشیا صنعتی است.
معماری یک سیستم اینترنت اشیا صنعتی از سنسور تا نرمافزار سازمانی چه لایههایی دارد، کدام الزامات غیرعملکردی را باید از ابتدا دید و انتخاب میان ابر، سرور محلی و مدل ترکیبی بر چه اساسی انجام میشود.