问题标签 [gpiozero]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
raspberry-pi - 使用 while 循环时,带有 gpiozero 继电器的 Raspberri pi 挂起
我正在使用这个带有 Raspi 零的继电器模块。 https://www.amazon.co.jp/gp/product/B083LRNXBJ/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1
我gpiozero
用来控制继电器。
但问题是继电器永远不会关闭,直到循环退出,或者我们退出程序。relay.off()
如果没有回路,继电器很容易关闭。
编辑:所以即使这样也行不通:
pi - 树莓派 GPIO 键盘/鼠标输入
尝试使用 Raspberry Pi 的 GPIO 引脚创建非常简单的键盘和鼠标控制器。很想在教育环境中使用该代码,因此尝试为儿童/学生构建超级简单、易读的代码。但是代码有点奇怪,它一直输出相同的击键:
使用 Python 3.7.3。无论我触发哪个 GPIO(26 或 17),代码始终输出“向上”并按下键盘“向上”按钮。这一定是愚蠢的,但我似乎无法弄清楚。很想继续使用 if/elif,所以我以后可以用更多的 GPIO 按钮来扩展代码。有什么想法吗?
python - 树莓派:I2C 引脚上的 GPIOZERO
这是在树莓派上。
我能够让 I2C-1 使用 Python 在 PI 上正常工作。
然后我运行另一个 Python 脚本,该脚本使用 GPIOZERO 库将其中一个 I2C 引脚用作 GPIO。
但是,当我回到第一个程序时,I2C 停止工作。
我认为 close() 会将 pin 功能恢复为默认的 I2C 功能,但事实并非如此。我也确认使用
并确认 I2C 确实不起作用。
无需重新启动,如何使用 python 以编程方式将引脚重新编程回 I2C 功能?
python - 如何控制树莓派上的 GPIO 引脚(一般用途)(python 脚本)
我想用 gpiozero 控制 pi(4B 8Gb ram)上的 gpio 引脚。我找不到如何简单地控制一个引脚......没有图书馆认为它是一个 LED。来自Arduino,你可以使用digitalWrite,这个库有类似的吗?在文档中我能够找到这个: https ://gpiozero.readthedocs.io/en/stable/api_output.html#digitaloutputdevice 但无法让它工作......
仍然不确定哪个库是最好的......(rpi.gpio 不支持 I2C 或 SPI,所以不使用它)但现在我只想控制一个引脚而不是这样:
谢谢
编辑:
我为多个引脚做了这个。
gpiozero 已正确安装(用 LED 测试),我没有错误这行...
python-3.x - gpiozero 在获取 load_average 时生成 io.TextIOWrapper 'noise'
我正在尝试使用 gpiozero LoadAverage 来获得平均系统负载,以便在小型 OLED 板上显示。问题是,每当我尝试将 LoadAverage().load_average 分配给变量时,它都会生成一个
关于如何在不生成这些消息的情况下从 gpiozero 获得平均负载的任何建议?我不是 python 程序员,所以我试图将东西一起破解到 adafruit stats.py 脚本中。
python - gpiozero Button.wait_for_press() 周围的异步包装器因分段错误而崩溃
我正在尝试围绕 gpiozero 的Button.wait_for_press
方法创建一个异步包装器。这在大多数情况下都有效,但Segmentation fault
随机给出。
上面的代码有问题吗?
python-3.x - 动态创建 GPIO PIN 变量
作为家庭自动化项目的一部分,我编写了一个每小时运行一次的 Python 脚本。每隔一小时脚本应该打开或关闭某些 GPIO 引脚。小时、动作和 pin 信息的组合存储在 mariadb 数据库中。我写了下面的代码来实现这一点:
这里的问题是,一旦 performAction() 退出 GPIO 引脚重置,显然是由于变量范围!这让我意识到,由于会有 GPIO 引脚一旦启用,可能不需要禁用几个小时或脚本迭代。因此我得出结论,我需要以 ledx = LED(x) 的形式为数据库中找到的所有 GPIO 引脚声明全局变量 - 其中 x 是从数据库返回的引脚。这就是我卡住的地方!我找不到查询数据库的方法,获取要修改的所有 PINS 号码,为每个 PIN 号码创建全局变量,例如 ledx(其中 x 是数据库中的 PIN 号码),将其初始化为 LED(x) 和最后在脚本迭代中需要时引用它。我环顾四周,发现可以使用字典创建动态变量。
PS:我是Java2早期的编程学生,从未以编程为职业,所以请忽略我对python基础知识的缺乏了解
raspberry-pi - 树莓派 4 - 如何控制水雾化器输出设备
材料
- 树莓派 4
- 超声波水雾化器(https://www.amazon.com/gp/product/B07RMXHL16/)
设置
我将水雾化器通过 GPIO12(引脚 32)通过正极线(红色)和负极线(引脚 34)连接到 PI。
软件
pigpiod
pigpio
gpiozero
(用于 DigitalOutputDevice 和 PWMOutputDevice 实用程序)
在这一点上,我什至根本无法打开输出设备。我已经尝试使用实用程序类将其作为数字和 PWM 输出设备进行交互(并使用,PiGPIOFactory
以便我的代码可以利用底层守护程序与引脚交互。
是否可以通过 Raspberry Pi 为其供电?我是否将其连接到错误的引脚?这应该被认为是一个 PWM 设备还是只是一个数字设备?抱歉,一般来说,微控制器和 Rpi 都是新手。
python - 如何在按钮按下/按住时停止重复 - Python
我希望有人可能对如果按住按钮(或者在我的情况下按下超过一秒)如何阻止脚本继续重复有一些见解?
基本上我在面包板上设置了一个按钮,并且我将它编码为在按下按钮时播放音频文件。这是可行的,但是如果按钮不是很快被点击,那么音频将自行重复,直到按钮完全释放。此外,如果按住按钮,音频文件将无限期地重复。
如果它有帮助,我已经录制了一个快速记录来演示这个问题,这里:https ://streamable.com/esvoy6
我还应该注意,我对 python 非常陌生(实际上是一般的编码),所以它很可能是一些我还没有找到的简单的东西。我正在为我的图书馆使用 gpiozero。
非常感谢任何帮助或见解!
这是我的代码现在的样子:
button - 带有 GPIO 事件检测的函数因未知原因而循环
我使用 Pimoroni 的 Inky 印象屏幕来显示带有树莓派零的幻灯片,上面有 4 个按钮,可以与 RPi.GPIO 完美配合。
如您所见,我在代码附件中简化了特定操作的功能。
一切正常,直到我添加了一些代码以避免在函数执行期间多次按下按钮。
它适用于端口 4 和 5 上的按钮,分别标记为 A 和 B。但对于端口 16 和 24,它使功能无限循环handle_button(pin)
,甚至GPIO.cleanup()
无法修复。
如果有人知道有关暂时停止检测的方法或解决此问题的方法,那将非常酷,谢谢!