5个不稳定版本
0.3.4 | 2024年8月8日 |
---|---|
0.3.3 | 2024年8月4日 |
0.3.0 |
|
0.2.0 | 2024年6月22日 |
0.0.1 |
|
#81 在 硬件支持
610 每月下载量
265KB
6K SLoC
pigg - Raspberry Pi GPIO GUI
一个用于Raspberry Pi GPIO输出控制和输入可视化的应用程序,使用rust语言,利用Iced GUI工具包和rppal GPIO crate构建。
GUI二进制文件(Pi Gpio GUI - PIGGUI)亲切地被称为“piggy”。
|
目前,当在Pi上运行时,您可以配置Pi的GPIO硬件输入或输出,控制输出的电平,并查看输入的电平。
它可以在macOS/Linux/Windows上运行。当我们添加网络支持时,这将允许您远程控制Pi GPIO硬件。
最新新增功能 - 网络GPIO!
- GUI(
piggui
)可以通过网络连接到Pi(运行piglet
),从远处控制和查看GPIO硬件。GUI可以在Mac、Linux、Windows或Raspberry Pi上运行。事件在源端时间戳(尽可能靠近硬件)进行,因此网络延迟不应影响显示的波形。在“讨论”或GH问题中提供有关网络的相关反馈和想法。 - 通过iroh-net连接到远程节点所需的数据称为
nodeid
。如果piglet
在前景启动,它将为您打印出来。当piglet
作为系统服务启动时,启动另一个前景实例,这将检测后台实例并显示其nodeid
然后退出。 - 使用
nodeid
,将其作为命令行选项提供给piggui
(--nodeid $nodeid
,如果使用cargo run
,则前面需要加上--
)或者将其输入到GUI中。要从GUI连接到远程实例,请点击屏幕底部信息栏左边的“硬件菜单”,然后选择“连接到远程Pi..:”菜单项。然后在提供的字段中输入nodeid
并点击“连接”。
以下是两个视频,展示了两种使用方法,通过VNC显示了运行在RPi上的piglet。
- 带对话框的视频:https://youtu.be/aToJ1aT7NeM
- 使用CLI参数的视频:https://youtu.be/zcEa_Oke014
其他功能
- 两种布局中GPIO引脚的视觉表示,一种是模仿Pi的GPIO接头/接头的物理布局的“板引脚布局”,另一种是只有可编程GPIO引脚的“BCM引脚布局”,按BCM引脚编号排序。
- 每个引脚都有其板引脚编号、名称和功能。
- 下拉选择器以配置每个引脚(目前作为输入,带有或不带有上拉/下拉,或作为输出)。
- 输入具有类似于LED的视觉表示,以显示其当前级别(黑色表示未知,红色表示关闭,绿色表示打开),还有一个波形视图,显示检测到输入级别的最近历史。
- 输出有一个切换开关,可以用来改变输出的稳定值,还有一个“单击器”,用于快速反转稳定级别,还有一个显示输出上设置的级别最近历史的波形视图。
- GPIO配置可以在启动时通过命令行文件名选项加载,也可以通过UI中的文件选择器加载,或通过文件选择器保存到文件。
您可以在这里查看更多功能和视频。
Piggui(发音为“Piggy”)
piggui
是一个用于配置引脚、观察输入级别和控制输出级别的GUI。在Raspberry Pi上,它有一个真实的GPIO硬件后端(通过rppal)。在macOS、Linux和Windows上,它使用一个假硬件后端(主要用于开发)或可以连接到运行piglet
的远程硬件后端。
Piglet
piglet
是一个“无头”的命令行工具,它与GPIO硬件交互,可以应用从文件提供的配置并停止,或者可以监听来自远程piggui
的配置更改,并向GUI报告输入级别更改。
如果在与“pi_hw”功能一起构建Pi上,则它有一个真实的GPIO硬件后端。
它可以构建在macOS/Linux/Windows/Pi上,带有“fake_hw”功能以实现假硬件后端,主要用于开发。
它接受一个可选的配置文件作为命令行选项。它将从文件加载GPIO配置(如piggui
可以),然后将其应用于硬件然后停止。
它提供了从远程piggui
实例与硬件交互的能力。它将在启动时打印出连接信息,并开始监听来自piggui
实例的Iroh网络连接,然后用户可以与之交互,并通过piggui
GUI可视化输入级别更改。
需要来自Raspberry Pi用户的反馈
我们希望从Raspberry Pi用户那里得到反馈,帮助我们决定未来要工作的顺序,以及如何集成新的功能(例如I2C总线、SPI、UART等)。
请告诉我们您的看法和建议,通过讨论或GH问题反馈。
短期路线图
我们在这次初步发布后确定了一些我们想要工作的领域,但非常希望您能提供意见,哪些功能可能最有用或最酷,很多人已经在GH问题上提出了。
- 发布流程自动化和发布软件包问题 #85
- 为Raspberry Pi预构建的二进制文件以便安装问题 #112和更容易的安装问题 #111
- 扩展对输入和输出的支持(例如,时钟、PWM、I2C、UART、SPI等)。问题#53,#52,#5
- 真正的逻辑布局,按功能分组引脚问题 #94
更长远的想法
- 允许引脚之间连接问题 #95
- 对Pico的支持,通过网络访问无头硬件后端
- 在输入事件(边缘、电平等)上触发脚本或WebAssembly插件
安装
我们计划制作支持平台的预构建二进制文件及其直接安装方法。
在此之前,要安装 piggui
和 piglet
,您必须从源代码构建,可以使用 cargo install
,或 cargo build
或从repo的克隆或发布源tarball/zip的下载中使用 make
。
请参阅下面的章节以获取详细信息。
这是一个我们欢迎想法、意见和贡献的领域 - 请将您的想法发布到讨论
从源代码构建Piggui和Piglet
请参阅BUILDING.md
运行Piggui和Piglet
有关在相同机器上或在远程GUI与Pi硬件之间以系统服务方式运行piglet
和piggui的详细信息,请参阅RUNNING.md
贡献
许可
请参阅LICENSE
行为准则
安全
请参阅SECURITY.md
依赖
~83–130MB
~2.5M SLoC