در این قسمت، ما در عمق، ساختار برنامه آردوینو مطالعه خواهیم کرد و ما اصطلاحات جدیدی را که در جهان آردوینو استفاده می شود را یاد می گیریم. نرم افزار Arduino منبع باز است. کد اصلی این محیط از جاوا تحت GPL منتشر شده و کتابخانه های میکروکنترلر C / C ++ تحت LGPL قرار دارند. طرح یا Sketch - اولین اصطلاح جدید برنامه آردوینو به نام "ُSketch" است.
ساختار
برنامه های آردوینو را می توان به سه بخش اصلی تقسیم کرد: ساختار، ارزش ها (متغیرها و ثابت ها) و توابع. در این آموزش، ما در مورد برنامه نرم افزاری Arduino، گام به گام یاد می گیریم که چگونه می توانیم برنامه را بدون هیچگونه خطای کامپایل، بنویسیم. که شامل syntax ها و قواعد نوشتاری کد نویسی در C و C++ خواهد شد. اجازه دهید تا ابتدا با ساختار شروع کنیم. ساختار نرم افزاری شامل دو توابع اصلی است:
-
- setup()
- loop()
آشنایی با تابع Setup:
عملکرد تابع setup () زمانی شروع می شود که طرح شروع می شود. استفاده از آن برای مقداردهی اولیه متغیرها، حالت های پین، شروع به استفاده از کتابخانه ها و غیره است. عملکرد تنظیم یا به عبارت دیگه تابع setup تنها یک بار اجرا می شود و این دقیقا زمانی است که بورد شروع به کار می کند که در واقع هر زمانی که بورد ریست میشود نیز عملکرد مشابه خواهد داشت.
آشنایی با تابع Loop:
پس از ایجاد یک تابع setup () که ابتدا مقادیر اولیه را تنظیم می کند، تابع loop () دقیقا همان چیزی است که نام آن نشان می دهد و حلقه های متوالی را در برنامه شما ایجاد می کند که عملکردی به صورت متوالی انجام و مورد بررسی قرار می گیرد. که به نام super loop هم شناخته می شود. مدیریت عملکرد هایی که می خواهید انجام دهید در این تابع قرار خواهند گرفت که می تواند به صورت توابع باشد و یا اینکه به صورت قطعه کد های کوچک تر. نکته: برای درک برنامه نویسی در میکروکنتلر نیاز به درک زبان برنامه نویسی Cو C++ خواهید داشت.که در دوره آموزشی دیگری بررسی خواهد شد و در این دوره ما فقط موارد اجرایی آردینو را پوشش خواهیم داد.
ارتباط سریالی
برای اینکه بتوانید با سریال خروجی آردینو ارتباط داشته باشید نیاز به ایجاد یکسری تنظیمات در قسمت Setup خواهید بود. Serial به صورت کلی Object کنترل کننده ارتباطات تحت سریال دستگاه شما خواهد بود و با اجرا کردن یکسری متد ها می توانید با توانایی های مربوط به سریال دستگاهتان ارتباط برقرار کنید.
Serial.begin(baud_rate)
متد begin برای آماده سازی پورت سریال بر روی baudrate مورد نظر است. که برای اینکه بتوانید خروجی کد های خود را در بورد مشاهده کنید می بایست در تابع setup از متد begin بر روی Serial استفاده کنید. نمونه قطعه کد را می توانید در زیر مشاهده کنید.
void setup(){
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop(){
// put your main code here, to run repeatedly:
}
تا اینجا ارتباط سریالی را با دستگاه بر روی baud rate 9600 تنظیم کردیم اما می بایستی بتوانید دستورات خروجی را نیز مشاهده کنیم.
Serial.print(msg) یا Serial.println(msg)
دو دستور بالا کار نمایش پیغام در خروجی سریال را برای ما ایفا می کنند که در واقع به نوعی برای debug و اشکال زدایی کد هم می توان از آن ها استفاده کرد. اما تفاوت این دو مدل پرینت در این است که println پس از نوشتن خروجی مورد نظر به خط بعدی می رود و منتظر دستورات چاپی جدید می ماند ولی در print تنها خروجی را پشت سر هم چاپ می کند. اما اگر بخواهیم یک جمع بندی از مطالب بالا داشته باشیم، می توانیم با ایجاد برنامه hello world که در بسیاری از برنامه نویسی ها مرسوم است اقدام به ایجاد یک برنامه کلی داشته باشیم که طرح آن به شکل زیر خواهد بود. توجه داشته باشید که جاپ خروجی مورد نظر در قسمت Setup قرار دارد و تنها یک بار اجرا خواهد شد و در صورتی که این عمل در loop انجام گیرد به صورت مداوم چاپ را انجام خواهد داد.
void setup(){
// put your setup code here, to run once:
Serial.begin(9600);
Serial.print("Hello World");
}
void loop(){
// put your main code here, to run repeatedly:
}
و اما در نهایت با زدن دکمه آپلود می توانید کد مورد نظر را بر روی بورد خود بارگذاری کنید و نحوه اجرای آن را در سریال مانیتور مشاهده نمایید.