برنامه نویسی میکروکنترلرها با ویژوال استودیو با اضافه کردن افزونه ای به نام VisualGDB امکان پذیر می شود. پس از نصب ویژوال استودیو، VisualGDB را نصب و هنگام ایجاد پروژه، از Templateهای جدید استفاده می کنیم. در این صورت می توانیم برای طیف وسیعی از میکروکنترلرها برنامه نویسی کنیم. همچنین برای برنامه نویسی آردوینو در ویژوال استودیو، یک Template اختصاصی به ویژوال استودیو اضافه می شود. در این نوشته به افزودن VisualGDB به ویژوال استودیو و ایجاد پروژه برای کدنویسی میکروکنترلرها در ویژوال استودیو می پردازیم. همچنین نحوۀ ایجاد پروژه را برای برنامه نویسی آردوینو بررسی می کنیم.
ویدئوی 1 – افزودن آردوینو به ویژوال استودیو
نرم افزار Visual Studio یک IDE قدرتمند ساخت شرکت مایکروسافت است و برای برنامه نویس ها توسعه داده شده است. این نرم افزار از زبان های مختلف برنامه نویسی پشتیبانی می کند و می توان با آن نرم افزارهای ویندوزی، کنسولی، سرویس های وب، سرویس های ویندوز و … تولید کرد. این نرم افزار امکانات و قابلیت های زیادی دارد. و این قابلیت ها و امکانات باعث راحتی کار برنامه نویس و تسریع روند برنامه نویسی و پروژه می شوند. با افزودن VisualGDB امکان توسعۀ سیستم های مبتنی بر میکروکنترلر نیز فراهم می شود. VisualGDB ابزاری است که GCC و GDB و GNU Make را به طور یکپارچه در ویژوال استودیو ادغام می کند. در این صورت می توان از Visual Studio برای توسعۀ سیستم های نهفته نیز استفاده کرد. برای برنامه نویسی میکروکنترلرها با VisualGDB باید به این صورت عمل کنیم. زمانی که نرم افزار ویژوال استودیو بسته است، VisualGDB را مطابق تصویر زیر نصب می کنیم. VisualGDB را پیوست قرار داده ایم. در ادامه نحوۀ ساخت پروژه را در ویژوال استودیو برای برنامه نویسی میکروکنترلرهای STM32، بردهای آردوینو، میکروکنترلرهای AVR و میکروکنترلرهای LPC بررسی می کنیم.
آموزش های یوبرد مرتبط با این نوشته:
تصویر 1 – نصب VisualGDB برای برنامه نویسی میکروکنترلرها با ویژوال استودیو
ساخت پروژه برای برنامه نویسی میکروکنترلرها با ویژوال استودیو
پس از نصب VisualGDB، ویژوال استودیو را باز می کنیم. در پنجرۀ باز شده روی Create a new project کلیک می کنیم (1). در پنجرۀ Create a new project کلمۀ VisualGDB را جست و جو می کنیم (2). گزینۀ Embedded project wizard را انتخاب و روی Next کلیک می کنیم (3 و 4). در پنجرۀ Configure your new project نام و محل ذخیرۀ پروژه را تعیین می کنیم و روی Create کلیک می کنیم (5 و 6). مراحل این بخش در ساخت پروژه برای میکروکنترلرها مشترک است.
نکته: ممکن است حین ایجاد پروژه پنجره ای برای آپدیت شدن VisualGDB باز شود. در این صورت باید پنجره را ببندیم و از آپدیت شدن VisualGDB خودداری کنیم.
نکته: در تمامی مراحل ایجاد پروژه باید اتصال به اینترنت برقرار باشد و در صورت نیاز از VPN استفاده شود. همچنین باید اجازه دهیم فایل ها و ابزارهای مورد نیاز دانلود و نصب شوند. در بعضی موارد تا فایل های مورد نیاز نصب نشوند، امکان رفتن به مرحلۀ بعد وجود ندارد.
تصویر 2 – مراحل ایجاد پروژه برای برنامه نویسی میکروکنترلرها در Visual Studio
ساخت پروژه برای برنامه نویسی STM32 در ویژوال استودیو
پس از مراحل اولیۀ ساخت پروژه برای برنامه نویسی میکروکنترلرها با ویژوال استودیو، پنجرۀ New embedded project باز می شود. در بخش Project type گزینۀ Create a new project را انتخاب می کنیم (1). در تنظیمات این بخش تیک hex را فعال و زبان C++ را برای برنامه نویسی انتخاب می کنیم (2 و 3). روی Next کلیک می کنیم (4). در این صورت وارد بخش Device selection می شویم. در این قسمت در بخش انتخاب Toolchain، گزینۀ ARM in … arm-eabi را انتخاب می کنیم (5). در تب Device by name و در تکست باکس Filter میکروکنترلر مورد نظر را جست و جو می کنیم (6). آن را انتخاب می کنیم و تنظیمات آن را انجام می دهیم (7 و 8). روی Next کلیک می کنیم (9).
نکته: ممکن است Toolchain مورد استفاده در این بخش (arm-eabi) از قبل نصب نباشد و نیاز باشد آن را نصب کنیم.
تصویر 3 – مراحل ساخت پروژه برای برنامه نویسی STM32 در ویژوال استودیو
سپس وارد بخش Sample selection می شویم. در این بخش یک نمونه پروژۀ آماده و یا یک پروژۀ خالی را می توانیم انتخاب کنیم. ما گزینۀ LEDBlink(HAL) را انتخاب می کنیم (1). در این صورت می توانیم با کتابخانه های HAL و یا به صورت رجیستری برنمه نویسی کنیم. نمونه کدی که ایجاد می شود، برای صفر و یک کردن یکی از پایه های GPIO در STM32 است. پایۀ مورد نظر را انتخاب و روی Next کلیک می کنیم (2 و 3). وارد بخش Debug method می شویم. در این بخش با تیک زدن USB devices در نوار ابزار Debug using، پروگرامر متصل شده به کامپیوتر را انتخاب می کنیم (4). تنظیمات پروگرامر را انجام می دهیم و روی Finish کلیک می کنیم (5 تا 9).
نکته: برای شناخته شدن پروگرامر، باید از قبل درایور آن نصب شده باشد.
پروگرام کردن STM32 با JTAG و SWD و بوت لودر
تصویر 4 – مراحل دیگر ساخت پروژه برای برنامه نویسی STM32 در ویژوال استودیو
کدنویسی STM32 در ویژوال استودیو
پس از انجام مراحل مذکور، پروژه باز می شود. با دابل کلیک کردن روی فایل اصلی برنامه (فایل با پسوند cpp)، آن را باز می کنیم (1). برای کامپایل برنامه از منوی Build روی Build کلیک می کنیم (2). برای پروگرام کردن میکروکنترلر، روی پروژه کلیک راست می کنیم و در کادر باز شده روی Program and start without debugging کلیک می کنیم (3). اگر بخواهیم تنظیمات پروژه را تغییر بدهیم، روی پروژه کلیک راست می کنیم و روی VisualGDB project properties کلیک می کنیم. در این صورت پنجره ای باز می شود که می توانیم تنظیمات پروژه را در آن تغییر دهیم. کدهایی که در ایجاد پروژه با کتابخانه های HAL در فایل اصلی قرار دارند به این صورت هستند:
#include <stm32f1xx_hal.h>
#include <stm32_hal_legacy.h>
#ifdef __cplusplus
extern "C"
#endif
void SysTick_Handler(void)
{
HAL_IncTick();
HAL_SYSTICK_IRQHandler();
}
int main(void)
{
HAL_Init();
__GPIOA_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.Pin = GPIO_PIN_5;
GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStructure.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
for (;;)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
HAL_Delay(500);
}
}
اگر بخواهیم به صورت رجیستری برنامه نویسی کنیم، تنها کتابخانۀ stm32f1xx_hal.h نیاز است. بنابراین برنامه ای که داشتیم، با مقدار دهی مستقیم به رجیسترها، به صورت زیر است:
#include <stm32f1xx_hal.h>
void delay_ms(unsigned int count)
{
unsigned int i = 0 , j = 0;
for (i = 0; i < count; i++)
{
for (j = 0; j < 500; j++) ;
}
}
int main(void)
{
RCC->APB2ENR |= (1 << 2) | (1 << 0);
AFIO->MAPR |= (1 << 25);
GPIOA->CRL &= ~((1 << 23) | (1 << 22) | (1 << 21) | (1 << 20));
GPIOA->CRL |= (1 << 21);
while (1)
{
GPIOA->BRR |= (1<<5);
delay_ms(500);
GPIOA->BSRR |= (1 << 5);
delay_ms(500);
}
}
پروژه های ساخته شده برای میکروکنترلر STM32F103RB در پیوست قرار دارند. مراحلی که تا اینجا بررسی کردیم، تا حدودی مشابه روش ساخت پروژه برای میکروکنترلرهای دیگر است. برای درک بهتر روش ساخت پروژه برای برنامه نویسی میکروکنترلرها با ویژوال استودیو، در ادامه پروژه هایی برای میکروکنترلرهای AVR و LPC ایجاد می کنیم.
تصویر 5 – پروژۀ ایجاد شده برای STM32 در ویژوال استودیو
ساخت پروژه برای برنامه نویسی میکروکنترلرهای AVR و LPC
اگرچه برای میکروکنترلرهای AVR نرم افزار اتمل استودیو وجود دارد، اما ویژوال استودیو نیز انتخاب مناسبی است. برای برنامه نویسی AVR در ویژوال استودیو، مراحل ساخت پروژه با آنچه برای STM32 دیدیم کمی تفاوت دارد. اولین تفاوت در بخش Device selection است که باید در بخش انتخاب Toolchain، گزینۀ avr را انتخاب کنیم (1). که اگر از قبل نصب نشده باشد، دانلود و نصب می شود. برای نصب باید تیک I accept the GPLv3 و Install for all users را بزنیم و روی دکمۀ Install کلیک کنیم (2 و 3). سپس با انتخاب آن، می توانیم میکروکنترلر AVR مورد نظر را جست و جو کنیم (4). تفاوت بعدی در بخش Debug method است که می توانیم Built-in GDB simulator (very basic) را انتخاب کنیم. پروژۀ ساخته شده برای میکروکنترلر ATmega64A در پیوست قرار دارد.
تصویر 6 – بخشی از مراحل ساخت پروژه برای کدنویسی AVR در ویژوال استودیو
مراحل ساخت پروژه برای برنامه نویسی LPC در ویژوال استودیو با آنچه برای STM32 داشتیم، مقداری متفاوت است. یکی از تفاوت ها موقع جست و جو و انتخاب میکروکنترلرهای LPC در بخش Device selection است. در صورتی که فایل های مربوط به این میکروکنترلرها را نصب نباشند، باید آنها را دانلود و نصب کنیم. با کلیک روی دکمۀ Install در کادری که در بخش Device selection ظاهر می شود، فایل های مربوط را دانلود و نصب می کنیم. تفاوت دیگر در بخش Sample selection است. که تنها نمونۀ LEDBlink و Empty project وجود دارد. ما LEDBlink را انتخاب می کنیم و پروژه را ایجاد می کنیم. پروژۀ ساخته شده برای میکروکنترلر LPC1768 در پیوست قرار دارد. دقت شود که در این پروژه، در بخش Debug Method، پروگرامر J-Link انتخاب شده است. تا اینجا به ساخت پروژه برای برنامه نویسی میکروکنترلرها با ویژوال استودیو پرداختیم. در ادامه دربارۀ مراحل ساخت پروژه برای برنامه نویسی آردوینو در ویژوال استودیو صحبت می کنیم.
تصویر 7 – بخشی از مراحل ساخت پروژه برای کدنویسی LPC در ویژوال استودیو
ساخت پروژه برای برنامه نویسی آردوینو در ویژوال استودیو
پس از نصب VisualGDB، یک Template اختصاصی برای آردوینو به وجود می آید. ابتدا مثل آنچه در ساخت پروژه برای برنامه نویسی میکروکنترلرها با ویژوال استودیو داشتیم، عمل می کنیم. ویژوال استودیو را باز و روی Create a new project کلیک می کنیم. در پنجرۀ باز شده کلمۀ VisualGDB را جست و جو می کنیم (1). گزینۀ Arduino project wizard را انتخاب و روی Next کلیک می کنیم (2 و 3). در پنجرۀ New Arduino project در بخش Project type گزینۀ Create a new “Blinking LED” project را انتخاب و روی Next کلیک می کنیم (4 و 5). در بخش Arduino device برد مورد نظر را جست و جو و انتخاب می کنیم (6 و 7). در بخش COM port، پورت سریالی را که به برد متصل به کامپیوتر داده شده، انتخاب و روی Next کلیک می کنیم (8 و 9). در بخش Debug method نیز نوع دیباگ را می توانیم روی Built-in GDB simulator (very basic) قرار دهیم (10). در نهایت روی Finish کلیک می کنیم (11).
تصویر 8 – مراحل ساخت پروژه برای کدنویسی آردوینو در ویژوال استودیو
پس از ساخته شدن پروژه، اگر فایل برنامه باز نشد، می توانیم از پوشۀ Sketch files آن را باز کنیم (1). برای کامپایل برنامه از منوی Build روی Build کلیک می کنیم (2). برای آپلود برنامه روی برد، روی آیکون Program Arduino … کلیک می کنیم (3). در اینجا نیز می توانیم روی پروژه کلیک راست کنیم و در کادر باز شده، روی VisualGDB project properties کلیک کنیم. در این صورت می توانیم در پنجرۀ باز شده تنظیمات پروژه را تغییر دهیم. همچنین اگر آیکون Program Arduino … موجود نبود، می توانیم با کلیک راست کردن روی پروژه و کلیک روی Program flash memory، برد آردیونو را برنامه ریزی کنیم.
نکته: کتابخانه های نصب شده با Arduino IDE، به صورت خودکار به ویژوال استودیو اضافه می شوند.
تصویر 9 – پروژۀ ساخته شده برای آردوینو در ویژوال استودیو
نتایج برنامه نویسی میکروکنترلرها با ویژوال استودیو
- برای کدنویسی میکروکنترلرها در ویژوال استودیو باید افزونۀ VisualGDB را نصب کرد.
- با اضافه کردن VisualGDB به ویژوال استودیو، امکان استفاده از قابلیت های این نرم افزار، برای برنامه نویسی میکروکنترلرها فراهم می شود.
- پس از نصب VisualGDB تعدادی Template به ویژوال استودیو اضافه می شوند. از میان این Templateها، Embedded project wizard و Arduino project wizard به ترتیب برای برنامه نویسی میکروکنترلرها و بردهای آردوینو هستند.
- هنگامی که برای یک میکروکنترلر، اولین بار پروژه ای با Templateهای VisualGDB ایجاد می شود، باید ارتباط اینترنتی برقرار باشد. همچنین در صورت نیاز باید از VPN استفاده شود. در مراحل ایجاد پروژه ابزارها و فایل هایی دانلود و نصب می شوند.
- برای ساخت پروژه در ویژوال استودیو برای میکروکنترلرهایی با پردازندۀ ARM، از یک Toolchain به نام arm-eabi استفاده می شود.
- برای میکروکنترلرهای STM32 در بخش Sample selection نمونه های بیشتری نسبت میکروکنترلرهای LPC وجود دارد.
- برای برنامه نویسی میکروکنترلرهای STM32 در ویژوال استودیو به صورت رجیستری، می توان از نمونه ای که کتابخانه های HAL را به پروژه اضافه می کند، استفاده کرد.
- برای ساخت پروژه در ویژوال استودیو برای میکروکنترلرهای AVR، از Toolchainی به نام avr استفاده می شود.
- مراحل ساخت پروژه در ویژوال استودیو برای میکروکنترلرهای LPC، تا حدود زیادی شبیه مراحل ساخت پروژه برای میکروکنترلرهای STM32 است.
- برای بردهای آردوینو در VisualGDB یک Template اختصاصی وجود دارد. مراحل ساخت پروژۀ آردوینو نیز شامل انتخاب نوع پروژه، انتخاب برد، تعیین پورت COM اختصاص داده شده و تعیین نوع دیباگ است.
سلام وقت بخیر. من برای برنامه نویسی آردوینو افزونه vmicro رو روی اتمل استودیو نصب کرده بودم/ الان میخوام نصب کنم تو اکستنشن هاش ویژوال میکرو رو سرچ می کنم چیزی نمیاره. چطوری باید دانلودش کنم؟ به نظر شما ویژوال میکرو بهتره یا ویژوال gdb؟ ممنون
سلام. وقت شما هم بخیر. شما باید Arduino IDE یا Arduino رو توی افزونه های اتمل استودیو سرچ کنید. دربارۀ این که کدوم بهتره خب VisualGDB برای میکروکنترلرها و آردوینو و کلاً برای توسعۀ سیستم های نهفته هست. V Micro فقط برای آردوینو. البته VisualGDB ویژگی ها و امکانات گستردۀ دیگه ای هم داره که مطرح کردنشون نیاز به نوشتۀ مجزا داره. بنده خودم خیلی کم و فقط برای تست از V Micro استفاده کردم. اما تا جایی که به یاد دارم، امکاناتش کمتر از VisualGDB هستش. خواهش میکنم
سلام. وقت شما بخیر. من ویژوال استودیو رو دانلود کردم. میخوام برا آردوینو کدنویسی کنم ولی نمیدونم کدوم پکیج رو باید موقع نصب ویژوال استودیو نصب کنم. و کدوم نسخه رو باید نصب کنم؟ اینترپرایز یا پروفشنال یا کامیونیتی. ممنون
سلام خیلی ممنون. من نسخۀ Community رو نصب کردم. این نسخه رایگانه. شما میتونید نسخه های دیگه هم بسته به نیازتون نصب کنید. برای برنامه نویسی میکروکنترلرا و آردوینو تو ویژوال استودیو باید Desktop development with C++ رو نصب کنید. خواهش میکنم. موفق باشید
سلام
در صورت امکان نحوه کامپایل و ساخت خروجی hex برای میکروکنترلرها در محیط Visual Studio بدون نصب VisualGDB را توضیح دهید.
به نظر میآید با Makefile Projects با VCبشود ولی تنظیمات آن مهم است که تا حالا من نتوانستهام موفق شوم
سلام وقت بخیر. این کار رو بنده تا حالا انجام ندادم. اگه طوری که شما فرمودید، امکانش وجود داشته باشه، حتماً در آینده درباره ش تو وبلاگ نوشته ای قرار میدیم.
درود بر شما ، آموزش بسیار خوب و کاربردی بود ، لطفا در مورد استفاده از کتابخانه های آردوینو برای avr در محیط ویژوال استودیو نیز راهنمایی بفرمایید . متشکرم
سلام. خیلی ممنون. لطف دارید. این موضوع رو توی جلسۀ اول آموزش آردوینو توضیح دادیم و این جلسه، الآن، از عید قربان تا عید غدیر رایگان شده و میتونید تهیه کنید. پک آردوینو هم تخفیف خورده، نحوۀ دانلود جلسۀ اول که رایگانه و استفاده از کد تخفیف پک رو توی یکی از پست ها و چند تا استوری توی پیج اینستاگرام توضیح دادیم. به اینستاگرام یوبرد (uboard_ir) مراجعه کنید و این موضوع رو ببینید. خواهش میکنم.
درود وقت خوش ، هنگام نصب افزونه ها خطای پروکسی ظاهر میشه و نمیتونم افزونه ها رو نصب کنم لطفا راهنمایی بفرمایید . ممنون
سلام وقتتون بخیر. نرم افزار رو ببندید. یه وی پی ان رو روشن کنید. نرم افزار رو باز کنید و ادامه بدید. خواهش می کنم.
ممنون از این مقاله کاربردی
خواهش میکنم. لطف دارید.