توصیه شده, Cute, Elinux

کار با تراشه F1C100S – قسمت چهارم – طراحی رابط گرافیکی با lvgl

این روزها اکثر دستگاه های الکترونیکی کاربرپسند یک رابط گرافیکی دارند (البته همیشه هم لازم نیست😅)و بیشتر الکترونیکی ها دنبال راه اندازی یک گرافیک خوب روی محصولاتشان هستند ، اکثرا هم از میکروهای شرکت stm استفاده میکنند اما مدتی است که قیمت این میکروکنترلر ها بسیار افزایش داشته  و غیر از آن بعضی جاها اصلا جوابگو نیستند یا اصلا دلیلی ندارد که از یک میکروکنترلر که شامل بخش های جانبی زیادی (منظور تایمر یا adc و dac و … ) است برای کارها استفاده کنیم که اصلا نیازی به آنها نداریم. پس بهتراست که برای هر کاری سراغ چیزی که باید برویم! در قسمت قبل نحوه ساخت ایمیج لینوکس و اجرای آن روی تراشه F1C100S را آموزش دادیم و در این قسمت هم میخواهیم سراغ راه اندازی یک رابط گرافیکی با کتابخانه lvgl و اجرای آن روی برد sinux f1 برویم پس با سیسوگ همراه باشید.

 

LVGL

LVGL یک رابط گرافیکی اُپن سورس است که از تاچ اسکرین هم پشتیبانی میکند و دارای کامپوننت های مختلفی مثل windows, buttons, labels, lists, charts و … است که قابل ویرایش نیز هستند. افکت های مختلفی مثل شفافیت ، سایه، انیمیشن های مختلف و … هم از امکانات دیگر این کتابخانه هستند.

برای اینکه گرافیک خودمان را با استفاده از کتابخانه ی LVGL طراحی کنیم مرحله اول دانلود فایل‌ها هست، یک پوشه برای پروژه خودمان می‌سازیم و با گیت پروژه‌های زیر رو دریافت می‌کنیم:

حال لازم است که فایل‌های زیر را در پوشه اصلی خود کپی کرده و نام‌های آن را تغییر دهیم:

و تغییرات زیر را درفایل  lv_drv_conf.h قرار دهیم  :

در خط 10:

در خط 275:

 

و تغییرات زیر را درفایل  lv_conf.h اعمال می کنیم:

در خط 10:

در خط 275:

 

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

نوبت کامپایل برنامه هست! لازم است که در ابتدا فایلی با نام Makefile ساخته و کدهای زیر را در آن بریزیم، باید در خط 4 مسیر کامپایلر خود را مشخص کنیم که من در اینجا مسیر کامپایلر buildroot را دادم و شما باید مسیر را بر اساس سیستم خود تغییر دهید.

 

حال باید در ترمینال دستور زیر رو وارد کنیم تا برنامه کامپایل شود

یک فایل خروجی با نام myGUI تولید می‌شود که برنامه گرافیکی ماست.

وقتی داریم با سیستم‌های امبدد کار می‌کنیم معمولاً پردازنده هدف، سخت‌افزار ضعیفی دارد و کامپایل کردن روی آن زمان‌بر و در برخی موارد غیرممکن است پس‌روی سیستم خودمان کامپایل کرده و خروجی را روی سخت‌افزار خود انتقال داده و اجرا می‌کنیم مثل کاری که در بالا انجام دادیم.

 

برنامه UMTPRD

حالا نکته‌ای که می‌خواهیم در باره ی آن صحبت کنیم همین‌جاست!

آن هم برای انتقال دادن فایل خروجی روی سخت‌افزار، اکثر چیپ‌های لینوکسی که با آنها کار می‌کنیم دارای شبکه هستند یا به‌صورت lan و یا به‌صورت  Wifi و برای انتقال فایل از بستر شبکه استفاده می‌کنیم و با دستور scp یا دستورات مشابه فایل‌ها را انتقال می‌دهیم، اما F1C100S این‌طور نیست و ما شبکه را در آن نداریم (البته که توی برد sinux f1 ماژول Wifi رو اضافه کردیم اما اکثر بردهایی که f1c100s دارند یا بردی که ممکنه در آینده بزنید احتمال زیاد دارای ماژول Wifi نیست پس ما این رو در نظر نمی‌گیریم ولی راه دیگری که با کمک برنامه UMTPRD  بردمان را با یک کابل usb به سیستم وصل کرده که در آن برد ما به‌عنوان یک دستگاه ذخیره‌سازی شناخته می‌شود و به فایل‌های ما در سیستم دسترسی پیدا می‌کند.

کانفیگ buildroot که در قسمت قبل نحوه استفاده از آن را آموزش دادیم این پکیج را هم در ایمیج ما نصب میکند و میتوانید از آن استفاده کنید فقط لازم است که سوییچ usb و کلید otg برد sinux f1 را روی حالت device قرار دهیم و با یک کابل usb آن را به سیستم متصل کنیم.

حال فایل myGUIرا روی برد در مسیر /root/ کپی میکنیم و با دستور زیر آن را اجرا میکنیم:

(دستورات بالا همونطور که میدونید باید در ترمینال برد اجرا بشه🙂)

 

در زیر میتوانید خروجی برنامه را مشاهده کنید:

 

اگر احیاناً زیاد با الکترونیک آشنا نیستید و دنبال LCD که من از آن استفاده کردم می‌گردید می‌توانید از طریق این لینک در فروشگاه‌های مرتبط این نمایشگر را پیدا کنید

مشخصات lcd:

-4.3 Inch TFT LCD Module
– With 24-bit RGB interface (standard 40PIN interface), compatible with most current true color Interface 4.3
– Resolution 480×272

 

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

 

دانلود رایگان شماتیک و PCB برد توسعه SINUX F1

فایل های طراحی رو میتونید به صورت رایگان از گیت هاب من دریافت کنید!

خرید برد توسعه SINUX F1

شما میتونید برد توسعه SINUX F1 رو از طریق پالت تهیه کنید.

 

 

 

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

بازگشت به لیست

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

16 دیدگاه در “کار با تراشه F1C100S – قسمت چهارم – طراحی رابط گرافیکی با lvgl

  1. Milad گفت:

    سلام با تشکر از مطلب خوبتون
    در مورد F1c100s ، شما مورد مشابه این آی سی که اترنت هم داشته باشه رو میشناسید؟

    1. Mahdi.h   Mahdi.h   گفت:

      سلام خواهش میکنم.
      از چیپ V3S میتونید استفاده کنید. برد های licheepi zero از این چیپ استفاده میکنند.

      1. Milad گفت:

        ممنون از شما

  2. حسینی گفت:

    میشه برای f1c100s برد رو جوری طراحی کرد که از lcd های ۵۰ pin پشتیبانی کنه؟

    1. Mahdi.h   Mahdi.h   گفت:

      بله. از لحاظ دیتا نمایشگرهای 50 پین با 40 پین تفاوتی ندارند که و با یه برد مبدل ساده میشه 40 پین رو به 50 پین تبدیل کرد.
      توی سایت کویرالکترونیک هم نمونه مبدل هاش موجود هست.

  3. حسینی گفت:

    سلام.ممنون بابت اموزش خوبتون
    حداکثر اندازه lcd و تاچ اسکرینی که میشه به این برد وصل کرد چقدره؟
    7 اینچ هم میشه وصل کرد (با رزولوشن های مرسوم)؟

    1. Mahdi.h   Mahdi.h   گفت:

      سلام.
      در قسمت اول در “بخش سوم – تاچ و ال سی دی” رزولوشن های مختلفی که هر اینترفیس ساپورت میکنه رو قرار دادیم.
      بله ، رزولوشن معمول ال سی دی های 7 اینچی 800*480 هست که توی قسمت قبل نحوه کانفیگش رو گفتیم

    2. محمد گفت:

      سلام.
      ممنون از مطالبی که به اشتراک میذارید. خدا برکت بدهد.

      سوال ۱: آیا میشه با QT برای این بورد اپلیکیشن نوشت؟
      سوال ۲: تراشه f1c200s دو برابر این تراشه رم داره، اگه با این تراشه جایگزین بشود لازمه که چیز دیگری تغییر کند؟

      1. Mahdi.h   Mahdi.h   گفت:

        سلام خواهش میکنم 🙏
        بله میشه با qt هم نوشت ولی چون سخت افزار نسبتا ضعیفی داره بهتره که با همین lvgl که سبک تر هست باهاش کار بکنید.
        نیاز به هیچ تغییری نیست هر بردی که f1c100 بوده رو میشه بجاش f1c200 مونتاژ کرد.

  4. صاحبی گفت:

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

    1. Mahdi.h   Mahdi.h   گفت:

      سلام انشاا…
      خواهش میکنم🙂🙏🙏

    1. Mahdi.h   Mahdi.h   گفت:

      ممنون از شما 🙏🙏🙏

  5. َAmir گفت:

    سلام
    اگ ممکنه یه آموزش هم برای پورت کردن کتابخونه LVGL روی میکروهای STM32 بزارین
    ممنون

    1. Mahdi.h   Mahdi.h   گفت:

      سلام. من خودم کار نکردم اما احتمالش هست در آینده ای نزدیک این کار رو انجام بدیم.

  6. m.h.Yazdani گفت:

    لطفا در مورد روشهای حفاظت از برنامه در برابر کپی برداری هم بنویسید.
    واقعا نمیدونم دیوایس لینوکسی تا چه حد تو این زمینه قابل اعتماد هستند