gpiozero Flow:用拖拽连线控制 GPIO

gpiozero Flow:用拖拽连线控制 GPIO

2015年我创建了gpiozero,用Python简化Raspberry Pi的GPIO编程,将复杂的引脚和电压抽象为按钮、传感器和电机。如今,我借助Claude将这一理念升级为gpiozero Flow:一个基于Web的图形化工具,支持拖拽设备、连线定义数据流,并自动生成Python代码。通过WebSocket与Raspberry Pi通信,用户可在浏览器中直接控制硬件,甚至分享项目链接。它不仅是编程工具,更是理解系统与控制逻辑的直观实验场。

我们不再思考引脚通道、电压或电阻,而是专注于按钮被按下、传感器检测光线或运动、电机前后转动这些直观概念。
  1. luciana1u

    问题在于,每个可视化编程工具最终都会走到需要'代码节点'的地步,然后大家就直接写代码了。

  2. faangguyindia

    我在构建一个用于健美训练的可视化编程系统时,也有过类似的念头。

    我不断遇到的问题是,训练计划本质上就是状态机:进阶规则、减载、条件分支、不同的动作替换、自我调节等等……

    这让我开始思考,可视化编程模型是否能让这些系统更易于上手。不过我仍持怀疑态度。与自动化工作流不同,后者其图结构本身就能揭示逻辑,我不确定对于训练计划来说,什么样的视觉抽象才是合适的,而不让它们显得更加令人望而生畏。

    目前,我开发了一套训练编程语言,附带一堆示例程序和一个能帮你执行这些训练计划的 App,当然全部免费:

    https://symbiote-studio.macrocodex.app/?builtin=gzclp

  3. frumiousirc

    数据流编程的一个关键特性似乎经常被忽视,那就是它是(或者可以是)分层的。

    将一组原子节点定义的子图本身定义为一个节点,其端口由这些原子组成部分中尚未连接的端口构成。然后组合出更高层级的子图(由子图和原子节点组成),并以某种方式打包这一切。

    这直接类比于语法编程:函数聚合了其他函数调用,所有这些都打包成一个带有 API 的库。

  4. codetiger

    这项工作太棒了。我之前在 RPi 项目中使用过 GPIOZero。未来你们可以在流程中引入条件运算符。它完全可以成为一个完整的编程平台。

    可以参考 JSONLogic UI 的类似实现:

    https://github.com/GoPlasmatic/datalogic-rs

    声明:我是 datalogic-rs 项目的维护者。

  5. arto

    顺便提一下,这里通用的范式被称为基于流的编程(FBP):

    https://github.com/flux-doctrine/awesome-fbp

同日更多故事

2026-07-30