معرفی میکروکنترلر Arduino
Arduino یک بورد متنبازِ توسعه میکروکنترلر هست. به عبارت ساده تر، با استفاده از Arduino میشه دادههای سنسورها رو خوند و اشیایی مثل موتور و چراغها رو کنترل کرد. در نتیجه میتونیم برنامههایی رو در این بورد بارگذاری کنیم و این بود بتونه با اشیای موجود در دنیای واقعی تعامل برقرار کنه. با استفاده از این بورد میشه دستگاههایی ساخت که به دنیای پیرامون پاسخ و واکنش نشون میدن.
به عنوان مثال، میشه اطلاعات یک سنسور رطوبت داخل یک گلدون رو خوند و اگر خاکش خیلی خشک شد سیستم خودکار آبرسانی رو روشن کرد. یا اینکه میشه یک سرور چت مستقل ایجاد کرد و اونو به router اینترنت وصل کرد. یا جوری اونو برنامهریزی کرد که هر وقت گربهتون از در مخصوص حیوانات خانگی رد شد، یک توییت ارسال کنه و یا جوری اونو برنامهریزی کرد که هر صبح بعد از به صدا دراومدن ساعت، قوری قهوه رو روشن کنه.
به طور کلی، Arduino میتونه با تمام وسایلی که با برق کار میکنن تعامل برقرار کنه. و اگر وسیلهای هم داشتین که الکتریکی نبود باز هم میتونین برای تعامل باهاش از وسایلی استفاده کنین که الکتریکی هستن (مثل موتورها و الکترومغناطیس).
قابلیتهای Arduino بی نهایت هستن. به همین دلیل نمیشه تو یک مقاله آموزشی همه چی رو در مورد Arduino توضیح داد. در این نوشتار سعی کردیم اطلاعات و مهارتهای پایهای که برای راهاندازی و اجرای Arduino لازم دارید رو در اختیارتون بذاریم.
انواع مختلف میکروکنترلر های Arduino
چندین نوع Arduino وجود داره که شما میتونین یکیش رو انتخاب کنین. در ادامه توضیح مختصری در مورد بوردهای Arduino ارائه میدیم که شناختهشدهتر هستن.
Arduino Uno
Arduino Uno شناختهشده ترین نوع Arduino، هست. بیشتر مردم زمانیکه در مورد Arduino صحبت میکنن، منظورشون این مدل هست. در قسمت بعد، به بررسی ویژگیهای اون میپردازیم.
Arduino NG، Diecimila و Duemilanove (نسخههای قدیمی)
NG، Diecimila و Duemilanove نسخههای قدیمی Arduino Uno هستند. نکتهای که در مورد نسخههای قدیمی باید بهش توجه داشته باشید اینه که اونا فاقد یک سری ویژگیهای Arduino Uno هستن. برخی از تفاوتهای کلیدی Arduino Uno و نسخههای قدیمی عبارتند از:
- Diecimila و NG از یک تراشه ATMEGA168 استفاده میکنن ( برخلاف تراشه قدرتمند ATMEGA328)،
- Diecimila و NG کنار پورت USB یک سیم جامپر دارن و باید به صورت دستی انتخاب کنی که از باتری میخواهی استفاده کنی یا USB
- در Arduino NG لازمه که قبل از بارگذاری برنامه کلید rest روی بورد رو برای چند ثانیه نگه دارید.
Arduino Mega 2560
Arduino Mega 2560 به لحاظ محبوبیت در رتبه دوم قرار میگیره. Arduino Mega شبیه Arduino Uno هست. این نسخه 256kb حافظه داره (به عبارت دیگه، 8 برابر Uno). Arduino Mega 54 پین ورودی و خروجی داره که 16تاش پین آنالوگ هستن و 14تاش میتونن PWM انجام بدن. با این حال، تمامی این قابلیتهای جدید باعث شدن که اندازه این بورد بزرگتر باشه. ممکنه این بورد باعث بشه در نهایت پروژه قدرتمندتری داشته باشین، اما به خاطر استفاده از این بورد پروژهتون بزرگتر هم خواهد بود. برای کسب اطلاعات بیشتر صفحه رسمی Arduino Mega 2560 رو چک کنین.
Arduino Mega ADK
این نسخه تخصصی Arduino در اصل یک Arduino Mega هست که به طور خاص برای تعامل با تلفنهای هوشمند اندروید طراحی شده. این نسخه هم در حال حاضر قدیمی به حساب میاد.
Arduino Yun
Arduino Yun به جای ATmega328 از یک تراشه ATMega32U4 استفاده میکنه. با این حال، چیزی که این نسخه رو از نسخههای قبلی متمایز میکنه اضافه کردن ریزپردازنده Atheros AR9331 هست. این بورد با تکیه بر این تراشه میتونه علاوه بر سیستم عامل Arduino، لینوکس رو هم اجرا کنه. این بورد Wi-Fi هم داره. به عبارت دیگه، این بورد رو میتونین برنامهنویسی کنین و کارهایی که با بوردهای دیگه Arduino انجام میدین با این نسخه هم انجام بدین، با این تفاوت که در این بورد میتونین از لینوکس و از طریق Wi-Fi به اینترنت وصل بشین. Arduino و Linux به سادگی میتونن با هم ارتباط برقرار کنن. همین مورد این بورد رو به یک بورد قدرتمند و انعطافپذیر تبدیل میکنه. برای آشنایی بیشتر با این بورد به صفحه رسمی Arduino Yun رجوع کنین.
Arduino Nano
اگر بوردی کوچکتر از بورد استاندارد Arduino میخواین، باید بگم که Arduino Nano برای شما ساخته شده! این نسخه یک تراشه ATMega328 داره، این نسخه از Arduino به اندازهای کوچک هست که در فضاهای خیلی کوچک جا میگیره. علاوه بر این، این نسخه رو میشه مستقیماً در بردبورد جای داد و به سادگی باهاش نمونهسازی کرد.
Arduino LilyPad
LilyPad در اصل برای دستگاههای پوشیدنی و اپلیکیشنهای e-textile طراحی شده. این نسخه به پارچه دوخته میشه و با استفاده از نخ رسانا به سایر قطعات قابل دوخت دیگه متصل میشه. در این نسخه باید از کابل برنامهنویسی سریال FTDI-USB TTL استفاده کرد. برای آشنایی بیشتر با این نسخه به صفحه Arduino LilyPad رجوع کنین.
ویژگیهای میکروکنترلر Arduino Uno
بعضیها بورد Arduino رو نوعی میکروکنترلر در نظر میگیرن، اما این تفکر اشتباهه. بورد Arduino در واقع یک بورد مدار هست که به طور خاص برای برنامهنویسی و نمونهسازی با میکروکنترلرهای Atmel طراحی و ساخته شده.
نکته جالب در مورد بورد Arduino اینه که نسبتاٌ ارزونه و مستقیماً به پورت USB کامپیوتر وصل میشه و راهاندازی و استفاده ازش خیلی آسونه ( در مقایسه با سایر بوردهای توسعه).
برخی از ویژگیهای کلیدی Arduino Uno عبارتند از:
- طراحی متنباز: مزیتی که متنباز بودن داره اینه که افراد زیادی میتونن از اون استفاده کنن و مشکلاتش رو رفع کنن. همین مورد هم باعث میشه به سادگی بتونین یک نفر رو پیدا کنین تا پروژهتون رو دیباگ کنه.
- رابط USB آسان: تراشهای که روی بورد قرار داره مستقیماً به پورت USB وصل میشه و به عنوان یک پورت سری(Serial port) مجازی در کامپیوترتون ثبت میشه. همین امر باعث میشه بتونین با اون تعامل برقرار کنین انگار که اون یک دستگاه سری(Serial device) هست. مزیت این کار اینه که ارتباطات سریال(Serial communication) یک پروتکل خیلی ساده است و به سادگی میشه از طریق USB اونو به کامپیوترهای مدرن و امروزی وصل کرد.
- مدیریت راحت برق و تنظیم ولتاژ: شما میتونین یک منبع تغذیه خارجی تا 12 ولت رو وصل کنین و ولتاژ اون رو روی 5v و 3v تنظیم کنین. در ضمن میشه اون رو از پورت USB و بدون هیچگونه برق خارجی تغذیه کرد.
- «مغز» میکروکنترلر یعنی تراشه ATmega328 با دسترسی آسان و قیمت مناسب رو میتونید خریداری کنین. این تراشه ویژگیهای سختافزاری بیشماری داره (مثل، تایمر، پینهای PWM، وقفههای داخلی و خارجی و چندین حالت sleep).
- کلاک 16mhz: شاید این سریعترین میکروکنترلر موجود نباشه اما برای خیلی از اپلیکیشنها به اندازه کافی سریع هست.
- 32kb فلش مموری برای ذخیره کد.
- 13 پین دیجیتال و 6 پین آنالوگ: از طریق این پینها میتونین سختافزارهای خارجی رو به Arduino وصل کنین. این پینها نقش مهمی در بسط قابلیتهای محاسباتی بورد Arduino به دنیای واقعی دارن. فقط کافیه دستگاهها و سنسورها رو به سوکتهای مناسب هر یک از این پینها وصل کنین.
- کانکتور ICSP برای میانبر زدن پورت USB و برقراری ارتباط مستقیم با Arduino به عنوان یک دستگاه سری. هنگامی که تراشه به مشکل بخوره و دیگه نتونه با کامپیوتر تعامل برقرار کنه، این پورت برای re-bootload کردن اون لازمه.
- یک LED تعبیهشده که به پین دیجیتال 13 وصله و کارش دیباگ کردن سریع کد هست.
- و در آخر، کلیدی برای راهاندازی مجدد برنامه روی تراشه
شناخت محیط توسعه Arduino IDE
قبل از اینکه بتونین پروژه ای با Arduino انجام بدین باید Arduino IDE رو دانلود و نصب کنین ( محیط یکپارچه توسعه). از اینجا به بعد به Arduino IDE، Arduino Programmer میگیم.
Arduino Programmer مبتنی بر Processing IDE هست و از زبانهای برنامهنویسی C و ++C استفاده میکنه.
اتصال میکروکنترلر
Arduino رو به پورت USB کامپیوتر وصل کنین.
هرچند Arduino به کامپیوتر وصل میشه، اما این بورد یک دستگاه USB واقعی نیست. این بورد یک تراشه مخصوص داره که باعث میشه وقتی که به پورت USB وصل شد روی کامپیوتر به عنوان یک پورت سریال مجازی نشون داده بشه. برای همین مهمه که بورد رو وصل کنین. اگه بورد وصل نباشه، پورت سریال مجازی که Arduino با اون کار میکنه نشون داده نمیشه ( چون تمامی اطلاعات مربوط به اون روی بورد Arduino قرار دارن).
جالبه بدونین تک تک بوردهای Arduino یک آدرس پورت سریال مجازی منحصر بهفرد دارن. به عبارت دیگه، هر وقت که یک بورد Arduino رو به کامپیوترتون وصل میکنین، باید پورت سریال رو مجدداً پیکربندی کنین.
Arduino Uno به یک کابل male USB A به male USB B نیاز داره.
تنظیمات میکروکنترلر Arduino
قبل از اینکه بتونین کاری در Arduino Programmer انجام بدین، باید board type و پورت سریال رو تعیین کنین.
برای تعیین بورد، به قسمت Tools –> Boards برید.
نسخه بوردی که ازش استفاده میکنین رو انتخاب کنین. از اونجایی که من از Arduino Uno استفاده میکنم، Arduino Uno رو انتخاب میکنم.
برای تعیین پورت سریال به قسمت Tools –> Serial Port برید.
پورت سریال که شبیه به dev/tty.usbmodem [random numbers]/ هست رو انتخاب کنین.
اجرای sketch
برنامههای Arduino، sketch نام دارن. Arduino Programmer میلیونها نمونه sketch داره که از قبل بارگذاری شدن. این تعداد sketch عالیه چون حتی اگه قبلاً هیچ چیزی رو هم برنامهنویسی نکرده باشین، میتونین یکی از این sketchها رو بارگذاری کنین و عمل مورد نظرتون رو با Arduino انجام بدین.
برای اینکه LED که به پین دیجیتال 13 وصل هست رو در حالت چشمکزن قرار بدین، نمونه blink رو بارگذاری کنین.
نمونه blink رو از مسیر :
Files –> Examples –> Basics –> Blink
میتونین پیدا کنین.
نمونه blink در اصل pin D13 رو خروجی در نظر میگیره و هر یک ثانیه یک بار LED آزمایشی تعبیهشده روی بورد Arduino رو خاموش و روشن (چشمک) میکنه.
پس از باز شدن نمونه blink با زدن کلید upload ( که شبیه یک پیکان به سمت راست هست) میتونین اون رو در تراشه ATMega328 نصب کنین.
توجه داشته باشین که LED که به پین 13 بورد Arduino وصل شده شروع به چشمکزدن میکنه. با تغییر مدت زمان تأخیر و زدن کلید upload میتونین نرخ چشمک زدن رو تغییر بدین.
جمع بندی
تا اینجا شما با انواع میکروکنترلر های مطرح Arduino به ویژه Arduino Uno و مشخصات اونها آشنا شدید. همچنین سعی کردیم محیط توسعه Arduino IDE رو بصورت کامل معرفی کنیم. با انجام مثال های ابتدایی این مقاله میتونید درک بهتری از روش کدنویسی این بورد داشته باشید. در بخش دوم به خصوصیات محیط توسعه Arduino IDE و همچنین به ورودی ها و خروجی های این بورد محبوب می پردازیم .
1 دیدگاه