
Arduino CLI چیست؟ راهنمای کامل استفاده از خط فرمان آردوینو برای حرفهایها
اگر سالها با Arduino IDE کار کرده باشید، احتمالاً به محیط گرافیکی ساده و راحت آن عادت کردهاید. اما زمانی که پروژهها بزرگتر میشوند، نیاز به اتوماسیون، مدیریت حرفهای کتابخانهها، کامپایل خودکار، CI/CD، اسکریپتنویسی و توسعه در محیطهای حرفهای پیدا میکنید، Arduino CLI تبدیل به یکی از قدرتمندترین ابزارهایی میشود که میتوانید در اختیار داشته باشید.
در این مقاله به صورت کامل با Arduino CLI آشنا میشویم، نحوه نصب آن را بررسی میکنیم، دستورات اصلی را یاد میگیریم و میبینیم چرا بسیاری از توسعهدهندگان حرفهای به جای Arduino IDE از آن استفاده میکنند.
Arduino CLI چیست؟
Arduino CLI مخفف عبارت Arduino Command Line Interface است. این ابزار رسمی توسط تیم آردوینو توسعه داده شده و به شما اجازه میدهد تقریباً تمام کارهایی که در Arduino IDE انجام میدهید را از طریق ترمینال یا Command Prompt انجام دهید.
به زبان ساده، Arduino CLI همان موتور اصلی کامپایل و آپلود برنامههای آردوینو است اما بدون رابط گرافیکی.
با Arduino CLI میتوانید:
- بردهای مختلف را نصب کنید
- کتابخانهها را مدیریت کنید
- کدها را کامپایل کنید
- برنامه را روی برد آپلود کنید
- اطلاعات برد متصل را بخوانید
- پروژهها را در اسکریپتها اجرا کنید
- Build خودکار بسازید
- از آن در VS Code یا ویرایشگرهای حرفهای استفاده کنید
- سیستم CI/CD برای پروژههای آردوینو راهاندازی کنید
چرا Arduino CLI مهم است؟
بسیاری از کاربران تازهکار فقط Arduino IDE را میشناسند و تصور میکنند استفاده از خط فرمان سخت و غیرضروری است. اما در پروژههای حرفهای، CLI مزایای بسیار مهمی دارد.
1. سرعت بیشتر
Arduino IDE مخصوصاً روی سیستمهای ضعیف ممکن است کند اجرا شود. اما Arduino CLI بسیار سبک است و در چند ثانیه اجرا میشود.
2. مناسب برای پروژههای حرفهای
وقتی چندین پروژه، چند برد و چند نسخه مختلف از کتابخانهها دارید، مدیریت آنها در محیط گرافیکی سخت میشود. CLI امکان مدیریت حرفهایتر را فراهم میکند.
3. اتوماسیون
فرض کنید میخواهید هر بار که کد تغییر کرد، به صورت خودکار کامپایل شود. یا میخواهید تست خودکار روی چند برد انجام دهید. CLI این کارها را بسیار ساده میکند.
4. مناسب برای Linux و سرورها
بسیاری از توسعهدهندگان Embedded روی لینوکس کار میکنند. Arduino CLI بدون نیاز به محیط گرافیکی اجرا میشود و حتی روی سرورهای Headless نیز قابل استفاده است.
5. استفاده در VS Code
بسیاری از برنامهنویسان حرفهای ترجیح میدهند به جای Arduino IDE از VS Code استفاده کنند. افزونههای مختلف از Arduino CLI به عنوان Backend استفاده میکنند.
تفاوت Arduino CLI و Arduino IDE
| ویژگی | Arduino IDE | Arduino CLI |
|---|---|---|
| رابط گرافیکی | دارد | ندارد |
| مناسب مبتدیها | بسیار مناسب | متوسط |
| اتوماسیون | محدود | بسیار قوی |
| سرعت | متوسط | بالا |
| مصرف RAM | بیشتر | کمتر |
| اسکریپتنویسی | سخت | عالی |
| استفاده روی سرور | نامناسب | عالی |
| CI/CD | محدود | بسیار مناسب |
نصب Arduino CLI
Arduino CLI روی Windows، Linux و macOS قابل نصب است.
نصب روی ویندوز
سادهترین روش دانلود فایل اجرایی از سایت رسمی Arduino است.
بعد از دانلود:
- فایل ZIP را استخراج کنید
- فایل arduino-cli.exe را در یک پوشه مناسب قرار دهید
- مسیر آن را به PATH ویندوز اضافه کنید
سپس Command Prompt را باز کرده و دستور زیر را اجرا کنید:
|
1 2 |
arduino-cli version |
اگر نسخه نمایش داده شد یعنی نصب موفق بوده است.
نصب روی Linux
روی بسیاری از توزیعها میتوانید با wget نصب کنید:
|
1 2 |
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh |
سپس:
|
1 2 |
arduino-cli version |
ایجاد فایل تنظیمات
بعد از نصب بهتر است فایل تنظیمات ساخته شود:
|
1 2 |
arduino-cli config init |
این دستور فایل تنظیمات را ایجاد میکند.
برای مشاهده مسیر فایل:
|
1 2 |
arduino-cli config dump |
نصب Core بردها
یکی از مهمترین بخشهای Arduino CLI نصب Board Core ها است.
مثلاً برای بردهای AVR مانند Arduino Uno ابتدا لیست URL ها را به تنظیمات اضافه میکنیم:
|
1 2 |
arduino-cli core update-index |
سپس:
|
1 2 |
arduino-cli core install arduino:avr |
بعد از نصب میتوانید بردهایی مثل Uno، Nano و Mega را برنامهریزی کنید.
مشاهده بردهای نصبشده
|
1 2 |
arduino-cli core list |
این دستور تمام Core های نصبشده را نمایش میدهد.
مشاهده بردهای متصل
برای دیدن بردهای متصل به سیستم:
|
1 2 |
arduino-cli board list |
خروجی معمولاً شامل اطلاعات زیر است:
- پورت COM
- نوع برد
- شناسه USB
- وضعیت اتصال
مثال:
|
1 2 |
COM3 serial Serial Port Arduino Uno arduino:avr:uno |
ساخت پروژه جدید
برای ایجاد Sketch جدید:
|
1 2 |
arduino-cli sketch new BlinkProject |
این دستور پوشه پروژه و فایل ino را ایجاد میکند.
کامپایل پروژه
فرض کنیم پروژه BlinkProject داریم.
برای کامپایل:
|
1 2 |
arduino-cli compile --fqbn arduino:avr:uno BlinkProject |
در اینجا:
- compile یعنی کامپایل
- fqbn مخفف Fully Qualified Board Name است
- arduino:avr:uno نوع برد را مشخص میکند
اگر همه چیز درست باشد، فایل باینری ساخته میشود.
آپلود برنامه روی برد
بعد از کامپایل:
|
1 2 |
arduino-cli upload -p COM3 --fqbn arduino:avr:uno BlinkProject |
در لینوکس معمولاً پورت چیزی مثل این است:
|
1 2 |
/dev/ttyUSB0 |
مانیتور سریال
Arduino CLI دارای Serial Monitor نیز هست.
|
1 2 |
arduino-cli monitor -p COM3 -c baudrate=9600 |
این قابلیت برای دیباگ بسیار کاربردی است.
مدیریت کتابخانهها
یکی از بخشهای جذاب Arduino CLI مدیریت حرفهای کتابخانهها است.
جستجوی کتابخانه
|
1 2 |
arduino-cli lib search oled |
نصب کتابخانه
|
1 2 |
arduino-cli lib install "Adafruit SSD1306" |
مشاهده کتابخانههای نصبشده
|
1 2 |
arduino-cli lib list |
حذف کتابخانه
|
1 2 |
arduino-cli lib uninstall "Adafruit SSD1306" |
نصب بردهای ESP8266 و ESP32
یکی از محبوبترین کاربردهای Arduino CLI کار با بردهای ESP است.
نصب ESP8266
ابتدا URL مربوطه را اضافه کنید:
|
1 2 3 |
arduino-cli config add board_manager.additional_urls \ http://arduino.esp8266.com/stable/package_esp8266com_index.json |
سپس:
|
1 2 |
arduino-cli core update-index |
و بعد:
|
1 2 |
arduino-cli core install esp8266:esp8266 |
نصب ESP32
|
1 2 3 |
arduino-cli config add board_manager.additional_urls \ https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json |
سپس:
|
1 2 |
arduino-cli core install esp32:esp32 |
پیدا کردن نام دقیق برد
برای مشاهده لیست بردها:
|
1 2 |
arduino-cli board listall |
نمونه خروجی:
|
1 2 3 4 |
Arduino Uno arduino:avr:uno NodeMCU 1.0 esp8266:esp8266:nodemcuv2 ESP32 Dev Module esp32:esp32:esp32 |
این نامها در fqbn استفاده میشوند.
ساخت پروژههای حرفهای
Arduino CLI فقط یک ابزار ساده برای آپلود نیست. بسیاری از پروژههای حرفهای Embedded از آن استفاده میکنند.
مثالهایی از کاربرد حرفهای
- Build Server
- تست خودکار Firmware
- CI/CD در GitHub Actions
- کامپایل چند برد همزمان
- توسعه Firmware صنعتی
- تولید فایل HEX و BIN
- استفاده در Docker
- توسعه پروژههای IoT
استفاده از Arduino CLI در VS Code
بسیاری از کاربران حرفهای VS Code را ترجیح میدهند.
ترکیب VS Code و Arduino CLI مزایای زیادی دارد:
- IntelliSense بهتر
- مدیریت حرفهای پروژه
- Git داخلی
- ترمینال داخلی
- افزونههای متعدد
- سرعت بالا
در واقع بسیاری از افزونههای Arduino برای VS Code در پشتصحنه از Arduino CLI استفاده میکنند.
استفاده در GitHub Actions
یکی از جذابترین قابلیتهای Arduino CLI امکان استفاده در سیستم CI/CD است.
مثلاً میتوانید تنظیم کنید:
- هر بار کد Push شد کامپایل انجام شود
- خطاهای Build بررسی شوند
- Firmware خودکار ساخته شود
- فایل خروجی Release شود
این موضوع برای پروژههای Open Source بسیار مهم است.
نمونه اسکریپت خودکار
مثلاً یک فایل Batch در ویندوز:
|
1 2 3 |
arduino-cli compile --fqbn arduino:avr:uno Project arduino-cli upload -p COM3 --fqbn arduino:avr:uno Project |
یا در Linux:
|
1 2 3 4 |
#!/bin/bash arduino-cli compile --fqbn esp32:esp32:esp32 MyProject arduino-cli upload -p /dev/ttyUSB0 --fqbn esp32:esp32:esp32 MyProject |
این اسکریپتها برای اتوماسیون بسیار مفید هستند.
مزایای Arduino CLI برای تعمیرکاران و آزمایشگاهها
حتی اگر توسعهدهنده حرفهای نباشید، Arduino CLI میتواند در محیطهای تعمیراتی و آزمایشگاهی کاربرد داشته باشد.
مثلاً:
- پروگرام سریع بردها
- تست چندین دستگاه
- ساخت Firmware سفارشی
- اتوماسیون تست تولید
- تولید فایل HEX برای AVR
- کار روی سیستمهای سبک و قدیمی
آیا Arduino CLI برای مبتدیها مناسب است؟
بله، اما بهتر است ابتدا کمی با مفاهیم زیر آشنا باشید:
- ترمینال
- Command Prompt
- مسیر فایلها
- پورت COM
- نصب کتابخانه
اگر تازهکار هستید شاید ابتدا Arduino IDE سادهتر باشد، اما یادگیری Arduino CLI در بلندمدت بسیار ارزشمند است.
خطاهای رایج در Arduino CLI
خطای پیدا نشدن برد
|
1 2 |
Error: Missing FQBN |
یعنی نوع برد مشخص نشده است.
خطای پورت
|
1 2 |
No device found |
معمولاً به یکی از دلایل زیر است:
- کابل خراب
- درایور نصب نیست
- پورت اشتباه انتخاب شده
- برد روشن نیست
خطای کتابخانه
|
1 2 |
Library not found |
کتابخانه موردنیاز نصب نشده یا نام آن اشتباه است.
Arduino CLI یا PlatformIO؟
سؤال مهمی که بسیاری میپرسند این است که Arduino CLI بهتر است یا PlatformIO؟
واقعیت این است که هر دو ابزار قدرتمندی هستند.
Arduino CLI
مزایا:
- رسمی و سبک
- سادهتر
- سازگاری بالا
- یادگیری آسانتر
معایب:
- امکانات کمتر نسبت به PlatformIO
PlatformIO
مزایا:
- سیستم Build بسیار حرفهای
- Dependency Management قوی
- پشتیبانی از Framework های متعدد
- مناسب پروژههای بزرگ
معایب:
- پیچیدگی بیشتر
- مصرف منابع بیشتر
اگر تازه وارد دنیای حرفهای آردوینو شدهاید، Arduino CLI نقطه شروع عالی است.
نکات حرفهای
1. استفاده از نسخههای مشخص کتابخانه
برای جلوگیری از خراب شدن پروژهها بهتر است نسخه کتابخانهها را مدیریت کنید.
2. نگهداری پروژه در Git
ترکیب Git و Arduino CLI بسیار قدرتمند است.
3. ساخت محیط توسعه قابل تکرار
با Arduino CLI میتوانید دقیقاً مشخص کنید چه نسخهای از Core و کتابخانه استفاده میشود.
4. استفاده در Docker
برخی شرکتها محیط Build آردوینو را داخل Docker اجرا میکنند تا Build ها کاملاً قابل تکرار باشند.
آینده Arduino CLI
Arduino CLI روزبهروز در حال پیشرفت است و بسیاری از ابزارهای جدید اکوسیستم آردوینو به آن وابسته هستند.
حتی Arduino IDE 2.x نیز در بخشهایی از زیرساخت خود از Arduino CLI استفاده میکند.
این نشان میدهد که CLI فقط یک ابزار جانبی نیست، بلکه بخش مهمی از آینده توسعه پروژههای آردوینو محسوب میشود.
جمعبندی
Arduino CLI یکی از مهمترین ابزارهایی است که هر توسعهدهنده حرفهای آردوینو باید یاد بگیرد. شاید در ابتدا کار با خط فرمان کمی سخت به نظر برسد، اما مزایایی مثل سرعت بالا، اتوماسیون، مدیریت حرفهای پروژهها و قابلیت استفاده در سیستمهای حرفهای باعث میشود ارزش یادگیری بسیار بالایی داشته باشد.
اگر تاکنون فقط با Arduino IDE کار کردهاید، پیشنهاد میشود Arduino CLI را نیز امتحان کنید. حتی اگر در ابتدا فقط برای کامپایل و آپلود ساده استفاده کنید، به مرور متوجه میشوید چقدر توسعه پروژهها سریعتر و حرفهایتر میشود.
دنیای Embedded و IoT روزبهروز به سمت ابزارهای حرفهایتر حرکت میکند و Arduino CLI یکی از بهترین قدمها برای ورود به این مسیر است.






