**آردوینو آی‌دی‌ای** (Arduino IDE) نام نرم‌افزار متن‌باز و اختصاصی پلتفرم آردوینو است که بر مبنای زبان پراسسینگ نوشته شده‌است. محیط و ظاهر برنامه، با استفاده از زبان جاوا تهیه شده‌است. اصول نگارش دستورها در این نرم‌افزار، بسیار شبیه به نگارش به زبان سی‌پلاس‌پلاس سی پلاس‌پلاس و زبان سی (C) است. دستورهای نوشته شده در محیط این برنامه، قبل از انتقال به برد آردوینو، به زبان C ترجمه شده و با استفاده از کامپایلر avr-gcc در میکروکنترلر برد آردوینو نوشته می‌شوند. به برنامه‌های نوشته شده در محیط آردوینو، اصطلاحاً **اسکچ** می‌گویند. هر اسکچ شامل تعدادی فرمان و دستور است که در قالب خطوط مجزا تایپ و نوشته می‌شوند. نرم‌افزار آردوینو به‌طور رایگان قابل دانلود *است.* همچنین می‌توان به صورت آنلاین نیز از این نرم‌افزار استفاده کرد.

معرفی
-----

یک برنامه بین پلتفرمی است (برای ویندوز، macOS، لینوکس) که در C و C ++ نوشته شده‌است. این برنامه قابلیت کار کرد با ویندوز مک و لینوکس را دارد. ن برنامه برای نوشتن و بارگذاری برنامه‌ها در صفحه‌های سازگار با آردوینو، به کمک هسته‌های شخص ثالث، سایر تابلوهای توسعه دهنده فروشنده نیز استفاده می‌شود.

کد منبع IDE تحت مجوز عمومی عمومی گنو، نسخه ۲ منتشر شده‌است. Arduino IDE از زبان C و C ++ با استفاده از قوانین خاص ساختار کد پشتیبانی می‌کند. Arduino IDE یک کتابخانه نرم‌افزار از پروژه Wiring تهیه می‌کند، که روشهای ورودی و خروجی متداول زیادی را فراهم می‌کند. کد نوشته شده توسط کاربر به دو عملکرد اساسی نیاز دارد، برای شروع طرح و حلقه اصلی برنامه، که با یک برنامه *اصلی* stub *()* به یک برنامه اجرایی ادواری قابل اجرا با ابزار ابزار GNU، همراه با توزیع IDE، وارد شده و مرتبط می‌شوند. Arduino IDE از برنامه *avrdude* برای تبدیل کد اجرایی به یک فایل متنی در رمزگذاری (hexadecimal) استفاده می‌کند که توسط یک برنامه در سیستم عامل برد، درداخل برد آردوینو بارگیری می‌شود.

در اکتبر ۲۰۱۹، سازمان آردوینو دسترسی زودهنگام به Arduino Pro IDE جدید را با اشکال زدایی و سایر ویژگی‌های پیشرفته آغاز کرد.

سیستم عامل
----------

نرم‌افزار آردوینو آی‌دی‌ای را می‌توان بر روی سیستم عامل‌های ویندوز، مک و لینوکس نصب کرد.

محیط نرم‌افزار آردوینو
----------------------

در شکل زیر، محیط کلی نرم‌افزار آردوینو *(آردوینو آی‌دی‌ای)* و بخش‌های اصلی آن نشان داده شده‌اند:

بخش‌های محیط *نرم‌افزار آردوینو*
بخش‌های اصلی این نرم‌افزار عبارتند از:

1. نوار فهرست
2. دکمه تأیید
3. دکمه بارگذاری
4. ایجاد اسکچ جدید
5. بازکردن اسکچ
6. ذخیره اسکچ
7. نمایشگر سریال
8. برگه
9. منوی مدیریت برگه‌ها
10. ویرایشگر متن
11. پنجره پیغامها
12. درگاه اطلاعات
13. شمارهٔ خط
14. نوع برد و نام درگاه رایانه

پنجره سریال یا نمایشگر سریال
----------------------------

یکی از پرکاربردترین بخش‌های این نرم‌افزار، *نمایشگر سریال* (شماره ۷ در شکل قبل) است که جزئیات آن در شکل زیر آمده‌است:

نمایشگر سریال آردوینو
بخش‌های اصلی پنجره یا نمایشگر سریال عبارتند از:

1. محل ورود اطلاعات متنی به برنامه *(توسط کاربر)*
2. محل نمایش اطلاعات خروجی برنامه
3. اگر حجم داده‌های نمایش داده شده بر روی پنجره، بیشتر از یک صفحه باشد، به‌صورت خودکار آنقدر صفحه را بالا می‌برد تا پایین صفحه که حاوی اطلاعات جدید است در معرض نمایش قرار گیرد.
4. با فعال کردن این گزینه، زمان (ساعت) در ابتدای هر خط از داده‌های خروجی درج می‌شود.
5. در این بخش می‌توانید مشخص کنید که داده‌های ورودی به پنجره، چگونه خط‌بندی شوند.
6. سرعت تبادل داده‌ها بین رایانه و بورد آردوینو را برحسب بیت بر ثانیه باد (یکا) نشان می‌دهد و **معمولاً بر روی عدد ۹۶۰۰ تنظیم می‌شود**.
7. با فشردن دکمه clear output اطلاعات قدیمی موجود در صفحه نمایشگر سریال، پاک شده و صفحه خالی می‌شود.

### مثال

ابتدا وارد محیط نرم‌افزار آردوینو شوید و یک اسکچ جدید ایجاد کنید و کد زیر را در آن بنویسید:

```
void setup()
{
 Serial.begin(9600);
 Serial.print("Hello");
}

void loop()
{
}

```
اسکچ را ذخیره کنید و سپس دکمه‌های «تأیید» و «بارگذاری» را فشار دهید. پس از پایان پردازش، *نمایشگر سریال* را باز کنید. کلمه Hello یا هر کلمه دیگری که با استفاده از ()Serial.print مشخص کرده بودید را در پنجره مشاهده می‌کنید. همان‌طور که می‌بینید، این اسکچ، از دو تابع به نام‌های ()setup و ()loop تشکیل شده‌است. در تابع ()setup، دستورها داخل { } فقط یک‌بار اجرا می‌شوند و در تابع ()loop، دستورها داخل { } به دفعات نامحدود تکرار می‌شوند. در این اسکچ، ما می‌خواهیم که «فقط یک‌بار» کلمهٔ Hello در *نمایشگر سریال* نوشته شود؛ بنابراین، دستور «نوشتن کلمه» را باید در داخل «آکولادهای بعد از ()setup» قرار دهیم تا «فقط یک‌بار» نوشته شود. برای نوشتن کلمهٔ Hello در داخل نمایشگر سریال، به دو دستور زیر نیاز داریم:

* **دستور اول: (9600)Serial.begin**
* **دستور دوم: ("Serial.print("Hello**

ساختار **دستور اول** به‌صورت زیر است:

(سرعت)Serial.begin

دستور Serial برای ارتباط بین رایانه و بورد آردوینو به‌کار می‌رود. تابع ()begin با علامت نقطه (.) به آن اضافه شده‌است. تابع ()begin سرعت تبادل داده‌ها بین رایانه و بورد آردوینو را تعیین می‌کند. مقدار سرعت، برحسب بیت بر ثانیه بیان می‌شود. به‌عنوان پیش‌فرض معمولاً سرعت را بر روی عدد ۹۶۰۰ تنظیم می‌کنیم. البته شما می‌توانید سرعت‌های دیگر را نیز امتحان کنید که در صورت نامناسب بودن آن‌ها، داده‌های خروجی به‌صورت حروفی ناخوانا بر روی پنجره ظاهر می‌شوند. دقت کنید که این عدد در دو بخش باید کنترل و تنظیم شود:

1. در متن دستورِ ()begin
2. در بخش پایین *نمایشگر سریال*

به‌طور خلاصه، دستور اول، درگاه سریال را با سرعت ۹۶۰۰ بیت بر ثانیه فعّال می‌کند.

ساختار **دستور دوم** به‌صورت زیر است:

("عبارت")Serial.print

در اینجا مجدداً دستور Serial برای ارتباط بین رایانه و بورد آردوینو به کار می‌رود. تابع ()print که با علامت نقطه (.) به آن اضافه شده‌است، وظیفه نگارش اطلاعات متنی بر روی *نمایشگر سریال* را بر عهده دارد. به‌طور خلاصه، دستور دوم، عبارت Hello را بر روی نمایشگر سریال می‌نویسد.

دستورهای اول و دوم، در داخل آکولاد قرارگرفته و پس از تابع ()setup آمده‌اند: بنابراین مجموع این دو دستور، فقط یک‌بار اجرا می‌شود. در بخش ()loop نیز دستوری وجود ندارد. توجه کنید که در انتهای دستورها آردوینو علامت (**;**) می‌آید و استفاده از علایم دیگر باعث بروز پیغام خطا می‌شود.

کتابخانه‌های آردوینو
--------------------

در محیط آردوینو، کتابخانه (library) یعنی: مجموعه‌ای از کدهای از پیش نوشته شده، که در برنامه خود از آن استفاده می‌کنیم. کتابخانه‌ها، کارایی برنامهٔ ما را افزایش داده و امکان استفاده آسان از ارتباط سریال، سرووموتورها، کارت‌های حافظه، وای‌فای، و سایر ماژول‌های پیچیدهٔ آردوینو را فراهم می‌آورند. کتابخانه‌ها در قالب فایل‌هایی ارایه می‌شوند که قبلاً توسط افراد دیگری به زبان C یا ++C نوشته شده‌اند و ما با فراخوانی این فایل‌های آماده در برنامهٔ خود، از نوشتن دوبارهٔ تعداد زیادی دستور خودداری می‌کنیم: درواقع، کتابخانه مانند یک تابع است، با این تفاوت که هستهٔ آن در برنامه‌ای خارج از برنامه‌ای که ما می‌نویسیم قرارگرفته است. کتابخانه‌های آردوینو حداقل از دو فایل تشکیل می‌شوند:

* یک فایل سرآیند یا header (با پسوند h.)
* یک فایل منبع یا source (با پسوند cpp.)

فایل سرآیند، شامل لیستی از دستورها، توابع و متغیرهای کتابخانه است. فایل منبع، شامل کدهایی است که انجام عملیات کتابخانه را پشتیبانی نموده و با ماژول‌های آردوینو ارتباط برقرار می‌کنند. برای استفاده از کدهای داخل کتابخانه باید از دستورها و توابع ویژهٔ همان کتابخانه استفاده کنیم.

### مثال

مثالی از برنامه‌نویسی آردوینو با استفاده از کتابخانه *<SoftwareSerial.h>* در زیر آمده‌است:

  

```
#include <SoftwareSerial.h>
SoftwareSerial softSerial(2, 3);
int analogPin = A0; // select the input pin for the potentiometer
int analogVal = 0; // variable to store the value coming from the sensor
void setup()
{
 // set the data rate for the SoftwareSerial port
 softSerial.begin(9600);
}
void loop()
{
 // read some data from an analog input
 analogVal = analogRead(analogPin);
 // write the data to the softSerial port
 softSerial.print(analogVal);
 softSerial.println(); // print a linefeed character
 // pause the program for 1 second (1000 milliseconds)
 delay(1000);
}

```

منابع
-----

1. 1 2 3  «سایت رسمی آردوینو».
2. ↑  «سایت رسمی پراسسینگ».
3. ↑  Massimo Banzi. *Getting Started with Arduino* (به انگلیسی). Make.
4. ↑  «GitHub/Arduino».
5. ↑  "Arduino - FAQ". *www.arduino.cc*. Retrieved 2020-08-27.
6. ↑  "Updated: Arduino announces FPGA board, ATmega4809 in Uno Wi-Fi mk2, cloud-based IDE and IoT hardware". *Electronics Weekly* (به انگلیسی). 2018-05-18. Retrieved 2018-06-14.
7. ↑  "The arduino source code".
8. ↑  "The Arduino IDE Finally Grows Up". *Hack A Day*. 2019-10-21. Retrieved 2019-11-04.
9. ↑  "Introducing New Arduino Pro IDE with Advanced Features". *SEEED Studio*. 2019-10-21. Retrieved 2019-11-04.
10. 1 2 3 4  اردشیر حکیمی. *کلید آردوینو (کتاب آموزش آردوینو به فارسی)*. انتشارات ناقوس.
11. ↑  J. M. Hughes. *Arduino: A Technical Reference: A Handbook for Technicians, Engineers, and Makers* (به انگلیسی). O'Reilly.