前言
近期,恩智浦中国官方账号在国内知名视频平台"B站"推出了嵌入式GUI开发特训营系列视频教程:
https://www.bilibili.com/video/BV1gC4y1A7XN/?spm_id_from=333.999.0.0&vd_source=a3d6b60f0a54fab9b46c82c027fe76e1加入恩智浦“嵌入式GUI特训营”,让你的GUI技能分分钟与高手并肩!说到嵌入式GUI,那可真是有太多的东西可以聊。在此开启一个系列话题,讲述NXP的嵌入式图形世界。今天为大家带来第一讲:NXP图形策略及GUI Guider/LVGL介绍。
嵌入式图形趋势
随着电子信息工业的飞速发展,现在日常生活中出现越来越多拥有用户界面的电子产品。曾经常见的旋钮式洗衣机、微波炉,按键式电话、汽车中控台都渐渐被交互式界面所取代,各家产品也在界面交互这一块发力,做出更能让客户眼前一亮的产品。从而,嵌入式图形这一领域展现出如下的技术趋势:
越来越多的产品配备用户交互界面;
越来越强的图形界面功能与外观;
越来越快的用户界面开发速度。
NXP在用户界面这一市场做了大量的工作,为市场提供了完备的图形策略。
NXP的图形策略
当前市场主流的用户界面从低到高可分为:分辨率较低、配置简单图形元素、有限动画、颜色单一的入门级用户界面;高分辨率、多控件与屏幕切换、复杂动画、颜色饱满并使用专用图形加速硬件的高级用户界面。在NXP针对图形界面的微控制器MCU中,同样根据前面的分类配备了一系列产品。
图1. NXP图形界面MCU分类
从Cortex-M0+低功耗的产品到Cortex-M7高达1GHz并且配有专用硬件图形加速器的高性能(跨界)MCU,用户都可以在NXP的微控制器家族中找到适合自己图形界面的产品来进行开发。
除了在硬件产品上的全覆盖策略,NXP在软件生态方面也是“火力全开“。NXP当前的图形生态中,涵盖了大部分市面上常见的图形库,从轻量级的图形库LVGL到较为专业的Qt等,都已经在NXP微控制器中进行了部署,并且许多的图形界面应用已经加入了我们的SDK中。
图2. NXP图形生态系统
除了图中的几个图形库,还有例如MicroEJ等公司也在嵌入式图形界面领域与NXP有所合作,对NXP的部分微控制器有所支持。
近些年,国内图形库也正在快速发展。NXP同样看到了这一点,拓展了自己的图形生态系统。比如致远电子的开源图形库AWTK,支持了包括LPC以及i.MXRT的部分产品;基于国产RTOS的RT-THREAD柿饼UI,同样支持了包括LPC以及i.MXRT的部分产品等。
GUI GUIDER/LVGL介绍
前文中介绍了NXP的图形策略,现在来重点讲一讲LVGL这个特殊的图形库。为什么说其特殊?因为NXP甚至为LVGL推出了一个上位机界面设计软件GUI Guider。
LVGL全称Lightand Versatile Graphics Library。从名字可以看出这是一个致力于轻量级的图形库,不过随着时间的推移,这个轻量级的图形库功能却越来越强大。其主要特点有:
1. 免费且开源
2. 硬件独立,不依赖于任何微控制器
3. 硬件要求低,当前大部分能够驱动显示器的MCU都可以运行LVGL
4. 丰富的开发工具,包括了字体以及图像转换器
5. 强大的界面设计功能(后续介绍)
GUI GUIDER是一个使用方便的图形用户界面开发工具,确保用户可以基于LVGL图形库快速开发高质量的显示界面。GUI Guider工具是为了客户在使用NXP产品开发基于LVGL的用户界面工程时,能有一个更方便的开发体验从而由NXP的软件团队开发的。用户可以免费使用此工具进行NXP微控制器的界面开发。GUI Guider有如下几个特点:
通过拖拽方式进行界面设计,所见即所得的设计理念;
可免费与NXP设备一起使用;
包含LVGL 库和自定义小部件;
支持导入图像和自定义字体;
能够方便的添加事件、动作和动画;
可以通过模拟器进行界面设计的仿真;
支持视频解码、LottieFiles 动画;
可以使用NXP设备中的PXP以及GPU硬件加速;
工程支持 C 和 MicroPython两种语言;
MCUXpresso IDE、IAR 和Keil的直接项目输出;
GUI Guider还有一个很大的特色,则是用户们可以通过GUI Guider Community提出对工具使用时碰到的问题以及对工具一些改进的建议,我们的工程师会在community上面及时予以沟通回应。GUI Guider从2021年首次发布的v1.0.0版本顺利推进到如今的v1.6.1版本,也得益于广大用户的积极提问和建议。
图3. GUI Guider开启界面
GUIGuider生成的工程结构如下所示,custom文件夹为用户自定义代码存放区;generated文件夹为界面以及事件设计生成文件存放区;import文件夹为用户导入资源存放区;lib文件夹则存放工程需要用到的工具库;lvgl文件夹则是LVGL图形库源码;lvgl-simulator为模拟器存放区;ports文件夹是为工程在linux和qnx下运行的工具文件;sdk则是包含了生成的程序源码以及IDE的工程文件;temp则是一些样例文件。而“.guiguider“文件则是GUI Guider的工程文件,若要使用工具导入工程,就是导入此文件。
图4. GUI Guider生成的工程
小结
此篇文章为GUI GUIDER特训营系列第一篇,介绍了NXP的图形策略以及GUI GUIDER工具的由来与发展。后续我会带大家直接上手GUI GUIDER工具,来设计自己的GUI 界面工程。
END
更多恩智浦AI-IoT市场和产品信息,邀您同时关注“NXP客栈”微信公众号
NXP客栈
恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。
长按二维码,关注我们
恩智浦MCU加油站
这是由恩智浦官方运营的公众号,着重为您推荐恩智浦MCU的产品信息、开发技巧、教程文档、培训课程等内容。
长按二维码,关注我们
原文标题:“嵌入式GUI开发特训营”开营啦!是学霸就有奖拿,快来挑战一下!
文章出处:【微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !