查看: 7247|回复: 19

[原创] LPC546xx GUI Guider 上的智能家居演示

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3300

    主题

    6547

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32032
    最后登录
    2024-4-26
    发表于 2022-8-19 09:40:39 | 显示全部楼层 |阅读模式
    LPC546xx GUI Guider 上的智能家居演示


    首先给大家介绍
    手把手教你如何使用GUI-Guider,接下来今天为大家分享的是如何用GUI Guider快速创建一个属于你的智能家居控制面板,当然不仅仅是智能家居,你还可以为更多应用进行配置,大家一起来看看吧:

    1 简介
    智能家居近年来发展迅速且显着。提供照明控制、电话遥控、防盗报警等服务环境监测,智能家居互联各种家用电器。智能家居还集成了网络通讯、设备自动化和信息设备。因此,智能家居可以分配资源,在减少能源消耗和环境方面发挥重要作用保护。
    具有图形界面、低功耗、高性能在智能家居领域发挥着举足轻重的作用。 NXP 提供完整的 GUI称为 GUI Guider 的解决方案,它利用 LVGL 图形库。
    本应用笔记以智能家居为例,介绍基于 GUI Guider 的开发流程,包括:
    • GUI 设计和仿真
    • 代码生成和调试
    • 下载到评估板上并在评估板上运行
    1.1 LVGL
    LVGL 是一个开源图形库。它提供了您创建所需的一切具有易于使用的图形元素、漂亮的视觉效果和低内存占用。
    主要特征:
    • 开源,在 MIT 许可下免费使用
    • 用 C 语言编写(与 C++ 兼容)并托管在 GitHub 上
    • 30 多个功能强大、完全可自定义的小部件,例如按钮、图像按钮、复选框,开关,滑块,标签,弧,条,线,画布,图像,滚轮,滑块,仪表,表格,文本区、动画、日历、图表、列表、菜单、消息框、tabview等
    • 显示任何分辨率、GPU 支持、多显示器支持
    • 支持多种类型的输入设备:
    – 指针式输入设备,如触摸板或鼠标
    – 小键盘,如普通键盘或简单数字小键盘
    - 具有左/右转和推动选项的编码器
    – 分配给屏幕上特定点的外部硬件按钮
    • 绘图功能:
    – Anti-aliasing
    – Shadow
    – Line, arc, polygon
    – Mask
    • 文字功能:
    - 支持UTF-8
    – 字距调整
    - 自动换行和自动文本滚动
    - 支持阿拉伯语和Persian
    - 支持字体压缩
    - 在线和离线字体转换器
    - 自定义字体引擎接口
    – FreeType 集成示例
    - 支持多语言
    • 图像特征:
    - 各种颜色格式:RGB、ARGB、色度键控、索引、仅 alpha
    - 图像的实时重新着色
    - 实时缩放和旋转
    – 图像可以存储在闪存或文件中(例如,SD 卡)
    - 在线和离线图像转换器
    - 用于缓存的图像解码器接口
    – PNG 集成示例
    • 风格:
    - 级联样式(如 CSS)
    - 在多个小部件中重用样式
    - 用于简单更改的本地样式
    - 提供默认外观的主题
    – 状态变化的过渡(动画)
    支持Micropython
    • 丰富的演示示例和文档
    更多详细信息,请参阅 LVGL。
    1.2 图形向导
    GUI Guider 是 NXP 的针对用户友好型的图形用户界面开发工具,可使用开源 LVGL 图形库快速开发高质量显示器。 GUI Guider 的拖放编辑器可以轻松利用 LVGL 的众多功能。这些功能包括小部件、动画和样式,以使用最少或根本不需要编码来创建 GUI。

    只需单击一个按钮,您就可以在模拟环境中运行您的应用程序或将其导出到目标项目。从 GUI Guider 生成的代码可以很容易地添加到MCUXpresso IDE 或 IAR Embedded Workbench 项目,加速开发进程并允许您向应用程序添加嵌入式用户界面无缝。
    GUI Guider 可免费使用 NXP 的通用和跨界 MCU,包括多个支持平台的内置项目模板。更多详细信息,请参阅 GUI Guider。

    2 GUI开发流程
    一般来说,基于 GUI Guider 的 GUI 开发流程如图 1 所示。

    11.png

    如图1所示,完成设计后,建议执行一个模拟来验证模拟结果是否符合预期。如果模拟成功,如预期的那样,可以生成代码。否则,
    继续调整设计。
    一种建议是将设计分为与 GUI 相关的部分和与 GUI 无关的部分。 GUI相关部分包括各种小部件,例如按钮、图像、滑块、动画等,
    以及人机交互,比如按钮点击事件。独立于 GUI部分是指与特定硬件系统相关的部分,例如硬件定时器,板载传感器等。这确保了设计可以得到最大程度的验证可能的程度。
    3 智能家居演示介绍
    本应用笔记中描述的智能家居演示是一个 GUI 应用程序,包含 8 个屏幕。这些屏幕包括五个主屏幕和三个附属屏幕。八屏之间的关系如表1所示。这些屏幕的外观如图 2、图 3 和图 4 所示。

    12.png


    13.png

    14.png

    15.png

    16.png

    注意:此处显示的日期、时间和天气不起作用,因为它们是取决于设备的硬件。日期和时间可以通过 RTC 在一个嵌入式系统。 GUI 演示中的其他屏幕也是如此。
    4 开发环境
    本章介绍了软件和硬件开发环境。智能家居演示。
    4.1 硬件环境
    智能家居演示的硬件开发环境由两部分组成:PC安装 GUI Guider 工具和配备 LPC54628 的评估板 -LPCXpresso54628 (OM13098)。
    LPCXpresso54628 板是一个二进制向后兼容LPCXpresso54608 和 LPCXpresso54618 板。因此,这个演示很容易移植到基于 LPC54608 或基于 LPC54618 的硬件平台,只有少数修改。
    17.png

    4.2 软件环境
    智能家居演示需要 1.3.1 版本的 GUI Guider 来设置软件环境。 GUI Guider 1.3.1 版支持 LVGL 7.10.1 版和8.0.2。本应用笔记中描述的演示基于版本 8.0.2 的 LVGL。
    5 智能家居演示实现
    本章介绍智能家居演示实现过程中的重点。
    5.1 创建一个新的 GUI Guider 项目
    要创建 GUI Guider 项目,请执行以下步骤:
    1. 要启动 GUI Guider,请双击 GUI Guider<版本> 图标。

    18.png

    2. 要开始项目创建过程,请单击创建新项目按钮。
    19.png

    3. 选择 LVGL 版本为 v8,然后单击下一步按钮。
    20.png

    4. 选择 LPC54628 作为目标板模板,然后单击下一步按钮。
    21.png

    5. 选择一个空的应用程序模板 EmptyUI。
    22.png

    6. 进行项目设置,例如项目名称、项目位置、面板类型和颜色
    深度。
    23.png

    7. 创建好的工程如图12所示。

    24.png


    5.2 添加 GUI 小部件并设置小部件属性
    GUI Guider 支持将按钮、图像、图像按钮等小部件添加到通过拖放操作工作区。为了说明如何将小部件添加到工作区,
    考虑添加一个图像按钮作为示例。要将小部件添加到工作区,请按照以下步骤操作:
    1. 在Widgets选项卡的搜索框中输入imgbtn,然后将图片按钮拖到
    工作区,如图 13 所示。
    25.png

    2.一旦图像按钮被放置在工作区中,设置图像的属性
    按钮,如图 14 所示。



    26.png

    注意:对于需要图片路径的小部件,在为小部件指定图片之前,将需要的图片文件添加到导入文件夹中,如图15和图16所示

    27.png

    29.png

    5.3 人机交互
    不同的屏幕在多屏应用中表现出不同的功能。因此它是需要提供人机交互来执行屏幕切换或其他功能。人机交互可以通过向小部件添加事件来实现的图形用户界面。
    考虑一个单击按钮从一个屏幕切换到另一个屏幕的示例介绍如何向小部件添加事件。智能家居演示的主屏幕有一个名为 Temp 的按钮。切换到TEMPERATURE 屏幕,必须点击屏幕上的 Temp 按钮,如图图 17。

    30.png

    要实现这个功能,需要给Temp按钮添加事件,如图 18。
    31.png

    5.4 模拟
    设计完成后,可以启动模拟器检查是否模拟结果是否符合预期的功能。模拟器的推出如图 19 所示。
    32.png

    模拟器中智能家居demo的运行结果如图20所示。
    33.png

    5.5 导出代码项目
    仿真成功后,使用GUI的代码生成功能用于智能家居演示的基于 Keil、IAR 和 MCUXpresso IDE 的代码导出指南。
    如图 21 所示,单击 Run > Target Keil 以导出代码。当然,这也是可以导出基于 IAR 或基于 MCUXpresso 的项目。

    34.png

    5.6 外部 SPI Flash 支持
    智能家居demo代码导出后,编译。图 22 显示编译编译输出窗口中的错误。
    35.png

    1.3.1 版本的 GUI Guider 导出代码时,代码部分和 RO 部分应用程序的数据,即图片数据,默认存储在片上flash中。由于LPC54628 只有 512 kB,因此所有图像数据都无法存储在片上闪存中片上闪存,而所有图片数据约为 800 kB。结果,几个没有空间编译代码时会产生编译错误。
    LPCXpresso54628 评估板具有板载 SPI 闪存,因此我们可以将图片数据映射到 SPI 闪存。要支持 SPI 闪存,请执行以下步骤:
    1. 为连接到 SPI flash 的管脚设置管脚复用功能。这相应的代码位于 pin_mux.c 中。
    2. 将包括fsl_spifi.c和fsl_spifi.h在内的SPIFI驱动添加到代码工程中
    36.png

    3. 将 SPI 闪存驱动程序添加到代码中。
    37.png

    4、lvgl_guider.c中的main函数调用SPI flash初始化函数,称为 spifi_flash_init,如图 25 所示。
    38.png

    5.修改分散文件。为 SPI flash 提供地址空间并映射图片文件到 SPI flash 对应的地址空间。分散文件为LPC54628J512_flash.scf,存储路径为deploy
    \Keil\sdk\LPC54628\arm.
    39.png

    图 28 显示了映射到 SPI 闪存地址的扩展名为 .o 的文件空间。

    40.png

    这些文件是从位于 deploy\Keil 的图片的 C 文件编译而来的目标文件\sdk\generated\images,如图 29 所示。

    41.png

    5.7 设置 Flash 编程算法
    由于SPI flash是用来存储图片的,所以SPI flash的编程算法必须是添加到 Keil IDE。因此,在下载过程开始后,可以擦除 SPI flash并且图片数据可以下载到SPI flash。图 30 显示的方法将闪存编程算法添加到 Keil。

    42.png

    5.8 存储优化
    为了提高内存使用效率,需要采取措施优化内存的使用。常用的优化措施描述如下:
    • 为 Keil IDE 设置 IDE 优化级别,如图 31 所示。
    43.png

    • 使用发布版本编译代码。图 32 显示编译后的选择Keil IDE 中的版本。

    44.png

    • 裁剪名为 lv_conf.h 的 LVGL 配置文件,并且不编译未使用的小部件。例如,智能家居不使用 Spinner 小部件。
    将宏 LV_USE_SPINNER 配置为 0,如图 33 所示。

    45.png

    6 示范
    本节包括以下演示步骤:
    • 下载本应用笔记所附的代码项目。
    • 编译代码项目并将可执行二进制文件下载到LPC54628 EVK。
    • 要启动应用程序,请重新上电或重置 EVK 板。







    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    5 天前
  • 签到天数: 590 天

    [LV.9]以坛为家II

    31

    主题

    1345

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3582
    最后登录
    2024-4-25
    发表于 2022-8-31 17:18:14 | 显示全部楼层
    不少素材
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-18 09:13
  • 签到天数: 842 天

    [LV.10]以坛为家III

    1

    主题

    2091

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    4320
    最后登录
    2024-4-18
    发表于 2022-8-31 17:18:33 | 显示全部楼层
    支持支持
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-3 08:35
  • 签到天数: 374 天

    [LV.9]以坛为家II

    1

    主题

    1566

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    4333
    最后登录
    2024-4-3
    发表于 2022-8-31 17:18:54 | 显示全部楼层
    LPC546xx GUI Guider 上的智能家居演示
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    14 分钟前
  • 签到天数: 1941 天

    [LV.Master]伴坛终老

    61

    主题

    1万

    帖子

    3

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    17298
    最后登录
    2024-4-26
    发表于 2022-8-31 17:19:09 | 显示全部楼层
    现在gui设计真方便,就是缺素材
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2024-2-5 12:06
  • 签到天数: 627 天

    [LV.9]以坛为家II

    94

    主题

    1628

    帖子

    2

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4429

    热心会员

    最后登录
    2024-2-5
    发表于 2022-8-31 17:21:05 | 显示全部楼层
    不错 不错 我正好有608板子
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 08:13
  • 签到天数: 558 天

    [LV.9]以坛为家II

    34

    主题

    5917

    帖子

    2

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    5705
    最后登录
    2024-4-26
    发表于 2022-8-31 17:23:12 | 显示全部楼层
    大神好详细
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2022-2-25 10:20
  • 签到天数: 32 天

    [LV.5]常住居民I

    1

    主题

    289

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1129
    最后登录
    2023-10-31
    发表于 2022-8-31 17:23:40 | 显示全部楼层
    GUI设计便捷了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    前天 17:02
  • 签到天数: 618 天

    [LV.9]以坛为家II

    0

    主题

    1810

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    4520
    最后登录
    2024-4-26
    发表于 2022-8-31 17:30:14 | 显示全部楼层
    大神好详细
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 12:07
  • 签到天数: 2039 天

    [LV.Master]伴坛终老

    17

    主题

    4826

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    9903
    最后登录
    2024-4-26
    发表于 2022-8-31 18:13:33 | 显示全部楼层
    谢谢分享!有板子的可以试试。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-27 00:20 , Processed in 0.159207 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表