0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TouchGFX 4.18应对嵌入式系统UI中使用视频的挑战

星星科技指导员 来源:意法半导体 作者:意法半导体 2022-05-10 16:57 次阅读

ST推出的TouchGFX 4.18带有一个新的小部件,可帮助开发人员在他们的设计中运行视频,并提供新功能,使围绕文本的协作更容易。我们还发布了两款新的显示扩展板。X-NUCLEO-GFX01M2与 SPI Display 和 64 针 Nucleo 板(如NUCLEO -WB55RG )兼容。X-NUCLEO-GFX02Z1支持并行接口、QSPI 闪存和 144 针 Nucleo 板,例如新的NUCLEO-U575ZI-Q。如果我们用一个词来概括推动新版 TouchGFX 的精神,那就是“交互”。因此,让我们看看 TouchGFX 4.18 如何改进与用户的交互以及开发人员之间的交互。

TouchGFX 4.18,通过视频与用户互动

嵌入式系统的 UI 中使用视频的挑战

将视频带入更多 UI 的愿望是嵌入式系统显示器日益普及的自然结果。随着越来越多的产品获得屏幕,公司希望使用它们更好地与用户互动。在许多情况下,展示视频胜过任何其他形式的互动。例如,关于如何清洁咖啡机的剪辑比书面的步骤清单更有影响力,而关于如何疏通打印机的简短动画将比警告图像为客户提供更多服务。

问题是在 TouchGFX 4.18 中的视频小部件之前,开发人员必须完成所有繁重的工作。在 UI 中播放视频始终是可能的,但编码人员必须自己管理流程的各个方面。在众多挑战中,团队必须实施视频缓冲区,找出最适合他们的微控制器的编解码器,并确定如果硬件加速存在于他们的设备上,如何利用它。这项工作要求如此之高,以至于许多 TouchGFX 用户要求使用一个视频小部件来大大简化他们的工作流程。

嵌入式系统的 UI 中实现视频的 3 个步骤

多亏了视频小部件,现在在 UI 中插入视频只需要三个基本步骤。首先,用户进入 TouchGFX Designer 的顶部小部件菜单,选择“Miscellaneous”,然后选择“Video”。从那里,开发人员可以选择视频的大小和位置以及它的基本属性。例如,他们可以选择视频源以在 TouchGFX Designer 中查看文件播放。团队还可以设置一些行为,例如循环播放或自动播放。

其次,STM32CubeMX中的实用程序将使团队能够配置他们的视频缓冲区。完全省略缓冲区是可能的,如果 RAM 是一个严重的限制,这将很有帮助。但是,虽然此选项不使用任何 RAM,但这也意味着应用程序无法在视频顶部覆盖任何按钮。否则,开发人员可以使用一两个视频缓冲区。一个足以覆盖一个按钮,两个提供最佳性能但也需要最多的 RAM。因此,插件系统可以帮助开发人员尽可能有效地测试他们的 UI,因为他们确定了嵌入式系统的最佳折衷方案。

第三,转向生产代码的开发人员将决定放置视频文件的位置。插入带有小部件的视频时,TouchGFX Designer 会加载带有其他图形资源的文件。原因是它使原型设计变得更加简单。但是,在大多数情况下,团队希望将他们的文件存储在 SD 卡或嵌入式闪存模块上,并仅在需要时才获取它。因此,优化至关重要,因为它将避免系统过载。

将兼容视频导入 TouchGFX Designer 4.18 的 3 个步骤

TouchGFX 4.18 视频小部件简化的另一个方面是视频处理工作流程。许多开发人员都在努力为他们的嵌入式系统找到最佳的编解码器、数据速率和分辨率。事实上,微控制器固有的限制意味着不可能将视频从智能手机或相机中取出并播放。然而,随着新小部件的推出,ST 团队更新了TouchGFX 文档以提供重要参考。主要规范之一是视频必须使用 AVI 容器中的 Motion JPEG 编解码器,虽然有许多不同的工具可以获取这样的文件,但这里有一个工作流示例

1.下载我们的测试文件

要快速测试新的 TouchGFX 4.18 视频小部件,请下载名为 Coffee-Demo.mp4 的 MP4 文件。它的 320 x 240 分辨率将填满我们其中一款扩展板的 2.2 英寸显示屏。

2. 将文件转换为 MJPEG 并使用 AVI 容器

下一步是将该文件转换为兼容的 MJPEG 格式。为此,我们将使用免费应用程序FFmpeg。不熟悉的可以使用下面的指南进行安装。该应用程序是免费的,非常实用。事实上,它只用一个命令行就可以转换演示 MP4 文件:

ffmpeg -i Coffee-Demo.mp4 -c:v mjpeg -q:v 10 -an Coffee-Demo.avi

对于那些不熟悉 FFMPEG 的人,-c:v选择编解码器并-q:v定义质量。对于 Motion JPEG,数字从 2 到 31,数值越小,质量越好。最后,该-an选项会阻止应用程序导入音频流。现在不能使用FFmpeg的可以下载我们转换后的demo文件。

3.将视频文件加载到TouchGFX Designer 4.18

最后一步是在 TouchGFX Designer 4.18 中调用视频小部件并插入新视频。不可能为每个微控制器提供精确的视频规格。根据使用的资源(例如后台进程和内存利用率),功能可能会有很大差异。然而,根据粗略估计,只要文件使用 JPEG 编解码器,使用 STM32H7 的开发人员应该能够享受 800 x 480 的分辨率,而 STM32F7 应该允许 480 x 272 的分辨率。

TouchGFX 4.18,通过更好的协作与开发者互动

文本的新 XML 文件

为了改善开发人员之间的交互,TouchGFX 4.18 优化了围绕文本的协作。传统上,所有文本都存储在团队可以导出的 Excel 文件中。该格式使与世界各地的各种翻译人员合作变得容易。但是,管理变更可能是一个问题。事实上,团队必须手动处理更改,并确保没有人无意中覆盖其他人的工作,而不是使用版本控制系统,例如 Git,这可能很麻烦。为了解决这个问题,TouchGFX 4.18 现在将所有文本存储在一个 XML 文件中。新格式将使合并操作和冲突解决更加简单。但是,TouchGFX 4.18 还包括一个 XML 到 Excel 转换器。事实上,在导出文本以供审阅或翻译时,Excel 文件仍然很受欢迎。因此,我们确保开发人员仍然可以导出到 Excel,然后将他们的 Excel 文件导入回 TouchGFX 及其 XML 格式。

新的一次性文本 ID 策略

改进开发人员之间的协作还意味着更新一次性文本。传统上,TouchGFX Designer 将文本存储在为特定内容分配参考 ID 的数据库中。因此,当开发人员想要调用特定文本时,他们会使用其 ID。但是,当文本只有一个目的时,将其存储在数据库中是一种浪费。因此,TouchGFX通过为其分配一个“特殊 ID”来允许一次性使用文本。不幸的是,在以前的系统下,在同一个项目上工作的程序员可能会生成相同的“特殊 ID”,这会产生冲突。因此,TouchGFX 4.18 引入了一个新系统,可以产生更多随机字符串。因此,同一个项目中的两个一次性文本 ID 现在几乎不可能完全相同。

TouchGFX 4.18 中的另一个优化是项目文件更小,使它们更容易合并和潜在共享。传统上,文本文件以 JSON 格式存储所有参数。问题是文件可能会变得很大。因此,ST 决定通过仅存储自定义设置来优化它。因此,文件中没有的任何内容都被视为使用默认值。因此,文件本身要小得多,从而使 Git 上的合并操作更加简单和快捷。

TouchGFX 4.18 支持 2 个新的显示扩展板

为庆祝 TouchGFX 4.18 的发布,ST 发布了两款新的显示扩展板。X-NUCLEO-GFX01M2是我们使用 TouchGFX 4.15 推出的X-NUCLEO-GFX01M1的后代。两者都仍然具有 SPI 2.2 英寸 QVGA (320 x 240) 显示器并支持 SPI 闪存,并且都以大约 5 美元的物料清单为目标。然而,虽然 X-NUCLEO-GFX01M1 仅支持选定的 64 针 Nucleo 套件,但 X-NUCLEO-GFX01M2 与更广泛的 64 针系统兼容。因此,新系统支持像NUCLEO-WB55RG 这样的开发板,从而简化了蓝牙应用的开发。X-NUCLEO-GFX01M2 将在第 48 周接受订购。

ST 还推出了 X-NUCLEO-GFX02Z1,这是我们首款支持并行接口、QSPI 闪存和 144 针 Nucleo 板的显示扩展板。该平台以功率更大的微控制器为目标,这解释了与提供更高带宽的接口的兼容性。开发人员可以将 X-NUCLEO-GFX02Z1 与首批 STM32U5 推出的NUCLEO-U575ZI-Q 一起使用。因此,它使工程师能够利用新 MCU 更好的每瓦性能比来创建前几代 STM32 无法实现的用户界面。此外,我们正在更新X-CUBE-DISPLAY扩展软件包,它允许使用我们的显示扩展板,而不必使用 TouchGFX。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6786

    浏览量

    147562
  • 显示器
    +关注

    关注

    21

    文章

    4722

    浏览量

    137726
  • 接口
    +关注

    关注

    33

    文章

    7610

    浏览量

    148376
收藏 人收藏

    评论

    相关推荐

    嵌入式热门发展方向有哪些?

    嵌入式人工智能可以运用机器学习技术对图像、视频进行高精度解析,从而实现图像识别、视频剪辑、视频智能关联应用等。在传感器网络系统中,
    发表于 04-11 14:17

    如何成为一名嵌入式C语言高手?

    如何成为一名嵌入式C语言高手? 嵌入式系统是当今科技领域的核心,而C语言则是嵌入式系统开发中最常用的编程语言之一。成为一名
    发表于 04-07 16:03

    如何成为一名嵌入式C语言高手?

    如何成为一名嵌入式C语言高手? 嵌入式系统是当今科技领域的核心,而C语言则是嵌入式系统开发中最常用的编程语言之一。成为一名
    发表于 03-25 14:12

    嵌入式会越来越卷吗?

    以及大数据处理等技术之间的整合与互动可能会越来越密切。这种融合或许会带来更强大的系统和更广泛的应用,但也会带来新的挑战,如数据安全性和系统稳定性等问题。 嵌入式
    发表于 03-18 16:41

    嵌入式系统发展前景?

    嵌入式系统发展前景? 嵌入式系统,从定义上来说,是一种专用的计算机系统,它被设计用来控制、监视或者帮助操作一些设备、装置或机器。在过去的几年
    发表于 02-22 14:09

    嵌入式学习步骤

    嵌入式行业是一个涉及广泛领域的行业,嵌入式、物联网、人工智能、智能与科学、电子信息工程、通信工程、自动化工程、测控、计算机科学等专业在嵌入式系统中使
    发表于 02-02 15:24

    基于TouchGFX的智能手表设计 —底层驱动与 UI 进行关联

    电子发烧友网站提供《基于TouchGFX的智能手表设计 —底层驱动与 UI 进行关联.pdf》资料免费下载
    发表于 01-05 11:22 0次下载

    基于 TouchGFX 的智能手表设计—Designer 软件 UI 设计

    电子发烧友网站提供《基于 TouchGFX 的智能手表设计—Designer 软件 UI 设计.pdf》资料免费下载
    发表于 01-05 11:06 0次下载

    为什么嵌入式没有35岁危机?

    嵌入式技术是指将计算机系统嵌入到其他设备或系统中的一种技术。它广泛应用于汽车、家电、医疗设备等领域,并且在智能手机、智能家居和物联网等新兴领域中扮演着重要角色。那么,为什么
    发表于 11-17 10:33

    TouchGFX开发(1)----安装软件

    TouchGFX 是一个高性能的嵌入式图形库,主要用于为微控制器(MCU)驱动的设备创建现代用户界面(UI)。它提供了一套丰富的图形功能,使开发者能够构建出具有高度自定义和流畅的用户体验的界面。
    的头像 发表于 11-08 15:28 260次阅读
    <b class='flag-5'>TouchGFX</b>开发(1)----安装软件

    TouchGFX从旧版本更新到新版本的方法

    X-CUBE-TOUCHGFX 是 STM32Cube 生态系统的一个软件包,它包含以下组件:TouchGFX Designer,TouchGFX Generator 和
    的头像 发表于 11-01 17:15 571次阅读
    <b class='flag-5'>TouchGFX</b>从旧版本更新到新版本的方法

    什么是嵌入式Linux?

    发展需要不断进化。随着芯片性能的增强和社会变革的需要,嵌入式系统越来越承接更多、更复杂的功能,所以嵌入式开发也以高薪稳定的状态稳坐在就业的顶端。(相较于其他行业,嵌入式工程师的工资在同
    发表于 10-11 13:47

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统
    发表于 09-28 06:59

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统
    发表于 09-11 07:24

    嵌入式用什么语言编程?

    嵌入式用什么语言编程? 嵌入式系统应用越来越广泛,专业的嵌入式工程师对这样的问题肯定不会太关注,只是针对一些初级入门者,做个简单的了解,认识一下这个广受关注的技术是由哪种语言编写的?
    发表于 05-18 10:08