به نام خدایی که جان آفرید، زمین و زمان و مکان آفرید.
در مقاله “بررسی زبان، کامپایلر و محیطهای برنامه نویسی مختلف برای میکروکنترلر AVR” برخی از محیطها و زبانهای مورد استفاده برای میکروکنترلر AVR بررسی شد. در انتها یکی از پیشنهادها این بود که از یک محیط توسعه خوب، به همراه کامپایلر GCC استفاده کنید. یکی از این محیطهای برنامه نویسی بسیار قوی و در عین حال ساده، محیط ویژوال استودیو کد میباشد. این نرم افزار همچون ++Notepad برای نصب و اجرا به فضا و سیستم بسیار قوی نیاز ندارد و شما تقریباً میتوانید آن را روی هر سیستمی راه اندازی نمایید. در این مقاله، شما میآموزید که چگونه محیط این نرم افزار را برای برنامه نویسی بر روی میکروکنترلر AVR و بسیاری از برد های دیگر آماده و شروع به برنامه نویسی کنید.
با این آموزش همراه باشید.
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 کلیک کند و منتظر شوید تا نصب پایان یابد.
گام چهارم – بهتر است محیط ویرایشگر را یک بار بسته و مجدداً باز نمایید.
اگر نصب به درستی انجام شده باشد، در نوار کناری VSCode باید آیکون PlatformIO را مطابق عکس زیر مشاهده کنید:
در این مرحله اگر آیکون PlatformIo را در Activity Bar مشاهده نکردید، احتمالاً VSCODE شما نیاز به نصب افزونههای دیگری دارد که از قبل بر روی سیستم شما وجود ندارد. اگر پیام زیر را مشاهده کردید، بر روی دکمه Install All کلیک کنید تا تمام افزونههای مورد نیاز شما نصب گردد.
بهتر است در صفحه نصب افزونه، تب Dependencies را نیز بررسی کرده و آنها را هم نصب کنید.
همچنین اگر علامتی شبیه علامت رفرش را در پایین صفحه مشاهده کردید که در حال گردش است، احتمالاً هنوز کار نصب افزونه شما به اتمام نرسیده است. در آخرین مرحله، یکبار VSCODE را بسته و مجدداً باز کنید.
ساخت اولین پروژه آردوینو با ویژوال استودیو کد
برای ساخت پروژه ابتدا به صفحه خانه (Home) در PlatfromIO بروید و بر روی کلید New Project کلیک کنید.
بعد از فشردن کلید New 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 وجود دارند را پاک کنید. به همین راحتی!
اضافه کردن پروگرامر
برای آپلود فایل هگز برنامه نوشته شده بر روی تراشه، میبایست پروگرامر را به ویژوال استودیو کد معرفی کنید. 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
اگر درایورهای پروگرامر شما با موفقیت نصب شده باشد و آن را به کامپیوتر خود متصل کنید، در مراحل بعد بدون هیچ مشکلی میتوانید برنامه خود را روی آی سی آپلود کنید!
شروع برنامه نویسی برای AVR
از آنجایی که شما میخواهید در ویژوال استودیو کد به زبان C برنامه بنویسید نه با زبان ++C، بر روی فایل main.cpp کلیک راست کرده و آن را پاک کنید. حال روی پوشه src کلیک راست کرده و فایل جدیدی به نام main.c میسازیم تا کدهایمان را درون این فایل بنویسیم.
پس از ساخت فایل main.c، آن را باز کنید تا اولین برنامه را برای AVR بنویسیم.
خوشبختانه کتابخانه (لایبری) های مورد نیاز 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 تولید شده است که در مقایسه با کدویژن، از لحاظ بهبود و کارایی بسیار قویتر عمل میکند!
منبع :سیسوگ