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

blog
۱۴۰۰-۱۰-۲۹
5 دقیقه

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

شاید برای شما مفید باشد : آموزش امبدد لینوکس از مقدماتی تا پیشرفته

LVGL

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

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

برای اینکه گرافیک خودمان را با استفاده از کتابخانه ی 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/ کپی میکنیم و با دستور زیر آن را اجرا میکنیم:

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

 

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

 

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

اگر احیاناً زیاد با الکترونیک آشنا نیستید و دنبال 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

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

 

sisoog sinux f1 board buy

 

 

 
اطلاعات
37
0
لینک و اشتراک
profile

امبددتک

متخصص الکترونیک

طراحی و تولید محصولات الکترونیک | embeddedtech.ir | چاپ PCB

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند.
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند.
family

دیدگاه ها

profile
mersa گفت :
۱۴۰۳-۱۰-۰۴ ۰۷:۲۶

سلام
چطور میشه کانفیگور این پروژه رو برای السیدی های ابعاد پایین تر تغییر داد؟
مثلا 9341ILI – Pararllel / SPI – 320×240

profile
Mahdi.h   گفت :
۱۴۰۳-۱۰-۰۶ ۱۰:۴۴

سلام. این دوتا لینک اطلاعات مفیدی داره که میتونید ازشون کمک بگیرید:
https://ask.sisoog.com/t/lcd-sinux-f1/455
https://ask.sisoog.com/t/sinux-v3s/815

profile
علی گفت :
۱۴۰۲-۰۲-۱۷ ۲۱:۰۱

سلام
این قطعه چه lcd هایی رو ساپورت میکنه؟
LVDS یا TTL

profile
Mahdi.h   گفت :
۱۴۰۲-۰۲-۱۷ ۲۱:۰۶

سلام. lvds ساپورت نمیکنه در قسمت اول آموزش بخش “بخش سوم – تاچ و ال سی دی” دقیقتر میتونید بررسی کنید

profile
Manikandan Ranganathan گفت :
۱۴۰۲-۰۱-۱۶ ۰۰:۱۹

Hi brother!
I’m really happy to see your training. This training will have really helped me to forward completing my own project.

thanks a lot for your training.

profile
Mahdi.h   گفت :
۱۴۰۲-۰۱-۱۹ ۰۹:۵۴

Hi
Your Welcome 🙂

profile
Sisoog Admin گفت :
۱۴۰۲-۰۱-۱۶ ۱۰:۴۳

Hi there, glad to see that we helped you competing your project

profile
جواد گفت :
۱۴۰۱-۱۰-۱۹ ۱۰:۵۴

سلام
یک نکته ای که به درد بقیه هم ممکنه بخوره
وقتی میخواین کدها رو از اینجا کپی کنین دقت کنین که بعضی اعداد فارسی کپی میشن و موقع make به مشکل میخوره..
روی متن اگه چندبار کلیک کنین یک حالتی میشه که میتونین درست کپی کنین

profile
جواد گفت :
۱۴۰۱-۱۰-۰۱ ۱۷:۳۶

نگاه کردم مثل اینکه MIPI پشتیبانی نمی کنه درسته؟
طبق شماتیک شما فکر کنم از ال سی دی RGB666 استفاده کردین ..من یک ال سی دی RGB565 دارم و 40 پین هم هست، برای این کد رو چه جوری باید تغییر بدم ؟
ممنون

profile
Mahdi.h   گفت :
۱۴۰۱-۱۰-۰۲ ۲۰:۳۲

بله، پشتیبانی نمیشه.
نیاز به تغییری نیست ، میتونید استفاده کنید از 565

profile
جواد گفت :
۱۴۰۱-۱۰-۰۱ ۱۷:۱۲

ُسلام با تشکر از آموزش عالی و بی نظیرتون
قسمت تنظیمات نمایشگر که گفتین چه جوری میتونم یک ال سی دی MIPI متصل کنم؟
ممنونم

profile
Mahdi.h   گفت :
۱۴۰۱-۱۰-۰۲ ۲۰:۳۲

خواهش میکنم.
پشتیبانی نمیشه mipi

profile
علی گفت :
۱۴۰۱-۰۹-۰۷ ۱۱:۴۷

سلام ممنون بابت آموزش های عالی تون. من تست کرد البته روی لیچی پای نانو و خیلی خوب جواب داد.
اگر امکان داره راه اندازی تاچ اسکرین مقاومتی هم اموزشی قرار بدید. تکمیل میشه آموزش

profile
Mahdi.h   گفت :
۱۴۰۱-۰۹-۰۸ ۱۰:۱۴

سلام. خواهش میکنم. احتمالا در آینده این آموزش هم تهیه میشه ، اما شما میتونید با کمک این لینک و این دو خطی که در قسمت قبل بهش اشاره شد :
export TSLIB_TSDEVICE=/dev/input/event0
ts_print_raw
خودتون پیش برید

profile
Sarah گفت :
۱۴۰۱-۰۶-۱۶ ۱۱:۰۷

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

profile
Mahdi.h   گفت :
۱۴۰۱-۰۶-۱۶ ۱۴:۳۸

لطف دارید ، خواهش میکنم?

profile
Soran گفت :
۱۴۰۱-۰۵-۱۸ ۱۹:۴۰

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

profile
Mahdi.h   گفت :
۱۴۰۱-۰۵-۲۰ ۱۲:۳۲

سلام
خواهش میکنم
میتونید از این لینک کمک بگیرید
https://github.com/nminaylov/F1C100s_LVGL

profile
سورا گفت :
۱۴۰۱-۰۷-۰۴ ۰۳:۵۰

سلام خدمت شما.
اولا خیلی ممنون بابت آموزش خوبتون… روزهای زیادی توی صفحات انگلیسی برای چنین چیزی می‌گشتم که آب در کوزه بود و ما تشنه لبان می‌گشتیم…
دوما، بنده به شدت مبتدی هستم… توی این لینکی که گذاشتید گفته که باید با دستور
fatload mmc 0:1 80000000 firmware.bin
go 80000000
برنامه رو توی آی سی بریزیم… ولی خب… از کجا و چطور ذکر نشده و گفته نشده که آیا نیاز هست ایمیج و کرنل و سایر مخلفات ساخته بشه یا نه…
می‌خواستم بپرسم می‌شه یه راهنمایی بفرمایید که دقیقا چه بلایی باید سر فایل .bin بیاریم تا توی آی سی ریخته بشه؟
خیلی ممنون.

profile
Mahdi.h   گفت :
۱۴۰۱-۰۷-۰۴ ۱۰:۰۱

سلام.
آموزش جدیدی در سایت سیسوگ منتشر شده که نحوه استفاده از این کتابخانه را توضیح داده
https://sisoog.com/2022/09/11/f1c100s-baremetal/
پیشنهاد میکنم شبکه های اجتماعی سیسوگ را دنبال کنید که این مطالب رو از دست ندید?

profile
سورا گفت :
۱۴۰۱-۰۷-۰۵ ۱۵:۳۳

خیلی ممنون.
پس اونجا زیاد مزاحمتون می‌شم.
چشم.

profile
Milad گفت :
۱۴۰۰-۱۲-۰۷ ۱۱:۰۶

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

profile
Mahdi.h   گفت :
۱۴۰۰-۱۲-۰۷ ۱۱:۲۷

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

profile
Milad گفت :
۱۴۰۰-۱۲-۰۷ ۱۲:۰۳

ممنون از شما

profile
حسینی گفت :
۱۴۰۰-۱۲-۰۶ ۲۱:۳۷

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

profile
Mahdi.h   گفت :
۱۴۰۰-۱۲-۰۷ ۰۹:۵۰

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

profile
حسینی گفت :
۱۴۰۰-۱۱-۱۳ ۱۴:۰۵

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

profile
محمد گفت :
۱۴۰۰-۱۱-۲۱ ۰۸:۰۱

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

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

profile
Mahdi.h   گفت :
۱۴۰۰-۱۱-۲۲ ۲۰:۲۰

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

profile
Mahdi.h   گفت :
۱۴۰۰-۱۱-۱۳ ۲۱:۰۸

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

profile
صاحبی گفت :
۱۴۰۰-۱۱-۰۴ ۱۲:۵۰

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

profile
Mahdi.h   گفت :
۱۴۰۰-۱۱-۰۶ ۲۱:۰۰

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

profile
ali alibalaei گفت :
۱۴۰۰-۱۱-۰۱ ۲۱:۰۶

مثل همیشه عالی

profile
Mahdi.h   گفت :
۱۴۰۰-۱۱-۰۲ ۲۱:۲۹

ممنون از شما ???

profile
َAmir گفت :
۱۴۰۰-۱۱-۰۱ ۱۵:۱۴

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

profile
Mahdi.h   گفت :
۱۴۰۰-۱۱-۰۲ ۲۱:۳۰

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

profile
m.h.Yazdani گفت :
۱۴۰۰-۱۰-۳۰ ۲۳:۴۲

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

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله