مطمئنا اگر یک مهندس الکترونیک فعال در حوزه صنعت باشید حتما با چالشی به نام GUI برخورد کردهاید به طور مثال شما یک پروژه را از لحاظ سختافزاری به نحو احسنت انجام دادهاید و بسیار عالی کار میکند اما اگر برای سختافزار خود یک محیط گرافیکی عالی درست نکنید در واقع میتوان گفت که بخش بزرگی از پروژه شما نا تمام مانده است که اگر هم دقت کنید بیشترین مهندسین الکترونیک در این بخش دچار مشکل هستند.
در این مقاله میخواهیم به معرفی یک ابزار کاملا کاربردی برای ایجاد یک محیط گرافیکی برای دستگاههای الکترونیکی بپردازیم.
GUI چیست؟
GUI یا رابط کاربر گرافیکی، مجموعهای از نشانههای گرافیکی نمایش داده شده بر روی یک نرمافزار است که در آن کاربر به جای تایپ فرمانهای بلند و پیچیده از اعلان فرمان، با اشاره بر نمایشهای تصویری بر روی صحنه تصویر، پروندهها، برنامهها یا فرمانهای گوناگون را انتخاب میکند. به عبارتی سادهتر، یک محیط گرافیکی را برای راهنمایی و کاربری بهتر انسان بکار میگیرند.
QT چیست؟
کیوت (به انگلیسی: Qt) یک ابزار متنباز است که مجموعهای از کتابخانهها و سرآیندهای نوشتهشده به زبان ++C در آن موجود است. که به برنامهنویس امکان توسعه آسان نرمافزارهای کاربردی را میدهد. کیوت شامل چندین کلاس برای کار با واسط گرافیکی، چندرسانه، ابزارهای پایگاهداده، شبکه و … است. نرمافزارهای نوشته شده با ابزار کیوت قادراند تا با استفاده از یک کامپایلر زبان سیپلاسپلاس برای طیف وسیعی از سیستمعاملها از جمله گنو/لینوکس (نسخههای رومیزی و وسیلههای قابل حمل)، ویندوز، ویندوز CE، مکاواس و … مورد استفاده قرار گیرند. بدین ترتیب حمل نرمافزار نوشته شده بدون تغییر در متن کد نوشته شده امکانپذیر است. از کیوت در زبانهای برنامهنویسی متعددی مانند ++C و جاوا وپایتون میتوان استفادهکرد.
خب تا اینجا که مطالعه کردید در واقع یک توضیح کلی از QT بود اما جدیدا نسخهای از این نرمافزار منتشر شده است که دقیقا هم با این عنوان زیر میباشد.
QT برای میکروکنترلرها
در واقع در ورژن جدید این نرمافزار همانطوری که در تیتر مشاهده میکنید نسخه ای ارائه شده است، که برای ایجاد یک محیط گرافیکی برای میکروکنترلرها میباشد و نکته جالب اینجا است که گفته شده است محیط گرافیکی موردنظر بدون سیستم عامل روی دستگاه موردنظر عمل میکند. در واقع به جرات میتوان گفت از این به بعد هر شخصی که مقداری با میکروکنترلرها کار کرده باشد به راحتی میتواند یک محیط کاملا گرافیکی را برای سختافزار موردنظر خود درست کند.( البته نه اینکه قبلا نشه اینکارو کرد در واقع این ابزار کار رو برای ما راحتتر کرده دوستانی که با Nodered کار کرده باشند بهتر متوجه موضوع خواهند شد اما کلیت ماجرا ساختن یک محیط گرافیکی زیباتر با دردسر کمتره).
در حالی که کاربران برنامه های خود را میتوانند برای میکروکنترلرها ایجاد کنند، توسعه دهندگان می توانند از زبان UI قدرتمند QML و مجموعه کنترلهای Qt Quick آماده نیز استفاده کنند.
از جمله ابزارهای جدید طراحی و توسعه Qt شامل Qt Design و Qt Creator میباشد که از توسعه ابزار جدید گرافیکی پشتیبانی می کند. تیم Qt همچنین اطمینان می دهد که کاربران فعلی Qt می توانند به توسعه برنامه های کاربردی خود برای میکروکنترلرها ادامه دهند. به عبارتی می توانند UI طراحی شده خود را با یک پلتفرم سخت افزاری پشتیبانی شده نیز امتحان کنید.
شما میتوانید لایبرری های دمو این برنامه را از از این آدرس دانلود نمایید.
در حال حاضر، Qt به طور خاص برای میکروکنترلرهای سری Arm Cortex-M تولید شده است، و با بعضی از آنها تست شده است که در ادامه آنها را ذکر میکنیم.
- STM32F769i-DISCO
- STM32F7508-DK
- I.MX RT1050-EVKB
- Renesas RH850
در ادامه میتوانید نسخه آزمایشی راهاندازی ترموستات را با مشخصات زیر می توانید بر روی برد NXP I.MX RT1050-EVKB که اجرا شده است مشاهده کنید.
- Screen Resolution of 480×272, Color -16 bit
- Frame Rate 60 FPS
- SRAM Used 1625 KB
- FrameBuffer 522KB
نسخه کرک شده را چطور میشه تهیه کرد
نیازی به کرک نیست تا اونجا که اطلاع دارم qt رایگان و متن بازه و ممکنه برای برخی قابلیت ها یا روی محصول نیاز به خرید لایسنس داشته باشید
سلام خسته نباشید
تشکر از نویسنده مقاله و سایت سیسوگ
بین نرم افزار مختلف برای ساخت محیط گرافیکی برای میکروکنترلر مثل qt touchgfx emwin .. به نظر شما کامل ترین و بهترین محیط کدام است؟
سلام دوست عزیز
خیلی بستگی داره که بخواید چه کاری انجام بدید و چقدر قدرت پردازشی داشته باشید
هر کدوم از کتابخانه ها قابلیت ها ومحدودیت های خاص خودشون رو دارن – ولی من به شخصه کتابخانه lvgl را پیشنهاد میکنم چرا که رایگان است متن باز است و به سرعت در حال پیشرفت است و گرافیک خیلی خوبی داره.
سلام.
این qt برای میکروهای کم حجم مثل stm32f103c8t6 قابل استفاده هست ؟
یک کتابخانه دیگه هست به اسم st emwin که از شرح امکاناتش فهمیدم به در این میکرو نمیخوره .
راستش یک مدتی هست یک ایده برای نوشتن یک کتابخانه منوی ساده برای این قبیل میکروها توی ذهنمه ، منتها با خودم گفتم از شما بپرسم
ببینم همچین چیزی هست؟
که الکی وقتم رو نگذارم.
با سپاس
از qt تنها توی میکروکنترلرهایی با ظرفیت حافظه زیاد میشه استفاده کرد وضعیت emwin باز مقداری بهتره ولی اصلا توصیه اش نمی کنم چون پولیه و نسخه رایگانش محدودیت زیاد داره 🙂
من همیشه از کارهای گرافیکی بدم می اومده :/
کتابخونه متن بازی که میتونم بهتون معرفی کنم که لایت هم هست کتابخانه littlevgl یه نگاهی بهش بندازید
https://littlevgl.com/
اختیار داری جناب زئوس هیچی مثل کارای گرافیکی کیف نمیده .
st یک نسخه رایگان عرضه کرده به نام st emwin . باهاش کار نکردم ولی گمان نمیکنم محدودیتی داشته باشه .
این کتابخانه پیشنهادی شما رو نگاه کردم .
حداقل حافظه رم و فلش مورد نیاز کم بود flash 80KB ram 10…20KB که نوشته برای very essential components. ولی هنوز ازحد میکروی stm32f103c8 فراتره.
البته برای فلش 128 ظاهرا کار میده .
البته چیزی که توی ذهنمه خیلی ساده تر از این حرفهاست .چیز ساده تری از littlevgl تقریبا شبیه همون منوهای ساده لیستی که با 4 یا 5 دگمه کار میکنه .و شکل گرافیکی زیبا داشته باشه؟
چیزی وجود داره توی این مایه ها؟
سپاس.
خوب نظر ها متفاوته من از هرچیزی که گرافیک داشته باشه فراری ام 🙂 (یه دلیل منطقیش اینه که گرافیک زمان زیادی رو باید صرف طراحی کنید و کد زیادی رو برای هندل کردن ایونت های گرافیکی بنویسید).
خوب این کتابخانه st که رایگان هم هست دچار محدودیت هست مثلا تا اونجا که یادمه مولتی ترد رو پشتیبانی نمیکنه – یا برخی المان های گرافیکی پیش رفته رو نداشت مثلا کتابخونه دکد png یا اینطور چیزایی بود – این بررسی من مربوط به ۳ سال پیشه شاید الان چیزهایی تغییر کرده باشه که ازش اطلاعی ندارم
خوب تو این مایه ها امم – من که چیزی یادم نمیاد به کتابخانه های uGUI هم نگاهی بندازید دیگه چیزی سراغ ندارم.
خواهش میکنم
سپاس جناب زئوس .
خواهش میکنم دوست عزیز 🙂
سلام
این ابزار رو چطور میشه دانلود کرد ؟ منظورم Qt for MCUs هست
سلام دوست عزیز
جزییات بیشترش رو از لینک زیر مشاهده کنید
https://www.qt.io/qt-for-mcus
سلام
وقت بخیر
ممنون از مطالب مفیدتون
چه طور می تونیم این محیط qt برای میکرو دانلود کنیم
https://www.qt.io/qt-for-mcus
جزییات بیشترش رو میتونید در این لینک ببینید
دمو هم برای دانلود گذاشته