سبد خرید 0

سبد خرید شما خالی است.

نرم افزار آردوینو

نرم افزار آردوینو

نرم افزار آردوینو

پس از معرفی مقاله آردوینو چیست و پیدا کردن شناخت کلی از برد های آردوینو و اجزاء سخت افزاری برد در مقالات قبلی، در اینجا نیاز است که با پلتفرم نرم_افزاری منبع باز آردوینو بیشتر آشنا شویم. همانطور که در مقاله “آردوینو” اشاره شد، این نرم افزار شامل دو بخش، یکی Bootloader و دیگری محیط یکپارچه توسعه (Arduino IDE) است. در ادامه ابتدا با طریقه نصب و اجرای محیط Arduino IDE آشنا می شویم. و سپس به معرفی زبان برنامه نویسی می پردازیم و در آخر با این محیط برنامه نویسی جذاب و طریقه کد نویسی در آن آشنا خواهیم شد. با ما همراه باشید.

 

روش نصب و راه اندازی نرم افزار

1- برای نصب برنامه آردوینو ابتدا به آدرس سایت اصلی Arduino رفته و یا بر روی لینک زیر کلیک کنید تا وارد سایت مرجع شوید.

 

نرم افزار آردوینو
دانلود نرم افزار آردوینو

 

2-  در این قسمت، جدیدترین نسخه 2.2.1 Arduino IDE با ویژگی های چون ویرایشگری مدرن، پیمایشگر قدرتمند و سریع، و همچنین یک دیباگر زنده بر اساس نوع سیستم عامل شما ارائه می شود. با توجه به منبع باز بودن و توسعه فعال این نرم افزار، منبع کد آن در میزبانی GitHub قرار دارد. همانطور که در سمت راست تصویر مشاهده می کنید، شرکت آردوینو، این نرم افزار را برای سیستم عامل های ویندوز (نسخه64بیتی ویندوز 10 و بعد از آن ،MSI، بصورت فایل ZIP)، لینوکس (AppImage و فایل ZIP) 64 بیتی، مک (اینتل 10.14 “Mojave” و بعد از آن، Apple Silicon 11 و بعد از آن) 64 بیتی ارائه کرده است. ما در این بخش با انتخاب سیستم عامل ویندوز 10، مراحل نصب را انجام می دهیم.

 

arduino-download1

 

3-  در این قسمت 1) بعد از دانلود فایل و ذخیره آن در پوشه دانلود ها، 2) با راست کلیک کردن بر روی فایل اجرایی دانلود شده به نام (arduino-ide_2.2.1_Windows_64bit.exe) که در پوشه دانلود ها قرار گرفته، منویی ظاهر می شود. از این منو گزینه (Run as Administrator) را انتخاب می کنیم. 3) با کلیک بر روی گزینه “yes” مراحل نصب، با باز شدن پنجره (Arduino IDE Setup) و تائید گزینه “I agree” آغاز می شود. 4) در ادامه از شما نوع ایجاد دسترسی به برنامه نرم افزاری پرسیده می شود که با انتخاب گزینه “Only for me” و زدن دکمه “Next” به مرحله بعدی می روید. 5) در این قسمت مسیر قرار گیری پوشه را مشخص و سپس بر روی گزینه “Install” کلیک می کنید. 6) و در مرحله آخر با زدن دکمه “Finish” پایان نصب را انجام می دهید.

 

step-setup

 

محیط برنامه و کد نویسی

پس از نصب Arduino IDE و کلیک بر روی آیکون آن، محیط برنامه بصورت زیر برای شما ظاهر می شود.

در مرحله 1- از شما می خواهد که در صورت تمایل، با انتخاب گزینه های نصب همه موارد(Install All)، برخی موارد به صورت دستی(Install Manually) و یا نصب در زمانی دیگر(Later)، برای توابع کتابخانه ی پیش فرض برنامه، بروزرسانی انجام دهید. در مرحله 2- با تایید گزینه “Install”درخواست اجرا می شود. و در مدت زمانی کوتاه وارد مرحله 3- و محیط برنامه نویسی Arduino IDE می شوید.

 

Arduino-IDE-in-sketch1

 

با ورود به مرحله سه و فعال شدن محیط برنامه، با قسمت های منو اصلی(1)، جعبه ابزار با دکمه های عملیات مشترک(2)، نوار ابزار دسترسی سریع(3)، ناحیه ویرایشگر کد و کنسول متن(4) و ناحیه پیام(5) روبرو می شوید.

   قسمت های منو اصلی(1): این قسمت شامل منوی File که زیر منو های مانند (New Sketch) برای ایجاد برنامه جدید، (New Cloud Sketch) برای ایجاد برنامه ابری، Open برای باز کردن برنامه ها، Sketchbook برای باز کردن پروژه یا کارپوشه مجموعه از برنامه ها، Examples نمونه مثال های پیش فرض برنامه آردوینو، Preference تنظیمات برنامه، Advanced تنظیمات پیشرفته و خروج از برنامه قرار دارد.

 

   در منوی Edite، با مواردی چون Undo و Redo برای رفتن به یک مرحله قبل و بعد از انجام کار، Copy For Froum، استاندارد سازی کد برنامه(Sketch) با قالب و تکمیل رنگ بندی برای ارسال به انجمن، Go to Line برای رفتن به خط مشخصی از برنامه، Comment درج توضیحات، Increase Indent افزایش تو رفتگی، Decrease Indent کاهش تو رفتگی Auto Format قالب دهی خودکار، Replace In File جایگذاری قطعه کد های دیگر در این برنامه، Incease/Decrease Size Font برای تغییر اندازه فونت و نوشته روبرو هستیم.

 

   منوی بعدی این بخش Sketch است که شامل زیرمنوهایی چون Verify/Compile برای اسکن برنامه (Sketch) جهت وجود خطا و گزارش مقدار حافظه و نوع متغیر ها در ناحیه کد و کنسول، Upload برای انتقال کد بر روی برد آردوینو، Upload Using Programmer برای بازنویسی بوت لودر موجود در صفحه، Export Compiled Binary در صورت ایجاد فایل .hex مورد استفاده قرار می گیرد. زیر منوی Optimize and Debuge بهینه سازی و اشکالزدایی، Show Sketch Folder باز کردن پوشه Sketch(برنامه) فعلی، Include Library برای دسترسی به مدیریت کتابخانه بردهای آردوینو، Add File اضافه کردن فایل تکمیلی به Sketch می باشد.

 

در منوی Tools زیر منوهایی مانند Auto Format برای قالب بندی اصولی کدها، Archive Sketch بایگانی یک نسخه کپی با فرمت Zip از کد شما، Fix Encoding & Reload برطرف کردن مشکلات بین رمزنگاری نقشه ویرایشگر char و کاراکتری سیتم عامل، Serial Monitor نمایش داده های ارسالی و دریافتی برد آردوینو رو مانیتور می کند. Board بخش انتخاب و مدیریت بردهای آردوینو، Port این زیر منو تمامی پورت های واقعی یا مجازی در دستگاه شما را نشان می دهد. Programmer برای انتخاب یک پروگرامر سخت افزاری بدون استفاده از USB-Serial جهت برنامه ریزی برد یا یک تراشه جدید. زیر منوی Burn Bootloader و لیست منوهایش، جهت قرار دادن Bootloader بر روی میکروکنترولر ATmega جدیدی است که دارای Bootloader نیست، و در حالت عادی برای استفاد از برد آردوینو از این منو استفاده نمی شود.

 

  جعبه ابزار با دکمه های عملیات مشترک(2):  بر روی این قسمت گزینه Verify (برای بررسی و یافتن خطاها)، گزینه Upload (برای نوشتن یا انتقال کد بر روی برد آردوینو “پروگرام کردن میکروکنترلر”)، گزینه Debug(جهت آزمایش و اشکال زدایی و درک بهتر برنامه با کمک رابط سخت افزاری به منظور شناسایی ایرادات و خطاهای کد)، گزینه Serial Plotter(ردیابی عملکرد داده های ارسالی از برد آردوینو جهت بررسی پک های ولتاژ، مقایسه و درک بهتر تجسمی داده ها)، Serial Monitor (برای دریافت داده های سریالی از برد، نمایش این داده هایی که از برد و از طریق USB و برد سریال می آیند و همچنین ارسال آنها بر روی برد مورد استفاده است) قرار می گیرند.

 

  نوار ابزار دسترسی سریع(3):  در این نوار ابزار، منوهای کاربردی برای تنظیمات سریع در دسترس قرار گرفته اند. این منو ها مانند SketchBook، Board Manager، Library Manager، Debug، Search و Arduino Cloud برای کنترل Sketch یا برنامه از راه دور مورد استفاده قرار می گیرد. که در مقاله “آردوینوی ابری” توضیحات کاملتری را در این زمینه ارائه می دهیم.

 

  ناحیه ویرایشگر کد و کنسول متن(4): در این ناحیه بخش کد نویسی و ویرایش کد Sketch است. در این ناحیه ساختار، مقادیر و متغیرها و توابع در Scetch بصورت کد نویسی و با سبک زبان برنامه نویسی شی گرا (Object Oriented Programming) تعریف می شود که در ادامه بطور کامل درباره آن صحبت می کنیم.

 

ناحیه پیام(5): در این بخش نمایش اطلاعات ارسالی به برد و مسیر آن را به همراه نتیجه بارگذاری کد، اخطارها و یا خطاهای برنامه نمایش می دهد.

 

معرفی زبان برنامه نویسی

برای نوشتن دستورات در محیط برنامه نویسی Arduino IDE، آشنایی و شناخت زبان ++C که مبنای آن زبان C است. سبک برنامه نویسی در این محیط، شی گرایی(OOP) است. یعنی با ساختاردهی به یک برنامه و ترکیب قطعات ساده نرم افزاری برای مدل سازی اشیا و استفاده دوباره آن بکار می رود. این زبان دارای چند پارامتر مهم است که توجه به آنها خالی از لطف نیست.

  1. در انتهای هر خط دستور زبان در برنامه باید علامت ; (سمیکالن) قرار گیرد.
  2. حساسیت برنامه به بزرگ و کوچک بودن حروف بالاست و نیاز به نوشتن کلمات کلیدی به صورت کوچک است.
  3. طول هر خط برنامه حداکثر 255 کاراکتر است.
  4. بهتر است برای عیب یابی سریعتر برنامه، در کنار هر خط یا قطعه کد برنامه (مربوط به عملکرد آن دستگاه) از توضیحات(Comments) استفاده کنیم.

 

کد نویسی در ناحیه ویرایشگر

ناحیه ویرایشگر کد برنامه، شامل کاربرگ هایی با عنوان Sketch یا همان طرح هستند. فرمت ذخیره سازی این فایل های Sketch، پسوند (ino.) است. همانطور که در شکل زیر مشاهده می کنید هر برنامه Sketch شامل یک بخش کلی است که از سه قسمت مهم Structure(ساختار)، Values(مقادیر که ثابت یا متغییر هستند) و Functions (توابع) تشکیل می شود.

 

Structure

 

Structure(ساختار)

بخش ساختار شامل دو تابع مهم و کلی به نام های Setup و Loop است.

– تابع Setup، تنها یک بار در زمان اجرای برنامه (Sketch) فراخوانی می شود (اول در زمان اجرای سریال مانیتور و دوم در زمان فشردن کلید Reset برد آردوینو). در Setup، مقادیر اولیه مانند: متغییرها، حالت پایه(پین) میکروکنترولر مانند(ورودی/خروجی ها)، پیکربندی سخت افزاری،دستور Return و همچنین توابع کتابخانه ای تعریف می شوند.

– تابع Loop، همانطور که از نامش پیداست، خاصیت حلقه و تکرار دستورات به برنامه می دهد و امکان تغییر برنامه را دارد که نتیجه این تغییر دریافت خروجی های(داده) جدید است.

 

Values (مقادیر که ثابت یا متغیر هستند)

انواع داده و مقادیر در زبان برنامه نویسی آردوینو(زبان C/C++)، به دو نوع تقسیم می شوند. ابتدا برای تعیین مقادیر کلیدی که ثابت هستند و دوم تعریف متغیرها در توابع که می تواند مانند خروجی های برنامه متفاوت باشند. این مقادیر یا داده ها برای اعلان متغیر ها و توابع برنامه کاربرد دارند. این داده ها انواع مختلفی دارند؛ که بیان می کند این متغیر چه روش ذخیره سازی دارد و چه میزان از فضای حافظه را به خود اختصاص می دهد. در ادامه برخی از انواع داده ها را با هم بررسی می کنیم.

1- Void یک نوع کلمه کلیدی است که برای معرفی تابع کاربرد دارد. همچنین در هنگام خروجی مقداری را برنمی گرداند.

2- byte عدد بدون علامت را که از 0 تا 255 است را در 1بایت یا 8 بیت از فضای حافظه ذخیره سازی می کند.

3- Int نوع داده برای ذخیره سازی شمارشی است که اعداد صحیح را به اندازه 2 بایت یا 16 بیت در فضای حافظه ذخیره می کند. باید توجه داشت که اندازه این متغییر در بردهای آردوینو ممکن  است متفاوت باشد. مثلا در برد Due این فضای ذخیره سازی میتواند به 4 بایت برسد.

4- Unsigned Int این متغیر همانند Int است تنها فرق آن، ذخیره سازی اعداد صحیح مثبت است.

5- Char، یک نوع داده است که تنها یک کاراکتر را در 8 بیت (1 بایت) از حافظه ذخیره می کند. برای مقدار دهی به این متغیر از گیومه تکی (‘  ’) استفاده می شود. اگر مقدار کاراکتری به صورت چند تایی یا آرایه ای مشخص شود، گیومه دوتایی را (” “) در نظر می گیریم. با استفاده از جدول ASCII می توانید به جای کاراکترها از اعداد جایگزین آن کاراکتر استفاده کرد.

6- Unsigned Char همانند متغیر Byte است و برای ذخیره سازی 8 بیت از حافظه را اشغال می کند.

7- Long متغیرهایی بزرگی هستند که 4 بایت و یا 32 بایت از خانه حافظه را به خود اختصاص می دهند.

8- Unsigned Long این متغیر همانند متغیر Long دارای 4 بایت فضای ذخیره سازی است با این تفاوت که تنها برای اعداد مثبت است.

9- Word این نوع داده ای، عدد را بدون علامت، در خانه های 16 بیتی از حافظه ذخیره می کند و در بردهای که میکروکنترلر آنها ATmega است، مانند Uno کاربرد دارد.

10- Boolean یک متغیری است که فضای ذخیره سازی آن 1 بایت می شود و معمولا مقادیر  True یا False یا 0و1 را باز می گرداند.

11- Short نوع این متغیر در بیشتر بردهای آردوینو که دارای پردازنده ARM هستند، به اندازه 16 بیت فضا ذخیره ساری را اشغال می کند.

12- Float متغیری است که برای نزدیک کردن اعداد به مقادیر مشابه واقعی مورد استفاده قرار می گیرد و بصورت اعشاری و غیر صحیح تعریف می شوند که 4 بایت یا 32 بیت فضای حافظه را به خود اختصاص می دهند.

13- Double با در نظر گرفتن نوع میکروکنترلر ATmega در بردهای آردوینو مثل برد Uno، مشابه متغیر Float است. اما این متغیر در برهای دیگر مانند Due فضای برابر با 8 بایت در حافظه اشغال می کند.

 

Functions (توابع)

به مجموعه ای از دستورالعمل های گروه بندی شده که برای یک کار خاص تعریف می شوند، توابع گویند. به عنوان مثال کارهایی از قبیل تعیین حالت پین ها، خواندن اطلاعات از سنسورها و در نهایت نمایش این اطلاعات بر روی Oled را می توان نام برد. ما برای مدیریت بهتر کدهای Sketch، جلوگیری از تکرار کدها و همچنین استفاده مجدد از کدها در Sketch های دیگر از توابع استفاده می کنیم که به این عمل استاندارد سازی قطعه کد می گویند. این استانداردسازی باعث صرفه جویی در زمان و حافظه، خطایابی (Debug) در یک مکان کدگذاری شده مشخص از برنامه، کاهش احتمال خطا در بازبینی با تغییر کد و دادن خاصیت ماژولار و استفاده مجدد قطعه کد در برنامه های دیگر می شود.

 

نکته: در بخش Structure(ساختار) دو تابع اصلی را با هم بررسی کردیم. در این بخش درباره تابع سفارشی توضیح می دهیم که می تواند جزئی از کد برنامه یا Sketch ما باشند و به تابع فراخوانی معروف است.

برای استفاده از یک تابع (فراخوانی یا سفارشی)، اول باید آن را تعریف کنیم. برای تعریف تابع:

– باید نام تابع را مشخص می کنیم. نام گذاری یک تابع را با استفاده از کارکترهای حروف الفبایی (A – Z؛ a – z؛ 9 – 0)  و علامت (_) می توان انجام داد. این نام نمی تواند با اعداد شروع شود و نباید با نام توابع و کلمات کلیدی برنامه مشابهت داشته باشد و تعریف این نام با () به پایان می رسد.

– توابع باید مقادیر از نوع بازگشتی داشته باشند در غیر این صورت از نوع Void هستند که در بخش معرفی Values توضیح دادیم به حساب می آید.

– بدنه تابع که از عبارات عملکرد تابع (خط کد Sketch) تشکیل می شود، کاری است که تابع هنگام فراخوانی انجام می دهد و در بین {} قرار می گیرد.

 

قسمت های مختلف یک تابع و تعریف تابع فراخوانی را در قطعه کد ساده زیر با مثالی از کاربرد توابع Serial Monitor نشان می دهیم.

در Sketch ای که ایجاد کردیم، ابتدا درون تابع اصلی Void Setup توابع اصلی را قرار دادیم که قرار است تنها یک بار اجرا شوند.سپس در Void Loop توابعی که نیاز به چند بار تکرارشان است تعریف شدند. و در آخر تابع فراخوانی ;()StarLine را برای تعریف خط ستاره قرار دادیم. در این بخش از Serial Monitor هم برای نمایش اطلاعات دریافتی از برد آردوینو کمک گرفته شد؛ که برای این ویژگی و بکارگیری آن از توابعی مانند ;()begin(); ،print(); ،println استفاده می شود.

در تابع Void Setup توابعی مانند ;()Serial.begin برای تعیین سرعت انتقال داده به برد آردوینو و برقراری ارتباط سریال استفاده شد و همچنین با فراخوانی تابع ;()starLine برای درج خط کاراکتری ستاره ای را در ابتدای سریال مانیتور قرار دادیم.

سپس وارد بخش تابع اصلی دوم، چرخه تکرار برنامه به نام Void Loop می شویم که قرار است برای مقدار تاخیر بعد از هر عمل چاپ به مدت 2 ثانیه تاخیر داشته باشد. در خط بعد با اجرای تابع      ;()Serial.Println، ارسال داده ها به پورت سریال و چاپ داده ها در سریال مانیتور انجام شود.

و در بخش آخر Sketch، تعریف تابع فراخوانی انجام شد که تنها یک بار در ابتدای اجرای برنامه صدا زده می شود. از آنجایی که این تابع مقداری را بر نمی گرداند از نوع void تعریف می شود. در ادامه کد Sketch در محیط برنامه ویرایشگر متن Arduino IDE و خروجی آن بر Serial Monitor  را مشاهده می کنید.

 

Run-Arduino-IDE
کد Sketch و خروجی برنامه

برای استفاده، آموزش و تمرین با بردهای آردوینو شناخت چند نرم افزار به کار شما می آید. ابتدا خود برنامه Arduino IDE جهت نوشتن، ویرایش و انتقال کدهای برنامه برد مورد نیاز است. همچنین از نرم افزار دیگر به نام VS Code(Visual Studio Code) با قابلیت Code Completion می توان استفاده کرد. این برنامه با تکمیل کلمات خط برنامه، کلمات کلیدی و یا توابع با نوشتن تنها چند حرف سرعت شما را در نوشتن و ویرایش کدها  بالا می برد. مزیت دیگر آن حساس نبودن به حروف کوچک و بزرگ است همچنین از VS Code نیز برای انتقال برنامه به برد می توانید استفاده کنید.

جهت مطالعه بیشتر منبع:

https://docs.arduino.cc/software/ide-v2/tutorials/getting-started-ide-v2

https://www.arduino.cc/reference/en

 

بسته های آموزشی جهت تمرین و آموزش برنامه نویسی کاربردی با تفسیر خط به خط برنامه Sketch 

” همچنین شما همراهان IOENET می توانید برای تهیه بسته های آموزشی-کاربردی از قسمت هوشمند سازی-بسته آموزشی و 

جهت تهیه ماکت خانه ایمن و هوشمند از بخش هوشمند سازی_ محصولات کاربردی اقدام فرمائید”

       “Also, you, IOENET companions, can prepare educational-application packages from the intelligentization-educational package                  section and In order to prepare a safe and smart home replica, take action from the smart-functional products department.

دیدگاه شما

برای ارسال دیدگاه لطفا ابتدا وارد سایت شوید .

وارد شوید

برگشت به بالا
تجهیزات شبکه و هوشمند سازی