آردوینو
آردوینو (به انگلیسی: Arduino) یک پلتفرم سختافزاری و نرمافزاری متنباز است. پلتفرم آردوینو شامل یک میکروکنترلر تکبردی متنباز است که قسمت سختافزار آردوینو را تشکیل میدهد. علاوه بر این، پلتفرم آردوینو یک نرمافزار آردوینو IDE که به منظور برنامهنویسی برای بردهای آردوینو طراحی شدهاست و یک بوت لودر نرمافزاری که بر روی میکروکنترلر بارگذاری میشود را در بر میگیرد.[1] پلتفرم آردوینو به منظور تولید سریع و ساده پروژههای سختافزاری تعاملی و ساخت وسایلی که با محیط تعامل داشته باشند طراحی شدهاست،[2] البته بردهای آردوینو اهداف آموزشی را نیز دنبال میکنند.
توسعهدهنده | آردوینو |
---|---|
سازنده | مختلف |
گونه | ریزکنترلگر تکبردی |
سیستمعامل | ندارد |
سیپییو | ATmega328P |
حافظه | SRAM |
ذخیرهسازی | Flash, EEPROM |
اغلب بردهای آردوینو که تمام آنها سختافزار متنباز هستند بر پایه میکرو کنترلر ایویآر اتمل و تعداد کمی از بردهای آردوینو بر پایه میکروکنترلرهای آرم اتمل طراحی شدهاند. به عنوان مثال برد آردوینو UNO که پرکاربردترین برد آردوینو و برد پایه آردوینو در اکثر دورههای آموزش آردوینو است و بر پایه میکروکنترلر AVR ATmega328 ساخته شدهاست، دارای رابط یواسبی جهت بارگذاری برنامه و ارتباط با کامپیوتر، ۶ پین ورودی آنالوگ و همچنین ۱۴ پین ورودی/خروجی دیجیتال است که شما را قادر میسازند تا برد آردوینو را به قطعات، سنسورها، بردها و ماژولهای دیگری متصل کنید. تعداد ورودی خروجیهای آنالوگ و دیجیتال در مدلهای مختلف بردهای آردوینو با توجه به میکروکنترلر اصلی استفاده شده بر روی برد متفاوت است.
آردوینو میتواند جهت طراحی و ساخت سریع و آسان وسایل تعاملی مورد استفاده قرار گیرد. به عنوان مثال فرض کنید شما دوست دارید وسیلهای داشته باشید که با استفاده از گوشی موبایلتان بتوانید چراغ اتاقتان را خاموش و روشن کنید. یا دوست دارید زمانی که اتاق شما گرم میشود کولر اتاقتان روشن شود و شبها که دمای اتاق پایین میآید کولر اتاق شما به صورت خودکار خاموش شود! اینها وسایل تعاملی هستند که آردوینو به ساخت سریع و بی درد سر آنها کمک میکند. برد آردوینو میتواند مقادیر ورودی را از تعداد زیادی سنسور و کلید و… بخواند و بر اساس برنامه ای که درون آن بارگذاری شدهاست تصمیم بگیرد و خروجی خاصی که میتواند کنترل تعدادی لامپ، موتور و … را برای شما انجام دهد. آردوینو در سال ۲۰۰۵ به منظور ایجاد راهی ارزان و ساده برای برنامهنویسی اشیایی تعاملی ایجاد شد. آردوینو به همراه یک محیط یکپارچه توسعه نرمافزار (IDE) ساده ارائه میشود که در رایانههای عادی قابل اجرا است که اجازهٔ برنامهنویسی به کمک سی یا سی++ را برای آردوینو میدهد.[3]
آردوینو میتواند پارامترهایی مانند نور محیط، کلیدها یا حتی یک ایمیل را به عنوان ورودی دریافت نماید و بعد از پردازش، خروجیهایی مانند روشن کردن یک وسیلهٔ برقی، تغییر رنگ LEDها یا ارسال یک ایمیل یا نظیر آن را ارائه دهد.[4]
پلتفرم آردوینو شامل نرمافزار و سختافزار متن باز میشود. سختافزار آردوینو متشکل از بردهای مختلفی بر پایه میکرو کنترلرهای مختلف است که پر مصرفترین سختافزار آردوینو، Arduino UNO است که از میکرو کنترلر Atmega328 استفاده میکند و در بسیاری از پروژههای دانشجویی، رباتیک و پروژههای تحقیقاتی کاربرد دارد.
تاریخچه
ایدهٔ ساخت آردوینو در سال ۲۰۰۳ میلادی در انستیتو طراحیتعاملی ایورئا در کشور ایتالیا شکل گرفت. ایده عبارت بود از ساخت وسیلهای ساده و کمهزینه برای انجام پروژههای دیجیتال دانشجویان، بهخصوص آنهایی که آشنایی چندانی با اصول مهندسی و برنامهنویسی ندارند. سه فرد کلیدی در به ثمر نشاندن این ایده نقش داشتند:
هرناندو باراگان، ماسیمو بانزی، و کیسی ریس.
باراگان یکی از دانشجویان انستیتو ایورئا بود که تصمیم گرفت پایاننامهٔ کارشناسیارشد خود را در این زمینه اجراء نماید. بانزی و ریس نیز استادان راهنمای پایاننامهٔ باراگان بودند. تا آن زمان هنوز اسمی از آردوینو در میان نبود. نتیجهٔ پایاننامهٔ باراگان بسیار موفقیتآمیز بود و منجر به ایجاد سختافزار و نرمافزاری شد که وایرینگ نام گرفت. سختافزار وایرینگ ویژگیهای مورد نظر را نسبت به سایر نمونههای موجود در بازار آن زمان داشت یعنی ساده و کمهزینه بود. نرمافزار وایرینگ نیز بر مبنای یکی از زبانهای برنامهنویسی موجود به نام پراسسینگ تهیه شده بود.
پس از اتمام پایاننامه، بانزی درصدد کاهش هزینههای سختافزار وایرینگ برآمد و در سال ۲۰۰۵ میلادی با همکاری دیوید کوآرتلس و دیوید ملیس (که بهترتیب کارمند و دانشجوی انستیتو ایورئا بودند)، به توسعهٔ پروژهٔ وایرینگ پرداخت و نام آن را به آردوینو تغییر داد. این نام جدید برگرفته از نام کافهای به نام آردوین در شهر ایورئا بود که اکثر جلسات گروه در آنجا تشکیل میشد. واژهٔ آردوین، نام یکی از شاهزادگان قدیم ایتالیا است که زمانی حکمران شهر ایورئا بود و در قرن یازدهم میلادی به پادشاهی ایتالیا رسید.[5]
در سریال تلویزیونی گاتهام فصل4 قسمت18 آردینو به عنوان یک قسمت از یک بمب کنترل از راه دور استفاده شد.
نرمافزار آردوینو
آردوینو، یک نرمافزار متن باز اختصاصی برای برنامهنویسی بردهای خود تهیه کردهاست که به نام نرمافزار آردوینو IDE (محیط توسعهٔ یکپارچه آردوینو) شناخته میشود. نرمافزار آردوینو بدون نیاز به پروگرامر میتواند مستقیماً میکرو کنترلر شما را برنامهریزی نماید. امکاناتی مانند ترمینال سریال نیز در داخل نرمافزار آردوینو قرارداده شده تا بتوانید به وسیله ارتباط سریال و USB برنامههایی را که برای میکرو کنترلر مینویسید عیبیابی نمایید. میتوان مقادیر ADC و وضعیت پینها یا هر اطلاعات دیگری را به ترمینال سریال آردوینو فرستاد و از طریق کامپیوتر اطلاعات را از میکرو کنترلر دریافت کرد. همانطور که پیش تر اشاره شد، شیوه نگارش دستورها در این نرمافزار، تا حدود زیادی مشابه برنامهنویسی به زبان C و ++C است. همانطور که در شکل میبینید، محیط این برنامه از چند بخش اصلی تشکیل میشود:
- منوی دستورها
- پنجره کدنویسی
- پنجره کامپایلر
- اطلاعات Baud rate و port
- Serial monitor
سختافزار آردوینو
همانطور که در بالا گفته شد، آردوینو از دو بخش سختافزاری و نرمافزاری تشکیل میشود. مدلهای مختلفی از بردهای سختافزاری آردوینو وجود دارد که یکی از آنها، مدل اونو است. آردوینو اونو (Arduino UNO) یکی از پرکاربردترین مدلهای سختافزار آردوینو است. در این برد، از یک میکروکنترلر ATmega328P به عنوان پردازشگر و حافظه استفاده میشود. آردوینو مدل اونو، یکی از متداولترین نمونهها برای آموزش آردوینو است. سختافزار آردوینو اونو از چهار بخش کلی زیر تشکیل میشود (شکل زیر):
- میکروکنترلر
- بخش تغذیه
- بخش ارتباط با رایانه
- درگاههای گروهی
در شکل و جدول زیر، قطعات تشکیل دهنده برد آردوینو (مدل اونو-نسخه ۳) معرفی شدهاند.[5]
شماره
قطعه |
نام
قطعه |
مشخصه
قطعه |
توضیح |
---|---|---|---|
۱ | میکروکنترلر | 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 | کنترل نوسانات ولتاژ در زمان ریست |
ماژولها و شیلدهای آردوینو
با استفاده از آردوینو و به کمک ماژولها و شیلدهای متنوعی که برای آردوینو ساخته شده میتوان پروژههای مختلفی مانند اینترنت اشیا، خانههای هوشمند و محصولات تعاملی را پیادهسازی کرد. ماژولها و شیلدهای آردوینو را بدون نیاز به پروگرامر میتوان از طریق کابل USB و محیط یکپارچه توسعه نرمافزار متنباز آردوینو پروگرام کرد.
ماژول یا مدول، معمولاً به مجموعه ای یکپارچه از یک برد مدارچاپی، تعدادی قطعه الکترونیک، و یک حسگر یا عملگر گفته میشود. ماژول با استفاده از سیم رابط به پینهای برد آردوینو وصل میشود. در شکل زیر تصویر ماژول حسگر صدا آمدهاست.
شیلد (اصطلاحاً یعنی سپر)، به برد الکترونیکی گفته میشود که مستقیماً از طریق پینهای آن بر روی برد آردوینو سوار میشود و قابلیتهای آن را افزایش میدهد. راهاندازی شیلدها معمولاً آسان است ولی ممکن است نیاز به نصب کتابخانه آنها در نرمافزار آردوینو IDE باشد.
لیست بعضی از معروفترین شیلدهای آردوینو در زیر آمدهاست:
- شیلد XBee برای ارتباط بیسیم
- شیلد شبکه اترنت
- شیلد WiFi
- شیلد سیمکارت
- شیلد GPS
- شیلد کنترل موتور
- شیلد CNC
- شیلد اهرمک (جوی استیک)
- شیلد کارت حافظه
- شیلد MP3 Player
- شیلد دوربین
- شیلد صفحه نمایش
- شیلد RFID و NFC
- شیلد باتری
- شیلد برد بورد و نمونه سازی[8]
بازنشستهها
بردهای این دسته بازنشسته شدهاند؛ یعنی دیگر توسط شرکت سازنده اصلی آن تولید نمیشوند.
- آردوینو یون (Arduino YUN)
- آردوینو دیو (Arduino DUE)
- آردوینو مگا ADK (Arduino MEGA ADK)
- آردوینو روبوت (Arduino ROBOT)
- آردوینو اترنت (Arduino ETHERNET)
- آردوینو لئوناردو (Arduino LEONARDO)
- آردوینو اسپلورا (Arduino ESPLORA)
- آردوینو مینی (Arduino MINI)
- آردوینو فیو (Arduino FIO)
آردوینو GSM شیلد (Arduino GSM SHIELD)
- آردوینو اترنت شیلد (Arduino ETHERNET SHIELD)
- آردوینو وایفای شیلد (Arduino WIFI SHIELD)
- آردوینو USB هاست شیلد (Arduino USB HOST SHIELD)
- آردوینو موتور شیلد (Arduino MOTOR SHIELD)
- آردوینو وایرلس SD شیلد (Arduino WIRELESS SD SHIELD)
- آردوینو وایرلس پروتو شیلد (Arduino WIRELESS PROTO SHIELD)
- آردوینو LCD نمایشگر (Arduino LCD SCREEN)[9]
- نگارخانه
- آردوینو Diecimila
- آردوینو Duemilanove (rev 2009b)
- آردوینو UNO
- آردوینو Leonardo
- آردوینو Mega
- آردوینو Nano
- آردوینو Due (ARM-based)
- LilyPad Arduino (rev 2007)
منابع
- «آردوینو چیست و چه کارهایی میتوان با آردوینو انجام داد؟». دیجی نیک. ۲۰۱۶-۰۴-۲۱. دریافتشده در ۲۰۱۹-۰۳-۱۵.
- "Official slogan". Arduino Project. Retrieved 2013-12-31.
- Wikipedia contributors, "Arduino," Wikipedia, The Free Encyclopedia, http://en.wikipedia.org/w/index.php?title=Arduino&oldid=603100523 (accessed April 10, 2014).
- "Introduction". Arduino. Retrieved 2018-01-02.
- اردشیر حکیمی. کلید آردوینو. ناقوس.
- «Interfacing sound sensor with arduino». ELECTRONICS HUB.
- «SparkFun Electronics». www.sparkfun.com. دریافتشده در ۲۰۲۰-۰۲-۰۸.
- آموزش آردوینو: (arduinoedu.blogfa)
- «RETIRED». www.arduino.cc.