“嵌入式GUI开发特训营”开营啦!是学霸就有奖拿,快来挑战一下!
前言
近期,恩智浦中国官方账号在国内知名视频平台"B站"推出了嵌入式GUI开发特训营系列视频教程:
加入恩智浦“嵌入式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介绍
LVGL全称Light and Versatile Graphics Library。从名字可以看出这是一个致力于轻量级的图形库,不过随着时间的推移,这个轻量级的图形库功能却越来越强大。其主要特点有:
1. 免费且开源
2. 硬件独立,不依赖于任何微控制器
3. 硬件要求低,当前大部分能够驱动显示器的MCU都可以运行LVGL
4. 丰富的开发工具,包括了字体以及图像转换器
5. 强大的界面设计功能(后续介绍)
GUI Guider介绍
GUI GUIDER是一个使用方便的图形用户界面开发工具,确保用户可以基于LVGL图形库快速开发高质量的显示界面。GUI Guider工具是为了客户在使用NXP产品开发基于LVGL的用户界面工程时,能有一个更方便的开发体验从而由NXP的软件团队开发的。用户可以免费使用此工具进行NXP微控制器的界面开发。GUI Guider有如下几个特点:
通过拖拽方式进行界面设计,所见即所得的设计理念;
- 可免费与NXP设备一起使用;
- 包含LVGL 库和自定义小部件;
- 支持导入图像和自定义字体;
- 能够方便的添加事件、动作和动画;
- 可以通过模拟器进行界面设计的仿真;
- 支持视频解码、LottieFiles 动画;
- 可以使用NXP设备中的PXP以及GPU硬件加速;
- 工程支持 C 和 MicroPython两种语言;
- MCUXpresso IDE、IAR 和Keil的直接项目输出;
- RT-Thread 和 Zephyr 的项目导出。
支持的设备系列包括:
GUI Guider还有一个很大的特色,则是用户们可以通过GUI Guider Community提出对工具使用时碰到的问题以及对工具一些改进的建议,我们的工程师会在community上面及时予以沟通回应。GUI Guider从2021年首次发布的v1.0.0版本顺利推进到如今的v1.6.1版本,也得益于广大用户的积极提问和建议。
图3. GUI Guider开启界面 GUI Guider生成的工程结构如下所示,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 界面工程。
|