工业显示器 - 树莓派显示器(黑色)电路板特写

HMI 原型

快速经济

嵌入式软件开发

专业解决方案

嵌入式软件是被写入用来控制一些机器或装置的计算机软件,这些机器或装置一般不被看作是计算机,通常被称为嵌入式系统。嵌入式软件通常专门用于其运行所在的特定硬件,并且存在时间和内存的约束。

嵌入式软件Raspberry Pi - Yocto在docker环境中构建Raspberry Pi 4计算机的屏幕截图

该项目提供了一套灵活的工具和空间,世界各地的嵌入式开发人员可以在这里分享技术、软件堆栈、配置和最佳做法,可用于针对嵌入式设备和物联网设备或在需要定制 Linux 操作系统的任何地方创建自定义 Linux 镜像。

嵌入式软件树莓派 - Yocto 树莓自定义启动画面,带进度条,白色加载栏,黑色文本

通常,如果您使用 Yocto 为 Raspberry Pi 创建自定义 linux 镜像,您还会希望显示带有进度条的自定义启动画面。

嵌入式软件 - Yocto 启动树莓到 Qt 应用程序的计算机屏幕截图

在本指南中,我们为您提供信息,介绍如何设置 Yocto 项目以安装 Qt 和 Raspberry Pi 4 的 Qt 演示版应用程序,然后自动启动此 Qt 演示版应用程序。

嵌入式软件 树莓派 - Yocto - 树莓派 - PIGPIO - Qt 计算机程序的屏幕截图
包含 PIGPIO 库和 Qt 工具链

配置 Yocto,创建适用于 Raspberry Pi 4 的定制版 Linux ,并在其中集成 pigpio 库、Qt 以及用于交叉编译的工具链。

嵌入式软件 - 视觉五 - 曼德 - 约克托 计算机截图
第 1 部分 - Yocto 环境的基本设置

系列文章《如何设置 Yocto 环境,以创建具有 Mender 客户端集成的 Yocto Linux》的第 1 部分。

最近,我不得不为Raspberry Pi 4开发一个应用程序(信息亭系统)。它的特别之处在于,2个触摸显示器将通过HDMI连接,必须向右旋转90度。所以纵向格式,2 台显示器彼此重叠。 旋转屏幕并将其排列在一起不会造成任何问题,因为这可以通过用户界面轻松实现 - 安装了“带有桌面和推荐软件的Raspbian Buster”。

由于频繁写入或覆盖数据,SD卡的使用寿命会受到影响。

例如,对于通常包含重新启动后不再需要的临时数据(例如用于比较计算的传感器值)的应用程序,建议将临时数据(例如用于比较计算的传感器值)写入 RAM 磁盘。

您也可以将通常用于电源的树莓派 4 的 USB-C 接口用作普通的 USB 接口。 然而,在这种情况下,树莓应该通过GPIO引脚供电。

嵌入式软件Raspberry Pi - Qt on the Raspberry Pi 4 蓝屏的计算机屏幕截图

Qt 通常被用于开发图形界面。Qt 包含用于创建图形界面的 C++ 库,这些图形界面可在各种操作系统上编译。由于此编译需要大量算力,因此对于算力相对较小的处理器来说,可取的做法是在宿主计算机上执行开发和编译,仅在此之后将完成的应用程序加载到目标计算机上。有很多在线说明可用于开发针对Raspberry Pi 3 和 Raspberry Pi 4 型号的 Qt 应用程序。遗憾的是,我找不到哪一个能完美适合 Raspberry Pi 4 和我们的需求。这些说明在很大程度上基于 https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/QT_build_instructions.md,并在某些地方进行了修改,以便使其适用于我自己。

这是在计算模块 4 上安装 Raspberry Pi OS Lite 的指南。作为工作计算机,我使用安装在虚拟机中的 Ubuntu 20。

这是为树莓派 4 交叉编译 Qt 5.15.2 并将其安装在计算模块 4 上的指南。 这是我在Raspberry Pi 4上的博客文章 Qt的更新,不同的是这次我使用的是Raspberry Pi OS Lite。

这是配置Qt-Creator以使用Raspberry Pi 4的交叉编译Qt库以及为Raspberry创建应用程序的指南。

嵌入式软件 - 树莓派 4 的 Qt 交叉编译设置脚本 计算机程序的屏幕截图

我们在本页面提供脚本的下载链接,以便在 Linux 宿主机和 Raspberry Pi 4 上自动设置交叉编译,并提供如何使用它们的说明。

在这篇博客中,我想提供一个小型的Qt Quick应用程序(qml)作为通过TCP / IP的Modbus连接的示例。 在Qt示例中,我只找到了Modbus连接的QWidget示例,在最近为此创建了一个Qt Quick应用程序之后,我想提供它的精简版本作为示例。

如果您为Raspberry Pi 4创建了一个Qt应用程序或任何其他应用程序,您通常希望在应用程序完成后重新启动Raspberry后立即调用该应用程序。 这通常使用可在不同位置输入的启动脚本进行尝试。 但是,通过 systemd 进行设置更合理。

任务是编写一个Qt快速应用程序(GUI)以将新固件上传到触摸控制器。 上传软件由制造商在 .exe应用程序中 提供,该应用程序将.bin文件加载到触摸控制器上。 我想使用Qt类“QProcess”,它可以用来调用和控制shell应用程序。在Linux方面,我已经成功使用了几次 - 但在Windows上它一开始不起作用。

嵌入式软件 - HDMI 显示器设置 计算机程序的屏幕截图
使用 ddcutil 控制 HDMI 显示器设置

安装 ddcutil 和通过 I2C 控制 HDMI 显示器设置的 Yocto 方案。

嵌入式软件 - libgpiod 带有黑色文本的黄色屏幕
将 libgpiod 包含在 Yocto 中

在 Yocto 中包含 libgpiod 库,并在您的嵌入式系统中使用。