آماده سازی محیط VSCODE برای برنامه نویسی AVR

0
18
آماده سازی محیط VSCODE برای برنامه نویسی AVR
آماده سازی محیط VSCODE برای برنامه نویسی AVR

به نام خدایی که جان آفرید، زمین و زمان و مکان آفرید.

در مقاله “بررسی زبان، کامپایلر و محیط‌های برنامه نویسی مختلف برای میکروکنترلر AVR” برخی از محیط‌ها و زبان‌های مورد استفاده برای میکروکنترلر AVR بررسی شد. در انتها یکی از پیشنهادها این بود که از یک محیط توسعه خوب، به همراه کامپایلر GCC استفاده کنید. یکی از این محیط‌های برنامه نویسی بسیار قوی و در عین حال ساده، محیط ویژوال استودیو کد می‌باشد. این نرم افزار همچون ++Notepad برای نصب و اجرا به فضا و سیستم بسیار قوی نیاز ندارد و شما تقریباً می‌توانید آن را روی هر سیستمی راه اندازی نمایید. در این مقاله، شما می‌آموزید که چگونه محیط این نرم افزار را برای برنامه نویسی بر روی میکروکنترلر AVR و بسیاری از برد های دیگر آماده و شروع به برنامه نویسی کنید.

با این آموزش همراه باشید.

VSCODE

VSCODE
VSCODE

VSCODE مخفف عبارت Visual Studio Code (ویژوال استادیو کد) می‌باشد. VSCODE یک CodeEditor یا محیط ویرایشگر کد است که به‌صورت رایگان از گیت‌هاب قابل دریافت می‌باشد. این کد ادیتور برای سیستم عامل‌های مختلفی، از جمله ویندوز، مک و لینوکس ارائه شده است و زبان‌های برنامه نویسی مختلفی از جمله پایتون، سی پلاس پلاس، جاوا و … را پشتیبانی می‌کند. حال، می‌خواهیم با افزودن کامپایلر و ابزارهای مرتبط به این ویرایشگر کد، آن را به یک IDE یا محیط یکپارچه توسعه برای AVR با زبان ++C/C تبدیل کنیم.

 

از ویژگی های VSCODE

  • سبک بودن و اجرای روان
  • کراس پلت فرم بودن – اجرا بر روی انواع مختلف سیستم عامل‌ها
  • پشتیبانی از GCC و Clang به خوبی کامپایلر ++C ماکروسافت
  • ابزار های آنالیز و بررسی کد های ++C
  • خطایاب و دیباگر (Debugger) اختصاصی
  • پشتیبانی از گیت
  • قابلیت multi-monitor به منظور مدیریت و سازماندهی بهتر
  • نوآوری ها و امکانات جدید در زبانهای #C و Visual Basic

 

رتبه و جایگاه در میان دیگر رقبا

در تصویر زیر، همان‌گونه که مشاهده می‌کنید، پلت فرم خاصی انتخاب نشده است و مقایسه به‌طور کلی میان کد ادیتور ها صورت گرفته است. نکته‌ای که در این تصویر وجود دارد، بالاتر بودن جایگاه ویژوال استودیو کد، حتی نسبت به ابزارهای رایگانی مثل ++Notepad و Sublime Text می‌باشد.

مقایسه کلی میان کد ادیتور ها
مقایسه کلی میان کد ادیتور ها

آماده سازی محیط توسعه

نصب

فرآیند نصب VS Code به سادگی دانلود فایل نصب و چند بار کلیک کردن بر روی دکمه Next صورت می پذیرد!

تبدیل VSCODE به IDE سخت افزار نویسی

اگر بخواهید از طریق افزودن کامپایلر GCC به VSCODE، آن را برای برنامه نویسی روی AVR آماده کنید، باید مراحل زیادی را طی کنید:

نصب Extension یا افزودنی ++C/C برای VSCODE

ایجاد تغییرات در فایل Json افزونه برای برنامه نویسی روی AVR

ساخت ورک اسپیس و فولدر جدید برای پروژه

افزودن و کانفیگ کامپایلر GCC به ویژوال استودیو کد

افزودن کتابخانه (لایبری) های مورد نیاز برنامه نویسی AVR به پروژه

مراحل و دردسر های ساخت make file

افزودن کامند های avrdude برای پروگرام کردن

و…

با توجه به طولانی و پیچیده بودن مراحل فوق، ممکن است برای کسانی که در مراحل اولیه برنامه نویسی هستند مشکلات زیادی را به وجود بیاورد. چه بسا شخصی فقط به خاطر ماندن در مراحل اولیه نصب، از آموختن برنامه نویسی به طور کلی پشیمان شود! اما راهکار بسیار ساده و کارآمدتری وجود دارد. این راهکار نه تنها بسیار ساده و روان‌تر است، بلکه حالت یک تیر و چند نشان نیز دارد. یعنی شما تنها یک بار با انجام این مراحل قادر خواهید بود تا محیط ویرایشگر ویژوال استودیو کد را نه تنها برای AVR، بلکه برای خیلی از بردهای الکترونیکی دیگر از جمله ARM و آردوینو نیز آماده سازید.

نصب افزونه PlatformIO بر روی ویژوال استودیو کد

افزونه متن باز و رایگان PlatformIO، به ویژوال استودیو این امکان را می‌دهد که بتوانید به‌صورت یکجا ابزارهای لازم برای برنامه نویسی روی AVR،ARM، آردوینو و بسیاری از بردهای الکترونیکی دیگر را داشته باشید. قبلاً مقاله‌ای با عنوان “ویرایشگر حرفه‌ای ویژوال استودیو کد با طعم آردوینو” منتشر شد و در آن اتصال این افزونه به ویژوال استودیو، برای ایجاد یک پروژه آردوینو آموزش داده شد. حال، در این آموزش قصد دارم تا با استفاده از همین افزونه، پروژه AVR نیز بنویسم. PlatformIO در واقع یک اکوسیستم کامل و نسل جدید برای طراحی و توسعه سیستم‌های IOT (چیز نت) است. PlatformIO نزدیک به 600 دستگاه و برد IOT را پشتیانی می‌کند. بردهای آردینو نیز از این جمله بردها هستند.

برای نصب PlatformIO کافی ست تا مراحل زیر را انجام دهید:

گام اول – در نرم افزار VSCode (ویژوال استودیو کد) به قسمت Package Manager بروید.

گام دوم – عبارت platformio-ide را جستجو کنید.

گام سوم – بر روی کلید Install کلیک کند و منتظر شوید تا نصب پایان یابد.

گام چهارم – بهتر است محیط ویرایشگر را یک بار بسته و مجدداً باز نمایید.

نصب افزونه PlatformIO
PlatformIO

اگر نصب به درستی انجام شده باشد، در نوار کناری VSCode باید آیکون PlatformIO را مطابق عکس زیر مشاهده کنید:

 VSCode و آیکون PlatformIO
VSCode و آیکون PlatformIO

در این مرحله اگر آیکون PlatformIo را در Activity Bar مشاهده نکردید، احتمالاً VSCODE شما نیاز به نصب افزونه‌های دیگری دارد که از قبل بر روی سیستم شما وجود ندارد. اگر پیام زیر را مشاهده کردید، بر روی دکمه Install All کلیک کنید تا تمام افزونه‌های مورد نیاز شما نصب گردد.

 Install All
Install All

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

Dependencies
Dependencies

همچنین اگر علامتی شبیه علامت رفرش را در پایین صفحه مشاهده کردید که در حال گردش است، احتمالاً هنوز کار نصب افزونه شما به اتمام نرسیده است. در آخرین مرحله، یکبار VSCODE را بسته و مجدداً باز کنید.

ساخت اولین پروژه آردوینو با ویژوال استودیو کد

برای ساخت پروژه ابتدا به صفحه خانه (Home) در PlatfromIO بروید و بر روی کلید New Project کلیک کنید.

PlatfromIO > (Home) >New Project
PlatfromIO > (Home) >New Project

بعد از فشردن کلید New Project پنجره‌ای ظاهر می‌شود که لازم است نوع سخت افزار و اسم پروژه و البته فریمورک مورد استفاده را در آن مشخص کنید.

Project
Project

1- نامی برای پروژه خود انتخاب کنید.

همیشه سعی کنید برای پروژه هایتان یک محل مشخص، با آدرس دهی و نام گذاری منطقی استفاده کنید.هر چند این نام گذاری دلخواه است، اما توصیه می‌کنم همیشه نام پروژه را با حروف کوچک و بدون فاصله وارد کنید. کاراکتر آندراسکور “_” را نیز سعی کنید تنها در میان دو کلمه‌ای که معنی متفاوت از هم دارند بکار ببرید. برای مثال framework یک کلمه است و لازم نیست میان frame و work فاصله بیندازید.

2- برد دلخواهتان را انتخاب کنید. در این پروژه، به عنوان نمونه تراشه میکروکنترلر AVR ATmega32 انتخاب شده است.

3- چارچوب برنامه نویسی (Framework) خود را انتخاب کنید. همان‌طور که می‌بینید، در این لیست برای AVR تنها فریمورک آردوینو قابل انتخاب است. اگر شما می‌خواهید با زبان C برای این میکروکنترلر برنامه بنویسید، نگران نباشید. در ادامه تغییری ایجاد می‌کنیم تا بتوانید مستقیماً با C برای AVR کد بنویسید.

4- دکمه‌ی پایان را فشار دهید.

حال، کمی منتظر بمانید تا محیط برنامه نویسی برای شما آماده شود:

 

پس از ایجاد پروژه، شما می‌توانید با فریمورک آردوینو، بدون هیچ مشکلی برای تراشه‌های مختلف AVR مثل ATmega32 و… برنامه نویسی کنید. برای این کار تنها کافی است تا فایل main.cpp را انتخاب کرده و شروع به کد نویسی کنید. قبلاً در پست “ویرایشگر حرفه‌ای ویژوال استودیو کد با طعم آردوینو” روش آپلود و تست برنامه آردوینو به همراه مثال عملی توضیح داده شده است.

 

برنامه نویسی برای AVR، بدون فریمورک آردوینو و با زبان C

از میان فایل‌های پروژه، platformio.ini را برای ویرایش باز کنید. حال خطوطی که در آن framework = arduino وجود دارند را پاک کنید. به همین راحتی!

برنامه نویسی برای AVR، بدون فریمورک آردوینو و با زبان C

اضافه کردن پروگرامر

برای آپلود فایل هگز برنامه نوشته شده بر روی تراشه، می‌بایست پروگرامر را به ویژوال استودیو کد معرفی کنید. platfomIo از نرم افزار avrdude برای آپلود فایل هگز استفاده می‌کند. این نرم افزار به‌صورت دستوری (کامند) کار می‌کند. برای پیکر بندی پروگرامر خود در پلت فرم آی او، تکه کد زیر را با توجه به نوع پروگرامر خود ویرایش کرده و سپس به فایل platformio.ini اضافه کنید:

upload_protocol = usbasp
; each flag in a new line
upload_flags =
-C$PROJECT_PACKAGES_DIR/tool-avrdude/avrdude.conf
-pm32
-Pusb
-cusbasp
upload_command = avrdude $UPLOAD_FLAGS -U flash:w:$SOURCE:i

 

توضیح خط اول

در مقابل = upload_protocol نوع پروگرامر خود را وارد کنید. با توجه به لیست بزرگ پروگرامر های پشتیبانی شده، احتمال اینکه پروگرامر شما در این لیست باشد، بسیار زیاد است. ابتدا اسم پروگرامر خود را از این لیست پیدا کرده، سپس آن را کپی کنید و به جای مقدار usbasp قرار دهید. توجه داشته باشید که برخی پروگرامرها چند مدل دارند، مثل stk500. پس باید دقت داشته باشید که دقیقاً پروگرامر خودتان را انتخاب کنید. پروگرامر مورد استفاده در این آموزش usbasp می‌باشد.

2232HIO
4232h
arduino
arduino-ft232r
arduinoisp
arduinoisporg
atmelice
atmelice_dw
atmelice_isp
atmelice_pdi
avr109
avr910
avr911
avrftdi
avrisp
avrisp2
avrispmkII
avrispv2
buspirate
buspirate_bb
butterfly
butterfly_mk
bwmega
C232HM
c2n232i
dasa
dasa3
diecimila
dragon_dw
dragon_hvsp
dragon_isp
dragon_jtag
dragon_pdi
dragon_pp
flip1
flip2
ft232r
ft245r
jtag1
jtag1slow
jtag2
jtag2avr32
jtag2dw
jtag2fast
jtag2isp
jtag2pdi
jtag2slow
jtag3
jtag3dw
jtag3isp
jtag3pdi
jtagkey
jtagmkI
jtagmkII
jtagmkII_avr32
lm3s811
mib510
mkbutterfly
nibobee
o-link
openmoko
pavr
pickit2
ponyser
siprog
stk500
stk500hvsp
stk500pp
stk500v1
stk500v2
stk600
stk600hvsp
stk600pp
ttl232r
tumpa
UM232H
uncompatino
usbasp
usbasp
usbtiny
wiring
xplainedmini
xplainedmini_dw
xplainedpro

توضیح خط پنجم

خط پنجم، نوع میکروکنترلر را مشخص می‌کنید. میکروکنترلر مورداستفاده در این آموزش ATmega32 است که مقدار آن m32 است. پس در خط پنجم عبارت pm32- پارامتر شناسایی این میکروکنترلر خواهد بود. نوع میکرو کنترلر خود را از این لیست می‌توانید انتخاب نمایید.

توضیح خط ششم

پارامتر بعدی پورت است که مقدار آن در اینجا USB قرار داده شده است. اگر پروگرامر شما سریال بود، این پارامتر را پاک کرده و در انتها، کدهای زیر را اضافه کنید:

upload_port = SERIAL_PORT_HERE
upload_speed = 115200

SERIAL_PORT_HERE: شماره پورت سریالی که پروگرامر شما به آن متصل شده را به جای این مقدار قرار دهید.

115200 حداکثر سرعت انتقال اطلاعات از طریق پورت سریال است. شما می‌توانید این مقدار را با سرعت‌های استاندار عوض کنید.

 

توضیح خط هفتم

در نهایت فایل platformio.ini برای این پروژه، کدی شبیه به این خواهد داشت:

;PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:ATmega32]
platform = atmelavr
board = ATmega32
upload_protocol = usbasp
; each flag in a new line
upload_flags =
-C$PROJECT_PACKAGES_DIR/tool-avrdude/avrdude.conf
-pm32
-Pusb
-cusbasp
upload_command = avrdude $UPLOAD_FLAGS -U flash:w:$SOURCE:i

اگر درایورهای پروگرامر شما با موفقیت نصب شده باشد و آن را به کامپیوتر خود متصل کنید، در مراحل بعد بدون هیچ مشکلی می‌توانید برنامه خود را روی آی سی آپلود کنید!

شروع برنامه نویسی برای AVR

از آنجایی که شما می‌خواهید در ویژوال استودیو کد به زبان C برنامه بنویسید نه با زبان ++C، بر روی فایل main.cpp کلیک راست کرده و آن را پاک کنید. حال روی پوشه src کلیک راست کرده و فایل جدیدی به نام main.c می‌سازیم تا کدهایمان را درون این فایل بنویسیم.

شروع برنامه نویسی برای AVR

پس از ساخت فایل main.c، آن را باز کنید تا اولین برنامه را برای AVR بنویسیم.

main.c
main.c

خوشبختانه کتابخانه (لایبری) های مورد نیاز AVR به طور پیش فرض به IDE ما اضافه شده‌اند و شما دیگر لازم نیست آن‌ها را اضافه کنید!

هورااا! یک مرحله جلو افتادیم! 🙂

کد زیر را به عنوان نمونه درون فایل main.c کپی کنید.

#include <avr/io.h>
#include <util/delay.h>

int main()
{
DDRA = DDRB = DDRC = DDRD = 0xff;
PORTA = PORTB = PORTC = PORTD = 0x00;

while (1)
{
_delay_ms(500);
PORTA ^= (1 << 1);
_delay_ms(500);
}
}

به وسیله دکمه‌های زیر، می‌توانید برنامه خود را تست و یا بر روی تراشه بارگذاری کنید!

کامپایل و آپلود روی میکروکنترلر

در ضمن کد خروجی شما توسط کامپایلر استاندارد و متن باز GCC تولید شده است که در مقایسه با کدویژن، از لحاظ بهبود و کارایی بسیار قوی‌تر عمل می‌کند!

 

منبع :سیسوگ

برای این مقاله نظر بگذارید:

لطفا دیدگاه خود را بنویسید
لطفا نام خود را وارد کنید