问题标签 [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.

0 投票
2 回答
39 浏览

python - 您可以在 python gpiozero 中将两个函数绑定到 button.when_pressed 吗?

我正在尝试将两个功能绑定到一个按钮,例如,我想用一个按钮切换蜂鸣器和 LED。有没有办法将两个功能附加到同一个按钮,或者一个按钮一次只能做一件事情?

例如:

0 投票
2 回答
46 浏览

python - 尽管我更改了应该停止它的变量,但函数仍在运行

我希望有人可以帮助我解决这个问题。我希望修复起来相当简单,但我已经尝试了一段时间来解决这个问题。我已将较大的代码修剪为此,因为我相信这里的问题是问题的症结所在。

我有一个树莓派和一个外部按钮。这是在 Linux 上的 python3 上。我正在使用 GPIOZero 作为按钮。我相信下面的代码很容易理解,但基本上,我希望函数始终循环。当我按下一个按钮时,我希望另一个函数运行,但前提是变量是某个数字。我在下面的评论中描述了我最终想要发生的事情,但是我的代码未完成并且仅针对这个问题进行了简化。

我只想button.when_pressedtimer = 0. 问题是,一旦代码自然地进入button.when_pressed函数,它就再也不会“放开”函数了。当我成功将变量重新定义为时,当我按下按钮时timer = 1,它仍然打印按钮被按下。我不知道为什么。对我来说,它似乎应该只工作一次timer = 0

有什么建议么?我想我对我将计划研究的全局变量有误解。我不确定这是否是问题所在。我也尝试过使用breakcontinue试图让它“回到它的循环”,但这也没有奏效。我也想使用button.when_pressed而不是btn.is_pressed,因为我希望程序仅在我按住按钮一次时执行某些操作,而不是在按住按钮时循环。在这种情况下,我希望按下按钮以打印一次。如果我这样做btn.is_pressed了,它将每两秒按下一次打印按钮,这是我不想要的。

谢谢你的帮助。我很高兴学习。

0 投票
2 回答
187 浏览

python - 按下按钮时中断while循环

我目前正在尝试设置此代码,以便在这种情况下button1连接到 RPi GPIO 的按钮运行该功能c1并继续循环该功能,直到按下另一个按钮button2,然后它运行该功能c2继续在该功能中循环。

我遇到了破坏功能的麻烦c1,我试图breakwhile按下另一个按钮时添加一个,如下所示,因为代码没有停止,所以没有任何运气。

我也试过这个来打破循环,但我什至不确定这是一个正确的方法,无论如何它没有工作。

我不确定是否正确,但我有一种感觉必须改变函数让我们假设c1打破False循环。我希望通过在按下新按钮后告诉代码停止循环将起作用,但它没有成功。

我在这里想念什么?

0 投票
0 回答
40 浏览

python - 如果代码正在等待串行或用户输入,则无法立即中断循环

我试图用一个按钮在树莓派上启动代码,一旦按下另一个按钮,我希望代码停止正在做的事情并转移到另一个功能。

当我试图立即打破这个循环时,我整天都在摸不着头脑:

如果我将其设置input为:

在这input两种情况下都可以正常工作并且代码运行良好,尽管它只会在我按住按钮直到serialinput()得到它们的值时才会中断,不幸的是这是不正确的,我需要杀死例如立即c1()切换到的函数,c2()无论是否代码是否已收到输入。

我试图玩一些线程,input在一个单独的函数上运行代码的“”部分并调用它,threading但是代码变得很糟糕。

我有一种感觉,线程是要走的路,但我不知道如何处理它,显然代码被卡在了input并且代码不会移动,直到收到一个值才不会使代码达到break之前input收到。

0 投票
0 回答
40 浏览

python - 我需要更改哪些环境变量以允许 pigpio 远程连接到树莓派?

我正在使用 gpiozero 和 pigpio 库在 python 中创建远程 gpio 控制应用程序。pigpio 文档将其宣传为一项功能,因此我知道这是可能的。这是此示例代码的问题:

是的,我已经确保在 pi 上启动了 pigpio 守护进程。这是错误代码。我不确定是否需要全部提供它们,但我不知道解决这个问题的关键是什么。:

我已经读到这与某处的一些环境变量有关,但我没有找到关于如何更改它们并使其工作的好资源。如何更改正确的系统变量并让我的树莓派主机名可用于网络上的其他设备?

0 投票
1 回答
39 浏览

python - ModuleNotFoundError:没有名为“gpiozero”的模块

我尝试在我的树莓派 4 上使用 gpiozero,但当我尝试运行代码时却找不到模块。

有什么建议么?

如 gpiozero 文档页面所述,我尝试通过几种不同的方式下载它。不知道现在该怎么办。

0 投票
0 回答
18 浏览

raspberry-pi - Discord.py 机器人消息的 GPIO 触发器

TL;DR:我正在尝试构建一个 Discord 机器人,以在按下物理按钮时发送脚本消息 - 返回错误代码以发送消息

我正在开发一个 Discord 机器人,以将实验室状态发送到我的俱乐部研讨会的特定频道。这应该是一个周末项目,但我们都知道这是怎么回事。我已经开始使用按钮等,但不确定如何使用 GPIO 引脚触发机器人命令。由于我不了解如何在计算机端而不是通过 !messages 触发消息,因此对我有意义的每个设置都会出现问题。

到目前为止,我的代码在这里:

0 投票
2 回答
33 浏览

python-3.x - 如何修复“TypeError:'bool'对象不可调用”

我正在尝试使用 python 代码控制步进电机。我知道这可能不是最好的方法,但请帮助我并忍受我。不久前我得到了这个工作,我很确定,我不知道为什么这不起作用。请帮助这是我下面的代码

0 投票
0 回答
28 浏览

python - Python使用子进程在while循环中打开和关闭脚本

我正在尝试将此脚本与我的 raspi 一起使用,以在释放按钮时打开另一个脚本,并在按下按钮时关闭打开的脚本。

如果我按住按钮,我会不断收到“相机未打开”的消息,这很好,这就是我想要它做的事情,然后当我释放按钮时,脚本会按原样打开,并且我的输出显示“相机已打开”并且相机开机也不错。我需要调用这个脚本来打开相机。

这就是我到目前为止所拥有的。

这是我得到的输出。 输出图像

任何帮助将不胜感激这是我的第一个大型 python 项目,由于某种原因我找不到我正在寻找的解决方案。

0 投票
1 回答
31 浏览

python - Discord.py 程序使用 100% 的核心

我有一个在 Raspberry Pi 3B+ 上以 python 运行的 Discord 机器人。该程序的目的是通过按下物理按钮将实验室状态发送到我们的服务器。我注意到程序本身并不总是想要合作,并且一直在使用 100% 的内核。我相信硬件仍然健康,唯一正在运行的就是操作系统本身。每次我检查时,htop 都会读取单个程序正在使用 98-101% 的内核。