درباره اردوینو ( Arduino )

آردوینو (به انگلیسی: Arduino) یک پلتفرم سختافزاری و نرمافزاری متنباز است.
پلتفرم Arduino شامل یک میکروکنترلر تکبردی متنباز است که قسمت سختافزار Arduinoرا تشکیل میدهد.
علاوه بر این، پلتفرم Arduinoیک نرمافزار Arduino IDE که به منظور برنامهنویسی برای بردهای آردوینو طراحی شدهاست و
یک بوت لودر نرمافزاری که بر روی میکروکنترلر بارگذاری میشود را در بر میگیرد.
پلتفرم آردوینو به منظور تولید سریع و ساده پروژههای سختافزاری تعاملی و ساخت وسایلی که با محیط تعامل داشته باشند طراحی شدهاست،
البته بردهای آردوینو اهداف آموزشی را نیز دنبال میکنند.
اغلب بردهای Arduino که تمام آنها سختافزار متنباز هستند بر پایه میکرو کنترلر ایویآر اتمل و تعداد کمی از بردهای Arduino بر پایه میکروکنترلرهای
آرم اتمل طراحی شدهاند. به عنوان مثال برد Arduino UNO که پرکاربردترین برد آردوینو و برد پایه آردوینو در اکثر دورههای آموزش آردوینو است
و بر پایه میکروکنترلر AVR ATmega328 ساخته شدهاست،
دارای رابط یواسبی جهت بارگذاری برنامه و ارتباط با کامپیوتر، ۶ پین ورودی آنالوگ و همچنین ۱۴ پین ورودی/خروجی دیجیتال است که شما
را قادر میسازند تا برد Arduino را به قطعات، سنسورها، بردها و ماژولهای دیگری متصل کنید. تعداد ورودی خروجیهای آنالوگ و
دیجیتال در مدلهای مختلف بردهای Arduino با توجه به میکروکنترلر اصلی استفاده شده بر روی برد متفاوت است.
Arduino میتواند جهت طراحی و ساخت سریع و آسان وسایل تعاملی مورد استفاده قرار گیرد. به عنوان مثال فرض کنید شما دوست دارید وسیلهای داشته باشید
که با استفاده از گوشی موبایلتان بتوانید چراغ اتاقتان را خاموش و روشن کنید. یا دوست دارید زمانی که اتاق شما گرم میشود کولر اتاقتان روشن شود و
شبها که دمای اتاق پایین میآید کولر اتاق شما به صورت خودکار خاموش شود! اینها وسایل تعاملی هستند که Arduino به ساخت سریع و بی درد سر آنها کمک میکند.
برد آردوینو میتواند مقادیر ورودی را از تعداد زیادی سنسور و کلید و… بخواند و بر اساس برنامه ای که درون آن بارگذاری شدهاست تصمیم بگیرد
و خروجی خاصی که میتواند کنترل تعدادی لامپ، موتور و … را برای شما انجام دهد. Arduino در سال ۲۰۰۵ به منظور ایجاد راهی ارزان و
ساده برای برنامهنویسی اشیایی تعاملی ایجاد شد. Arduino به همراه یک محیط یکپارچه توسعه نرمافزار (IDE) ساده ارائه میشود که
در رایانههای عادی قابل اجرا است که اجازهٔ برنامهنویسی به کمک سی یا سی++ را برای Arduino میدهد.
Arduino میتواند پارامترهایی مانند نور محیط، کلیدها یا حتی یک ایمیل را به عنوان ورودی دریافت نماید و بعد از پردازش،
خروجیهایی مانند روشن کردن یک وسیلهٔ برقی، تغییر رنگ LEDها یا ارسال یک ایمیل یا نظیر آن را ارائه دهد.
پلتفرم آردوینو شامل نرمافزار و سختافزار متن باز میشود. سختافزار Arduino متشکل از بردهای مختلفی بر پایه میکرو کنترلرهای مختلف است که پر مصرفترین سختافزار Arduino ،
Arduino UNO است که از میکرو کنترلر Atmega328 استفاده میکند و در بسیاری از پروژههای دانشجویی، رباتیک و پروژههای تحقیقاتی کاربرد دارد.
تاریخچه
ایدهٔ ساخت Arduino در سال ۲۰۰۳ میلادی در انستیتو طراحیتعاملی ایورئا در کشور ایتالیا شکل گرفت. ایده عبارت بود از ساخت وسیلهای ساده و کمهزینه
برای انجام پروژههای دیجیتال دانشجویان، بهخصوص آنهایی که آشنایی چندانی با اصول مهندسی و برنامهنویسی ندارند.
سه فرد کلیدی در به ثمر نشاندن این ایده نقش داشتند:
هرناندو باراگان، ماسیمو بانزی، و کیسی ریس.
باراگان یکی از دانشجویان انستیتو ایورئا بود که تصمیم گرفت پایاننامهٔ کارشناسیارشد خود را در این زمینه اجراء نماید.
بانزی و ریس نیز استادان راهنمای پایاننامهٔ باراگان بودند. تا آن زمان هنوز اسمی از Arduino در میان نبود.
نتیجهٔ پایاننامهٔ باراگان بسیار موفقیتآمیز بود و منجر به ایجاد سختافزار و نرمافزاری شد که وایرینگ نام گرفت.
سختافزار وایرینگ ویژگیهای مورد نظر را نسبت به سایر نمونههای موجود در بازار آن زمان داشت یعنی ساده و کمهزینه بود.
نرمافزار وایرینگ نیز بر مبنای یکی از زبانهای برنامهنویسی موجود به نام پراسسینگ تهیه شده بود.
پس از اتمام پایاننامه، بانزی درصدد کاهش هزینههای سختافزار وایرینگ برآمد و در سال ۲۰۰۵ میلادی با همکاری دیوید کوآرتلس
و دیوید ملیس (که بهترتیب کارمند و دانشجوی انستیتو ایورئا بودند)، به توسعهٔ پروژهٔ وایرینگ پرداخت و نام آن را به آردوینو تغییر داد.
این نام جدید برگرفته از نام کافهای به نام آردوین در شهر ایورئا بود که اکثر جلسات گروه در آنجا تشکیل میشد.
واژهٔ آردوین، نام یکی از شاهزادگان قدیم ایتالیا است که زمانی حکمران شهر ایورئا بود و در قرن یازدهم میلادی به پادشاهی ایتالیا رسید.
در سریال تلویزیونی گاتهام فصل4 قسمت18 آردینو به عنوان یک قسمت از یک بمب کنترل از راه دور استفاده شد.
نرمافزار آردوینو

آردوینو، یک نرمافزار متن باز اختصاصی برای برنامهنویسی بردهای خود تهیه کردهاست که به نام نرمافزار آردوینو IDE (محیط توسعهٔ یکپارچه آردوینو) شناخته میشود.
نرمافزار آردوینو بدون نیاز به پروگرامر میتواند مستقیماً میکرو کنترلر شما را برنامهریزی نماید. امکاناتی مانند ترمینال سریال نیز در داخل نرمافزار
آردوینو قرارداده شده تا بتوانید به وسیله ارتباط سریال و USB برنامههایی را که برای میکرو کنترلر مینویسید عیبیابی نمایید.
میتوان مقادیر ADC و وضعیت پینها یا هر اطلاعات دیگری را به ترمینال سریال آردوینو فرستاد و از طریق کامپیوتر اطلاعات را از میکرو کنترلر دریافت کرد.
همانطور که پیش تر اشاره شد، شیوه نگارش دستورها در این نرمافزار، تا حدود زیادی مشابه برنامهنویسی به زبان
C و ++C است. همانطور که در شکل میبینید، محیط این برنامه از چند بخش اصلی تشکیل میشود:
- منوی دستورها
- پنجره کدنویسی
- پنجره کامپایلر
- اطلاعات Baud rate و port
- Serial monitor
سختافزار آردوینو
همانطور که در بالا گفته شد، آردوینو از دو بخش سختافزاری و نرمافزاری تشکیل میشود. مدلهای مختلفی از بردهای سختافزاری آردوینو وجود دارد
که یکی از آنها، مدل اونو است. آردوینو اونو (Arduino UNO) یکی از پرکاربردترین مدلهای سختافزار آردوینو است.
در این برد، از یک میکروکنترلر ATmega328P به عنوان پردازشگر و حافظه استفاده میشود. آردوینو مدل اونو، یکی از متداولترین نمونهها
برای آموزش آردوینو است. سختافزار آردوینو اونو از چهار بخش کلی زیر تشکیل میشود (شکل زیر):

- میکروکنترلر
- بخش تغذیه
- بخش ارتباط با رایانه
- درگاههای گروهی

بخشهای اصلی برد آردوینو (اونو)
در شکل و جدول زیر، قطعات تشکیل دهنده برد آردوینو (مدل اونو-نسخه ۳) معرفی شدهاند.قطعات برد آردوینو (مدل اونو-نسخه ۳)
شماره قطعه | نامقطعه | مشخصه قطعه | توضیح |
---|---|---|---|
۱ | میکروکنترلر | ATmega328 | پردازش و حافظه |
۲ | سوکت | ۲۸پایه | سهولت تعویض میکروکنترلر |
۳ | درگاههای ارتباطی | پینهدر مادگی | ارتباط با پایههای میکروکنترلر |
۴ | درگاههای ارتباطی | پینهدر نری | ارتباط سریال (بدون یواسبی) با میکروکنترلر |
۵ | درگاه یواسبی | USB port type B | ارتباط یواسبی رایانه با میکروکنترلر |
۶ | درگاه تغذیه | ۵/۵ میلیمتر | اتصال فیش باتری یا آداپتور برای تغذیهٔ بورد |
۷ | کلید فشاری | تکسوییچ | ریست بورد و راهاندازی مجدد برنامه |
۸ | میکرو پردازشگر | ATmega16U2 | مبدّل ارتباط سریال به یواسبی |
۹ | نوسانساز کریستالی | ۱۶ مگاهرتز | ایجاد سیگنال زمان برای میکرو پردازشگر یواسبی |
۱۰ | نوسانساز سرامیکی | ۱۶ مگاهرتز | ایجاد سیگنال زمان برای میکروکنترلر آردوینو(یک خازن ۱۰ پیکوفاراد نیز داخل قطعه تعبیه شدهاست) |
۱۱ | مقاومت | ۱ مگااهم | حفظ تعادل نوسان در نوسانساز سرامیکی |
۱۲ | خازن | ۰/۱ میکروفاراد | حذف نویز از جریان تغذیهٔ میکروکنترلر |
۱۳ | خازن | ۴۷ میکروفاراد | فیلتر جریان تغذیهٔ خروجی |
۱۴ | خازن | ۴۷ میکروفاراد | فیلتر جریان تغذیهٔ ورودی |
۱۵ | دیود | MRA4007T3G | محافظت از مدار در مقابل ولتاژ معکوس تغذیه |
۱۶ | تنظیمکنندهٔ ولتاژ | LD1117S50TR | تنظیم ولتاژ ورودی به آردوینو |
۱۷ | فیوز | MF-MSMF050-2 | فیوز درگاه یواسبی، ۵۰۰ میلیآمپر |
۱۸ | ترانزیستور | FDN340P | سوییچ بین درگاهتغذیه و یواسبی (برای تغذیهٔ بورد) |
۱۹ | آیسی | LMV358 | کنترلکنندهٔ ترانزیستور ۱۸ |
۲۰ | خازن | ۱ میکروفاراد | فیلتر برای آیسی ۱۹ |
۲۱ | تنظیمکنندهٔ ولتاژ | LP2985 | تنظیمکنندهٔ ولتاژ ۳/۳ ولت |
۲۲ | خازن | ۲/۲ میکروفاراد | فیلتر ولتاژ خروجی از LP2985 |
۲۳ | نویزگیر فریت | BLM21 | فیلتر حذفکنندهٔ نویزهای محیطی فرکانسبالا |
۲۴ | دیود | 1N4148W-7-F | کنترل نوسانات ولتاژ در زمان ریست |
۲۵ | خازن | ۱ میکروفاراد | رابط پایههای Ucap و GND پردازشگر یواسبی |
۲۶ | واریستور | CG0603MLC | جلوگیری از ورود الکتریستهٔ ساکن |
۲۷ | مقاومت آرایهای | ۲۲ اهم | حفاظت از درگاههای تبادل اطلاعات یواسبی |
۲۸ | واریستور | CG0603MLC | جلوگیری از ورود الکتریستهٔ ساکن |
۲۹ | درگاه دسترسی | – | امکان دسترسی به پایههای PB4 تا PB7 ازآیسی ATmega16U2 را فراهم میسازد |
۳۰ | خازن | ۰/۱ میکروفاراد | حذف نویز از جریان تغذیهٔ میکرو پردازشگر |
۳۱ | خازن | ۲۲ پیکوفاراد | خازن نوسانساز کریستالی |
۳۲ | مقاومت | ۱ مگااهم | حفظ تعادل نوسان در نوسانساز کریستالی |
۳۳ | خازن | ۲۲ پیکوفاراد | خازن نوسانساز کریستالی |
۳۴ | خازن | ۰/۱ میکروفاراد | حذف نویز از ولتاژ ورودی مبنا |
۳۵ | الایدی | زرد | الایدی چشمکزن قابل برنامهریزی |
۳۶ | مقاومت آرایهای | ۱ کیلواهم | محافظت از الایدیهای ۳۵، ۳۷ و ۳۸ |
۳۷ | الایدی | زرد | نشانگر تبادل دادههای سریال (خروج) |
۳۸ | الایدی | زرد | نشانگر تبادل دادههای سریال (ورود) |
۳۹ | خازن | ۰/۱ میکروفاراد | حذف نویز برای میکرو پردازشگر |
۴۰ | خازن | ۰/۱ میکروفاراد | ارسال پالس ریست از ATmega16U2 به ATmega328 |
۴۱ | اتصال | لحیم | اگر قطع شود، آردوینو ریست خودکار نمیشود |
۴۲ | مقاومت آرایهای | ۱۰ کیلواهم | مقاومت ریست میکروکنترلر |
۴۳ | الایدی | سبز | نشانگر روشن/خاموش آردوینو |
۴۴ | مقاومت آرایهای | ۱ کیلواهم | تبادل دادههای سریال |
۴۵ | دیود | cd1206 | کنترل نوسانات ولتاژ در زمان ریست |
بازنشستهها
بردهای این دسته بازنشسته شدهاند؛ یعنی دیگر توسط شرکت سازنده اصلی آن تولید نمیشوند.
- آردوینو یون (Arduino YUN)
- آردوینو دیو (Arduino DUE)
- آردوینو مگا ADK (Arduino MEGA ADK)
- آردوینو روبوت (Arduino ROBOT)
- آردوینو اترنت (Arduino ETHERNET)
- آردوینو لئوناردو (Arduino LEONARDO)
- آردوینو اسپلورا (Arduino ESPLORA)
- آردوینو مینی (Arduino MINI)
- آردوینو فیو (Arduino FIO)