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

描述

  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。

  审核编辑:郭婷

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分