gpiozero Flow:用拖拽连线控制 GPIO

2015年我创建了gpiozero,用Python简化Raspberry Pi的GPIO编程,将复杂的引脚和电压抽象为按钮、传感器和电机。如今,我借助Claude将这一理念升级为gpiozero Flow:一个基于Web的图形化工具,支持拖拽设备、连线定义数据流,并自动生成Python代码。通过WebSocket与Raspberry Pi通信,用户可在浏览器中直接控制硬件,甚至分享项目链接。它不仅是编程工具,更是理解系统与控制逻辑的直观实验场。
我们不再思考引脚通道、电压或电阻,而是专注于按钮被按下、传感器检测光线或运动、电机前后转动这些直观概念。
HN 评论区
37- luciana1u
问题在于,每个可视化编程工具最终都会走到需要'代码节点'的地步,然后大家就直接写代码了。
- faangguyindia
我在构建一个用于健美训练的可视化编程系统时,也有过类似的念头。
我不断遇到的问题是,训练计划本质上就是状态机:进阶规则、减载、条件分支、不同的动作替换、自我调节等等……
这让我开始思考,可视化编程模型是否能让这些系统更易于上手。不过我仍持怀疑态度。与自动化工作流不同,后者其图结构本身就能揭示逻辑,我不确定对于训练计划来说,什么样的视觉抽象才是合适的,而不让它们显得更加令人望而生畏。
目前,我开发了一套训练编程语言,附带一堆示例程序和一个能帮你执行这些训练计划的 App,当然全部免费:
- frumiousirc
数据流编程的一个关键特性似乎经常被忽视,那就是它是(或者可以是)分层的。
将一组原子节点定义的子图本身定义为一个节点,其端口由这些原子组成部分中尚未连接的端口构成。然后组合出更高层级的子图(由子图和原子节点组成),并以某种方式打包这一切。
这直接类比于语法编程:函数聚合了其他函数调用,所有这些都打包成一个带有 API 的库。
- codetiger
这项工作太棒了。我之前在 RPi 项目中使用过 GPIOZero。未来你们可以在流程中引入条件运算符。它完全可以成为一个完整的编程平台。
可以参考 JSONLogic UI 的类似实现:
https://github.com/GoPlasmatic/datalogic-rs
声明:我是 datalogic-rs 项目的维护者。
- arto
顺便提一下,这里通用的范式被称为基于流的编程(FBP):