رباتیک و اردوینو

2 آبان 1405 - خواندن 4 دقیقه - 24 بازدید

رباتیک و اردوینو

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

اردوینو در واقع یک برد الکترونیکی ساده است که قلب آن یک میکروکنترلر از خانواده ی AVR (مثل ATmega328) است. میکروکنترلر یعنی یک کامپیوتر کوچک که پردازنده، حافظه و ورودی خروجی ها را یکجا روی یک تراشه دارد. چیزی که اردوینو را خاص کرد نه قدرت سخت افزاری، بلکه سه چیز بود: قیمت پایین، محیط برنامه نویسی بسیار ساده و جامعه ی کاربری بزرگی که طرح ها و کدهایش را آزادانه به اشتراک می گذارد.

برنامه نویسی اردوینو به زبان C++ ساده شده انجام می شود و ساختار کد تقریبا همیشه یکی است: تابع setup که یک بار در ابتدا اجرا می شود، و تابع loop که تا وقتی برد روشن است تکرار می شود. همین حلقه ی ساده، مغز ربات شماست؛ مدام داده می خواند، تصمیم می گیرد و فرمان می دهد.

در یک ربات مبتنی بر اردوینو، سه بخش کلی را می توان تصور کرد. بخش حسگرها، مثل سنسور فاصله ی فراصوت HC-SR04، سنسور مادون قرمز برای تشخیص خط، یا فتوسنسور برای تشخیص نور. بخش تصمیم گیری، یعنی همان کدی که روی میکروکنترلر اجرا می شود و منطق رفتار ربات را تعیین می کند. و بخش عملگرها، معمولا موتورهای DC با درایور L298N، سرووموتورها برای حرکت های دقیق، و گاهی بلندگو یا LED برای بازخورد دادن به کاربر.

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

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

البته اردوینو محدودیت هایی هم دارد. حافظه ی اندک، نبود سیستم عامل واقعی و ضعف در پردازش های سنگین مثل بینایی ماشین. به همین دلیل در پروژه های پیشرفته تر، اردوینو معمولا نقش «پایین دست» را بازی می کند؛ یعنی کنترل موتورها و خواندن سنسورها با آن است، و پردازش های هوشمندتر به کامپیوترهای قوی تری مثل Raspberry Pi سپرده می شود.

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