در قسمت سوم از این آموزش به بررسی انواع نمایشگر و همچنین، انواع پروتکلهای نمایشگر پرداختیم. در این قسمت قصد داریم که درباره دانلود و شروع کار با LVGL، اضافهکردن کتابخانه LVGL و انجام تنظیمات اولیه lv_conf.h صحبت کنیم. پس تا پایان این قسمت ما را همراهی کنید.
شروع کار با LVGL
برای شروع کار با LVGL شما نیاز دارید که آخرین نسخه سیستم گرافیکی موردنظر خود را دانلود کنید. سیستم گرافیکی LVGL بهخاطر ویژگی open source بودن، در دو ورژن رسمی و غیررسمی ارائه میشود.
ورژن رسمی نسخهای است که هر چند وقت یکبار (مثلاً یک ماه یکبار، دو ماه یکبار و…) توسط خود شرکت ارائه میشود. ورژن غیررسمی نسخهای توسط توسعهدهندگان است و در این ورژن تغییرات توسط این افراد در بخشهای مختلف سیستم اعمال میشود. کتابخانهی کامل این سیستم گرافیکی بهصورت کلی در GitHub میباشد و این توسعهدهندگان میتوانند با سطح دسترسیهایی که خود شرکت به آنها میدهد، تغییرات موردنظر خود را اعمال کنند و به سازنده سیستم گرافیکی ارائه میدهند و در صورت تأیید، تغییرات در نسخهی اصلی اعمال میشود.
دانلود LVGL
برای دانلودکردن LVGL باید ابتدا به سایت LVGL و سپس بخش GitHub مراجعه کنید. وقتی وارد سایت LVGL میشوید، از بخش اول میتوانید وارد GitHub، از بخش دوم وارد سایت SquareLine، از بخش سوم وارد بخش Docs و از بخش چهارم وارد Forum یا انجمن این سیستم گرافیکی شوید.
وقتی که شما وارد صفحه LVGL در GitHub شوید پوشههای نسخه غیررسمی این کتابخانه را مشاهده خواهید کرد از قسمت راست پایین (گزینه Release) نسخه رسمی آن قرار دارد که با کلیک بر آن وارد یک صفحه جدید میشوید که در آن نسخه جدید و نسخههای قدیمیتر وجود دارند و شما میتوانید هر کدام که خواستید را دانلود کنید.
نکته: در صفحه دانلود نسخه رسمی، یک نسخه زیپ (Zip) داریم و یک نسخه (Tar.gz). نسخه Zip مربوط به لینوکس و نسخه Tar.gz مربوط به ویندوز است. همچنین، در بخش Catalog میتوانید تغییرات سیستم خود را مشاهده کنید؛ مثلاً چه Featureهایی اضافه شده، چه Fixهایی انجام شده و در داکیومنت (Docs) چه تغییراتی انجام شده است و… . (یعنی وقتی شما نسخه خود را آپدیت میکنید، میتوانید تغییرات این نسخه نسبت به نسخههای قبلی را در بخش Catalog مشاهده کنید.)
اما اگر شما خواستید نسخه غیررسمی را دانلود کنید، این نسخه در سمت راستبالای صفحه (گزینه Code) قرار دارد؛ روی آن کلیک کرده و سپس گزینه Download Zip را انتخاب کنید تا نسخه غیررسمی برای شما دانلود شود.
توجه📍
نسخه غیررسمی نسخهای است که توسط توسعهدهندگان، توسعه داده میشود. همچنین، این تغییرات را نیز شما میتوانید بهصورت کامل همراه با کامت ها مشاهده کنید.
اگر در بالای صفحه، گزینه LVGL را انتخاب کنید، در صفحه باز شده شما میتوانید تمام فولدرها، پروژهها، نمونه کدها و توضیحاتی که داخل Docs بهصورت پروژهای داده شده است را مشاهده کنید. همچنین، پروژهها با میکروکنترلرهای مختلف توضیح داده شدهاند و شما میتوانید آنها را دانلود کنید. بعد از اینکه نسخه رسمی و غیررسمی کتابخانه LVGL را دانلود کردید، شما میتوانید آن را به پروژهتان اضافه کنید که نحوه اضافهکردن آن را در بخشهای بعدی توضیح خواهیم داد. اما بهطورکلی، عملیات اضافهکردن این کتابخانه یا بهصورت اتوماتیک توسط کامپایلر انجام میشود یا شما باید خودتان آن را بهصورت دستی اضافه کنید.
افزودن کتابخانه LVGL
پس افزودن کتابخانه LVGLبه دو صورت زیر انجام میشود:
- بهصورت اتوماتیک
- بهصورت دستی
بخش دستی مانند کامپایلر Eclipse برای شبیهسازی است. شما میتوانید این کتابخانه را با همان روشی که گفته شد، دانلود کنید و به پروژه خود اضافه کنید؛ به این صورت که ابتدا فولدر آن را داخل پروژه اصلی قرار میدهید. سپس مراحل کانفینگ اولیه انجام داده میشود.
در اضافهکردن بهصورت اتوماتیک، کامپایلرهایی مثل Keil این ویژگی را دارند که این کتابخانه را بهصورت اتوماتیک به پروژه شما اضافه کنند. برای این کار، شما میتوانید به بخش Packs بروید و سپس LVGL را پیدا کنید و آن را انتخاب و سپس دانلود کنید. پس از آن، این کتابخانه بهصورت اتوماتیک به پروژه شما اضافه میشود.
نکته✅
فقط حواستان باشد که یک سری تغییرات هم خود Keil در سیستم ایجاد میکند. همچنین، دقت کنید که چه نسخهای از کتابخانه را دانلود میکنید.
انجام تنظیمات اولیه lv_config.h
کل تنظیمات سیستم گرافیکی شما در lv_config.h قرار دارد. همه کتابخانههایی که شما بهصورت اتوماتیک دانلود میکنید، یک فایل lv_config.h در خود دارند. شما میتوانید این فایل lv_config.h را باز کنید و تغییرات موردنیاز خود را با کامپایلر یا IDE خود، اعمال کنید.
تنظیمات اولیهای که باید انجام دهید، در زیر بهصورت خلاصه بیان شدهاند:
- تبدیل نام فایل lvgl/lv_conf_template.h به فایل h
- فعالکردن فایل .h از طریق #if 0 به #if 1
- تنظیم کیفیت رنگ LV_COLOR_DEPTH
- تنظیم حافظهی موقت سیستم گرافیکی
- تنظیم سرعت رفرش تصویر و ورودیها
- فراخوانی مداوم فانکشن lv_tick_inc(x) (بهعنوانمثال در system tick)
- فراخوانی ()lv_init در Main برنامه
در کتابخانه LVGL که دانلود کردید، یک lv_conf_template.h وجود دارد. داخل هر ورژن رسمی یا غیررسمیای که دانلود کرده باشید، ورژن آن در این فایل مشخص شده است. شما بهتر است پس از ویرایش و انجام تغییرات روی این فایل آن را درون ریشهی اصلی پروژه قرار دهید و حتماً حواستان باشد که باید تنظیمات اولیه سیستم گرافیکی را نسبت به تمپلیتی که آن ورژن در اختیارتان گذاشته است، انجام دهید و در نهایت این فایل را به نام lv_config.h تغییر دهید.
✔ این نکته را هم در نظر بگیرید که lv_config.h را اصولاً باید در شاخه اصلی پروژه قرار دهید. ✔
به این صورت که template فایل lv_conf_template.h را پاک کنید و بهصورت lv_config.h داخل پروژهتان کپی کنید و سپس در قسمت #if 0 این 0 را 1 کنید (یعنی بشه #if 1 ) تا این کانفینگ فعال شود. بهطورکلی، شما باید یک سری تغییرات اولیه را حتماً در lv_config.h اعمال کنید. همچنین، یک سری تنظیمات Default هم وجود دارد که اگر شما آنها را تغییر ندهید، هیچ تأثیری بر روند کاری شما نخواهد داشت.
اولین و مهمترین گزینه در lv_config.h، دادن کیفیت رنگ LCD به سیستم گرافیکی است. همانطور که در قسمت قبل توضیح دادیم، ما رنگهای گرافیکی مختلفی داریم که در اینجا در محیط شبیهسازی، کیفیت رنگ ما RGB565 است. پس عمق تصویر را روی RGB ۱۶ بیت میگذاریم.نکته: همانطور که قبلاً هم گفتیم، رنگ RGB ممکن است برعکس (SWAP) هم شود؛ یعنی بشه BGR. سپس به بخش رم میرویم. در بخش رم، شما باید یک حافظه به سیستم گرافیکی بدهید تا سیستم گرافیکی، عملیات های موقت را داخل این حافظه انجام دهد. همچنین، حجم آن را نیز میتوانید در اینجا مشخص کنید. پس دومین مورد، تنظیم حافظه موقت برای سیستم گرافیکی خود است.
سپس میریم سراغ بحث رفرش کردن تصویر. در سیستم گرافیکی، سومین موردی باید در کانفیگ تنظیم کنید، بحث رفرش تصویر و رفرش ورودیها است. باتوجهبه قدرت cpu خود، شما باید این رفرشها را تنظیم کنید.
مورد بعدی، سیستم تیک هست. همه سیستمهای گرافیکی برای راهاندازی، به یک تیک احتیاج دارند. کار تیکها این است که در سیستم زمانسنجی کنند و سیستم را نظم دهند؛ یعنی هر سیستم گرافیکی به یک تیک احتیاج دارد که زمانبندیهای سیستم با آن انجام شود و در کارهای مختلف میتواند از آن استفاده کند. مثلاً در انیمیشنها، رفرش کردن تصویر و… .
تمامی این تنظیمات گفته شده برای اینکه سیستم گرافیکی شما راهاندازی شوند، ضروری هستند. اما بقیه تنظیمات را اگر دست نزنیم، تأثیری روی روند کار ما نمیگذارند.
این قسمت هم به پایان رسید. حتماً در ادامه آموزش سیستم گرافیکی LVGL با سیسوگ همراه باشید.
سلام خیلی ممنون از آموزشتون. من میخام عمق تصویر را روی 16 بگزارم . الان 32 هست و خوب کار میکنه ولی بنا به دلایلی میخام تغییرش بدم. اتفاقی که می افته تصویر 4 برار کوچک میشه و السیدی به 4 قسمت و 4 تصویر تقسیم میشه. به نظرتون کجا را باید تغیر بدم که درست بشه؟