آردوینو چیست؟
آردوینو یک پلتفرم سختافزاری و نرمافزاری است که با هدف در دسترس بودن برای همگان به صورت Open Source یا متن باز طراحی شده است. ساده و منعطف بودن آردوینو (هم از لحاظ سختافزاری و هم نرمافزاری) باعث شده است تا به یک ابزار ایدهآل جهت استفاده در حوزههای نمونهسازی و آموزش تبدیل شود. این پلتفرم همچنین در ساخت و اجرای پروژههای صنعتی، سیستمهای تعاملی، ابزارهای سرگرمی، طراحیهای هنری و ... کاربرد فراوانی دارد و مورد استقبال همه افراد، حتی افراد با سطح دانش و تجربه اندک قرار گرفته است.
قابلیتهای آردوینو
بستر سختافزاری آردواینو در اصل یک بُرد الکترونیکی I/O ساده است. این برد که در طول سالیان مختلف مدلهای متنوعی از آن ارائه شده است، هم به صورت مستقل (stand-alone) و هم در ارتباط با سیستمهای خارجی و نرمافزارها قابل استفاده است. از دیگر ویژگیهای بورد آردوینو میتوان به امکان استفاده از شیلد اشاره کرد. Shield بُردی است که با هدف افزایش قابلیتهای سختافزاری بردهای آردوینو طراحی و تولید شده است. به طور مثال اگر احتیاج به قابلیت ارسال پیامک یا اتصال به شبکه GSM داشته باشید به سادگی میتوانید از شیلد GSM استفاده نمایید. مثال دیگر ساخت دستگاه CNC با استفاده از آردوینو و یک شیلد CNC است. از جمله پرکاربردترین شیلد ها میتوان به شیلدهای درایور موتور اشاره کرد. به عنوان نمونه شیلد درایور موتور Monster Moto shieldِِ یک شیلد پرکاربرد و محبوب جهت درایو کردن موتورهای DC توسط آردوینو است. به این ترتیب با انتخاب شیلد مناسب شما میتوانید قابلیتهای جدیدی به برد آردوینو خود اضافه نمایید.
علاوه بر تمام این امکانات سختافزاری، طراحی نرمافزاری آردوینو نیز کاملا پیشرو و خلاقانه بوده است. سخت افزار اردواینو با استفاده از یک زبان مبتنی بر سیمبندی (wiring based)، به همراه تمام فایلهای کتابخانهای و syntaxهای لازم و با بهرهگیری از یک محیط مبتنی بر پردازش (Processing based) برنامه نویسی میشود. علاوه بر شباهت بسیار زیاد زبان برنامه نویسی Arduino به زبان ++C ، سادهسازیهای فراوانی نیز در نظر گرفته شده است تا یادگیری این زبان بسیار سریع و آسان صورت بگیرد.
تنوع بوردهای تولیدی
محصولات آردوینو از تنوع فراوانی برخوردارند که میتوانید بر اساس کاربرد، تعداد پایه مورد نیاز، ابعاد و شکل هندسی از بین مدلهای مختلف انتخاب کنید. چند نوع از بردهای آردوینو را میتوانید در تصویر مشاهده کنید. لازم به ذکر است تنوع بردهای آردوینو بسیار زیاد است. به این ترتیب جهت اطلاع از همه محصولات میتوانید به سایت رسمی آردوینو مراجعه کنید.
در این مقاله سعی داریم ویژگیهای کلی و مشترک بردهای Arduino را بررسی کنیم. توجه داشته باشید همانطور که انواع مختلف بردهای آردوینو برخی ویژگیهای مشترک با یکدیگر دارند، در برخی مشخصات نیز با یکدیگر تفاوتهای اساسی دارند. به همین علت جهت آشنایی دقیق با ویژگیهای خاص هر ماژول بهتر است به دیتا شیت آن مراجعه کنید. با توجه به اینکه برد Arduino Uno جزو پرکاربرد ترین بردها است، برای معرفی اجزای مختلف آردوینو در این مقاله از آن استفاده میکنیم.
بررسی ویژگیهای سختافزاری
پردازشگر اصلی
مهم ترین جزء هر برد آردوینو، میکروکنترلر آن است. این میکروکنترلر که در اصل واحد پردازش اطلاعات و تحلیل دستورات و تصمیمگیری است، انواع مختلفی دارد. به طور مثال در برد آردوینو اونو این پردازنده اصلی از نوعATmega328P و در آردوینو مگا ATmega2560 از خانواده میکروپروسسورهای AVR هستند در حالی که برد Arduino due مجهز به آی سی AT91SAM3X8E از خانواده میکروکنترلرهای آرم است.
میکروکنترلر برد آردوینو UNO در تصویر با رنگ قرمز مشخص شده است. برد Arduino Uno خود دارای چندین مدل است. رایج ترین مدل های آردواینو اونو ورژن R3 و CH340 است. همچنین از لحاظ نوع میکروکنترلر نیز، هم پکیج SMD و هم آی سی DIP میکروکنترلر موجود است. باید توجه داشت که این مدلها و ورژنها از لحاظ عملکرد، ابعاد، ترتیب پایهها، تعداد پایهها و محل قرارگیری کانکتورها با یکدیگر تفاوتی ندارند و کاملا مشابه هستند.
در این تصویر، ورژن بردی که میکروکنترلر SMD روی آن نصب شده است ch340 است. برد سمت چپ که میکروکنترلر نوع DIP روی آن نصب است ورژن R3 است.
پروگرمر آردوینو
با هدف سادهسازی و آسان نمودن پروسه انتقال کد به میکروکنترلر، تیم آردوینو از یک آی سی جداگانه جهت انتقال برنامه به میکروکنترلر اصلی استفاده کرده است. آی سی مورد استفاده برای پروگرام کردن برد اردوینو در ورژن R3 از نوع ATmega16U2 است. این در حالی است که در ورژن ch340 از چیپ CH340G به عنوان رابط بین کامپیوتر و پردازنده اصلی استفاده شده است. این آی سی ها در تصویر با رنگ زرد نمایش داده شده اند.
به این ترتیب جهت انتقال کد از کامپیوتر به آردوینو، به هیچ وسیله اضافه ای نیاز ندارید. کافیست درایور سازگار با نوع آردوینو خود را نصب کنید و کابل مناسب را تهیه کنید و به کانکتور، که با رنگ آبی در تصویر بالا مشخص شده است، متصل نمایید.
آشنایی با پایهها
در بردهای آردوینو جهت سهولت اتصال و استفاده، تعدادی پایه ورودی/خروجی در نظر گرفته شده است. تعداد و چیدمان این پایهها بر اساس مدل و نوع آردوینو ممکن است متفاوت باشد؛ اما به طور کلی بردهای آردوینو دارای سه دسته بندی کلی در پایه های خود هستند. 1- پایههای دیجیتال (رنگ سبز) 2- پایههای آنالوگ ورودی (رنگ نارنجی) 3- پایههای تغذیه (رنگ بنفش)
البته علاوه بر دسته بندی فوق، پایههای PWM نیز روی برخی بردهای آردوینو تعبیه شدهاند. پایه pwm روی آردوینو معمولا در قسمت پین دیجیتال قرار میگیرد ولی در اصل مانند پایه آنالوگ خروجی عمل میکند. در ماژول آردوینو اونو، شش پایه PWM وجود دارد که به عنوان پایه دیجیتال معمولی نیز قابل استفاده هستند.
پینهای دیجیتال میتوانند به صورت خروجی یا ورودی مورد استفاده قرار بگیرند و صرفا مقادیر 0 یا 1 (HIGH/LOW) برای آنها قابل قبول است. در برد Arduino Uno چهارده پایه دیجیتال در نظر گرفته شده است.
پایههای آنالوگ ورودی برد آردوینو UNO ده بیتی هستند، یعنی ورودی مورد نظر عددی در بازه 0 تا 1023 نمایش داده می شود. تعداد این پایه ها در این بورد شش عدد است.
تعدادی پایه تغذیه نیز در بردهای آردوینو وجود دارد. پینهای تغذیه در اصل انشعابی از ولتاژ رگوله شده توسط رگولاتور داخلی برد آردوینو هستند. علاوه بر پایههایی که ولتاژ 5 ولت و 3.3 ولت را تامین میکنند، چند پین GND نیز در این بردها دیده میشود تا اتصال انواع ماژولهای کاربردی به درستی انجام شود. از این پایههای تغذیه میتوان برای اتصال و تامین تغذیه سنسورها استفاده نمود.