اگر مایلید پروژههای الکترونیک، رباتیک یا اینترنت اشیای خود را حرفهایتر و سادهتر انجام دهید، بهتر است همین امروز با آردوینو و کاربردهای آن آشنا شوید.
آردوینو (Arduino) یک پلتفرم الکترونیکی متن باز متشکل از سختافزار و نرمافزار است که ساخت پروژهها و دستگاههای الکترونیکی امبد را تسهیل میکند. در این مقاله با کاربرد آردوینو، اجزای تشکیل دهنده و کاربردهای آن آشنا خواهید شد.
آردوینو (Arduino) یک پلتفرم سخت افزاری و نرمافزاری متن-باز و قابل برنامهنویسی است که امکان دریافت اطلاعات و کنترل قطعات الکترونیکی را فراهم میکند. یعنی میتوانید با بکارگیری آردوینو در پروژه الکترونیکی خود، قطعاتی از جمله سنسور، رله، LED و موتور را به آن متصل کنید و با برنامهنویسی در نرمافزار آردوینو، اطلاعات این قطعات را به شکل دلخواه دریافت و آنها را کنترل کنید.
البته، آردوینو در واقع نام شرکت ایتالیایی سازنده این بوردهای میکروکنترلی است و برای اشاره به تصویر زیر بهتر است از عبارت «بورد آردوینو» استفاده کنید.
چرا متن باز بودن آردوینو اهمیت دارد؟ یک پلتفرم متن باز به کاربر امکان اعمال تغییرات دلخواه در سختافزار و نرمافزار را میدهد. بنابراین، شما میتوانید با رعایت اصول برنامهنویسی در آردوینو، انجام سناریوهای دلخواه خود را پیادهسازی کنید و همچنین با توجه به ساختار سختافزاری آن، انواع قطعات الکترونیکی دلخواه و قابل پشتیبانی را به آردوینو متصل کنید.
پس لازم است ابتدا با ساختار و اجزای بوردهای آردوینو بهتر آشنا شوید.
جهت آشنایی با اجزای بورد آردوینو، ابتدا باید بدانید که بوردهای آردوینو در انواع مختلفی تولید میشوند. از محبوبترین و پرکاربردترین انواع بوردها میتوان به آردوینو اونو (Arduino UNO)، آردوینو دو (Arduino DUE) و آردوینو نانو (Arduino NANO) اشاره کرد. قطعات به کار رفته در هر بورد آردوینو تا حدودی با یکدیگر متفاوت هستند.
جهت بررسی ساختار اصلی بورد آردوینو، بهتر است نگاهی به مقدماتیترین بورد آردوینو یعنی Arduino UNO بیندازیم. اگر از نزدیک به قطعات این بورد نگاه کنید، متوجه خواهید شد که از طراحی تخصصی و خاصی برخوردار نیست و تمامی قطعات آن را میتوان از بازار نیز تهیه و با تسلط نسبی بر طراحی مدار، بوردی کاملا مشابه طراحی کرد. اما از آن جایی که بوردهای آردوینو به صورت عمده تولید میشوند، تهیه آن از بازار بسیار مقرون به صرفهتر خواهد بود.
چیپ میکروکنترلر: مهمترین بخش یک بورد آردوینو، چیپ میکروکنترلر آن است که به عنوان مغز پردازشی بورد شناخته میشود و دستورهای برنامهنویسی بر روی این میکروکنترلر بارگذاری میشوند. میکروکنترلرها در واقع کامپیوترهای بسیار کوچک شامل واحدهای پردازشی، ورودی و خروجی دیجیتال و آنالوگ و درگاه ارتباطی هستند که دریافت اطلاعات از ورودیها و کنترل خروجیها را امکانپذیر میکنند.
تعبیه میکروکنترلر درون آردوینو از مهمترین ویژگیهای این بورد الکترونیکی است. زیرا، برای بکارگیری میکروکنترلر به صورت مستقل نیاز به دانش فنی تخصصی خواهید داشت و برنامهنویسی میکروکنترلر به تنهای کار بسیار دشواری است. اکثر نسخههای آردوینو از میکروکنترلرهای مبتنی بر AVR شرکت Microchip استفاده میکنند. در برخی از نمونههای آردوینو از میکروکنترلرهای ARM Cortex-M نیز استفاده میشود.
از سایر قطعات مهم بکار رفته در آردوینو اونو میتوان به رگولاتور پاور، چیپ ارتباطی USB برای اتصال به کامپیوتر، جک پاور، کریستال زمان و ال ای دی داخلی اشاره کرد.
اگر آردوینو را به صورت مستقیم جلوی خود بگیرید، 14 پین ورودی/خروجی دیجیتال در بالای بورد قابل مشاهده است. از این پینها برای اتصال قطعات دیجیتالی که دارای خروجی صفر و یک هستند استفاده میشود؛ مانند LED.
در پایین بورد دو ردیف پین قابل مشاهده هست. ردیف اول دارای 6 ورودی آنالوگ است که میتواند 1024 سطح از ولتاژ 0 تا 5 را دریافت کند و برای اتصال قطعاتی با خروجی آنالوگ مانند گیرنده صدا استفاده میشود. ردیف دوم نیز دارای 8 پین برای انتقال برق و اتصال به زمین است.
از بین تمامی انواع آردوینو، مدل آردوینو اونو (Arduino Uno) بهترین انتخاب برای شروع یادگیری است. همچنین، با بکارگیری شیلد میتوانید قابلیتهای آردوینو را افزایش دهید.
شیلد (Shield) یک بورد ارتقا جانبی است که برای اهداف خاصی طراحی و توسعه پیدا کرده است. با اتصال شیلد به بورد آردوینو میتوانید قابلیتهای اولیه آردوینو را توسعه دهید و از مزایای دو بورد به صورت یکپارچه استفاده کنید. به طور مثال، در عکس زیر شیلد CNC را به راحتی از طریق پینهای آردوینو به این بورد متصل کردیم.
حالا که با ساختار سختافزار آردوینو آشنا شدید، نوبت آن است که با محیط نرمافزاری و نحوه ارسال دستورات به چیپ میکروکنترلر آشنا شوید.
همانطور که گفتیم، پلتفرم آردوینو از دو بخش سختافزاری و نرمافزاری تشکیل شده است. برای ارسال دستورات نرمافزاری به آردوینو، از نرمافزار Arduino IDE استفاده میکنیم. IDE مخفف Integrated Development Environment است؛ یعنی جایی که با کد نویسی میتوانیم بوردهای آردوینو را برنامهنویسی کنیم.
برای دانلود این نرم افزار میتوانید به وبسایت آردوینو به آدرس https://www.arduino.cc/en/software مراجعه کنید. برای برنامهنویسی در فضای IDE از افزونههای زبان C و C++ استفاده میشود اما باید توجه داشته باشید که IDE ساختار کدنویسی خود را دارد. در این فضا از دو فانکشن اصلی setup و loop استفاده میشود و میتوان برنامه نوشته شده را تنها با یک کلیک بر روی بورد آردوینو بارگذاری کرد.
احتمالا تا اینجا متوجه شدید که کار با بوردهای آردوینو نسبت به طراحی یک بورد سفارشی بسیار مقرون به صرفهتر و راحتتر است. اما 2 دلیل مشخص زیر باعث شده است که آردوینو در بین جامعه الکترونیک کل جهان محبوبیت فراوانی بدست آورده باشد:
1. سهولت استفاده: اولین و مهمترین دلیل، سادگی کار با این پلتفرم است که میتوان این سهولت را در سخت افزار و نرم افزار محصول مشاهده کرد. با کمک بوردهای از پیش طراحی شده آردوینو، هر فردی میتواند تنها با یادگیری مبانی مقدماتی الکترونیک، پروژههای ساده تا پیچیده الکترونیکی را بسازد. فانکشنهای برنامهنویسی IDE و کتابخانههای آن نیز به راحتی در دسترس بوده و میتوانید تنها با یک کلیک تمامی کد را بر روی بورد آپلود کنید.
2. اکوسیستم متن باز: اوپن سورس یا همان متن باز بودن پلتفرم آردوینو باعث شده است که یک اکوسیستم بزرگ حول محور آن به وجود بیاید و شرکتهای دیگری در دنیا نیز اقدام به ساخت بوردها و شیلدهای سختافزاری کنند که با بوردهای آردوینو همخوانی داشته باشد. وجود این اکوسیستم به شناسایی سریع و رفع عیوب نسخههای آردوینو کمک کرده و همچنین منابع اطلاعاتی وسیعی را ایجاد کرده است. بنابراین، برای تمامی سوالهایی که در حین کار با آردوینو برایتان پیش میاید، پاسخی در اینترنت پیدا خواهید کرد.
در آخر، احتمالا میخواهید بدانید که چه پروژههایی را میتوان با آردوینو انجام داد و مهمتر از آن، بهتر است برای چه پروژههایی از آردوینو استفاده نکنیم!
به طور کلی، آردوینو برای دریافت اطلاعات محیط از طریق ورودیها، پردازش این اطلاعات از طریق برنامه آپلود شده روی بورد و کنترل قطعات خروجی (و برعکس) گزینه مناسبی است. به طور مثال، شما میتوانید یک سنسور دما و رطوبت (ورودی) و یک پنکه (خروجی) را به آردوینو متصل کنید و در فضای IDE برنامهای بنویسید که در صورت بالاتر رفتن دما از حدی خاص، موتور پنکه روشن شود. هر فرآیند مشابه این از طریق آردوینو امکان پذیر است.
اما اگر اطلاعات ورودی شما سنگین یا پیچیده هستند، یا دستورات پردازشی مد نظر شما از توان IDE خارج است، بهتر است از بوردهای قویتر یا سفارشی استفاده کنید. به طور مثال، آردوینو گزینه مناسبی برای دریافت و پردازش اطلاعات تصویری نیست.
اگر دوست دارید چند پروژه مقدماتی با آردوینو انجام دهید و با کدنویسی در IDE بهتر آشنا شوید، «چند پروژه ساده LED با آردوینو» را مشاهده کنید. (به زودی)
آکادمی تینگزپاد را در اینستاگرام و یوتیوب نیز دنبال کنید.