问题标签 [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 投票
1 回答
396 浏览

python-3.x - PI 4b 上的 RPi.GPIO 问题

在 Raspberry Pi 4b 上使用 RPi.GPIO 时出现“此模块只能在 Raspberry Pi 上运行”错误。

此错误是由安装的默认 RPi.GPIO 版本引起的:

此命令似乎安装了与 PI 4b(版本 0.5.0)不兼容的版本。您可以通过键入以下内容来修复此错误:

这是对 Python3 和 Raspbian 的全新安装,仅使用在线推荐的安装命令。

我已经运行了 apt-get update 和 apt-get upgrade ,经过一番搜索后找不到包含此解决方案的任何答案。希望这将为其他人节省一些时间。

让我知道我是否错过了其他地方的解决方案,或者我是否以某种方式制造了这个问题。

0 投票
2 回答
174 浏览

python - kivy:当被 gpiozero 回调调用,但不是被 kivy.uix.button 回调调用时,“异常:着色器没有链接”

我正在使用 kivy 中的相机编写 GUI,但不确定为什么我的代码不起作用。我有一个相机源,以及两种从中捕获图片的方法:一种由gpiozero when_pressed回调触发,另一种由kivy.uix.button on_press回调触发。

kivy.uix.button回调成功捕获图像,但gpiozero回调说,未能保存图像,然后Exception: Shader didnt link, check info log.使相机输入变黑(尽管稍后仍然可以使用成功选项捕获图像)。为什么一个回调有效,而另一个无效?

这是相关代码,以及相应的终端输出。我已经用# ALL CAPS COMMENTS. (我的代码受到kivy docs camera example的启发,该示例也成功捕获)。

主文件

升降机.kv

终端输出(带注释)

0 投票
1 回答
648 浏览

python - 如何在类或函数中使用 gpiozero.Button.when_pressed

我正在气象站(树莓派)上工作,我正在使用 python。我开发了一个正在运行的程序,但现在我决定更新我的代码并构建所有内容(制作类等)。但是现在我从 gpiozero 遇到了关于 Button 的两个问题。
首先,当我尝试将函数分配给Button.when_pressed 函数或类时,按下按钮时不会调用该函数。

以下代码只是一个示例,以使代码尽可能少:

function_that_gets_called为什么按下按钮时不调用。同样,当我尝试when_pressed在课堂上分配时,它也不起作用。

其次,为什么我必须使用global number?否则数字变量不会被改变,但有没有另一种解决方案以更好的方式做到这一点?

十分感谢!

编辑:编辑 time.sleep(60)。我指定了,我的意思是不起作用。这是我在stackoverflow上的第一个问题,所以如果不准确,请原谅,很高兴告诉我如何改进我的问题。

0 投票
1 回答
59 浏览

python - 我可以用函数打破 for 循环吗?

我制作了一个for循环,该循环将在使用 gpiozero 按下按钮时生成时间表,并希望长按退出循环。

最初我以为我可以制作一个带有 a 的函数,break它可以通过长按退出循环,但是由于在break循环之外,我得到一个语法错误,不管我期望它会被解释为退出函数而不是循环该函数被调用。

另一个想法是制作类似的东西 - 当 false 退出所有循环 - 并且循环中的命令for将该条件切换为 false。这不是我在任何教程中涵盖的内容,并且不确定我会搜索哪些术语来了解是否可以做到这一点。

我怎样才能做到这一点?

0 投票
1 回答
133 浏览

python - Raspberry Pi + GPIOzero:按下按钮以更改循环中的变量(循环继续运行)

我正在尝试制作一种视觉节拍器,在其中按下按钮以更改 bpm。一旦 bpm 为 85,如果再次按下按钮,则返回默认 bpm(120)。这是我 的代码:

这有效。但是,当我尝试将“while”循环中的内容放入函数中时,它不再起作用了。我似乎无法存储新currentBpm值。这是我尝试将其转换为函数的尝试。

我想保存任何bpmChanger返回的值,因为我计划稍后在项目中使用它。

0 投票
1 回答
188 浏览

python-3.x - 如何使用 gpiozero 按钮方法检查某个按钮何时被按下

我目前正在做一个小项目,开始使用 Python 进行物理计算 - 使用树莓派。我正在尝试使用 3 个 LED 和一个按钮制作游戏。3 个 LED 将按特定顺序闪烁不同时间,当琥珀色 LED 亮起时,您必须单击按钮。到目前为止,我已经尝试使用 gpiozero 来识别按钮何时打开并查看它是否在琥珀色 LED 亮起的时间范围内。

游戏代码:https ://codeshare.io/G7qk1j (如果上面的链接不起作用,请告诉我)

代码:

目前,为了让它工作,首先红色 LED 会亮 2 秒,然后琥珀色 LED 会亮(目前为 4 秒只是作为测试)。当琥珀色 LED 亮起时,即第一次被记录下来,稍后会检查按钮是否在范围内被单击。我的问题是,如果在计算此变量(ambTime)之前单击按钮,则第 58 行将触发错误:

我明白为什么会这样,但我不确定如何在琥珀色 LED 亮起之前“阻止”任何按钮点击。如您所见,我有一个 while 循环尝试在前 4 秒内阻止任何命令,但它充当延迟而不是后台循环(因此它不会在 4 秒之后开始下一个代码)。

我注意到这种方法——button.when_pressed = lambda:clickedRight(ambTime, greenTime, time.time()) 它总是检查按钮是否按下,不管这条线在代码中的什么位置,所以如果我把这条线放在 amberLed.on() 之前也没关系

我希望我已经正确解释了这一点,这一直困扰着我很长一段时间,所以任何帮助将不胜感激。我尝试过多处理,但对如何在此处集成它感到非常困惑,但我愿意接受任何建议。我完全理解您可能无法测试您的代码,因此我很乐意尝试任何事情并回应出现的任何问题(如果有的话)。

谢谢你。

0 投票
0 回答
13 浏览

python - Code to register reaction time does not work when logging level is changed to INFO

I have a code which reports user's reaction time by using an LED and a button. The button presses are being recorded in second thread, which changes a specific variable if button was pressed. There is also a lock exchange between main and second thread.

This is the whole code I have created:

The problem from my understanding is on line 35, with logger.debug("Unlocked"). For some reason, swapping or removing the line breaks the code. The same happens when logging level is changed to INFO or the logger is removed completely. LED turns on, but button presses are not registered and nothing happens if the button is pressed. If the line is kept where it is and logging level is set on DEBUG, the code works as expected (reaction time is registered and another one begins).

0 投票
0 回答
71 浏览

python - 显示整数的 Python 诅咒

第一次发帖。我是一个写python程序的新手。我想诅咒显示连接到 Raspberry PI 的传感器的输出,并创建以下代码作为测试以了解它需要以何种方式编码,但是我无法显示 CPU 温度?

感谢阅读,感谢帮助

0 投票
5 回答
604 浏览

python - gpiozero.exc.PinPWMUnsupported:引脚 GPIO7(Raspberry Pi 4B)不支持 PWM

我正在学习我的第一个 Raspberry Pi 项目,同时学习创建巡线机器人的课程。是课程。我按照所有说明操作并按照说明连接了引脚,​​但是当我在 Raspberry Pi OS 上运行代码时,它会引发错误:

gpiozero.exc.PinPWMUnsupported:引脚 GPIO7 不支持 PWM 这是代码:

我试图搜索解决方案并检查了官方文档,但它没有帮助。我怎样才能解决这个问题?

0 投票
0 回答
39 浏览

python - 尝试使用触觉开关更改 Neopixel 动画

我想通过单击触觉开关来更改 NeoPixel 条上的动画。我正在使用 Raspberry Pi 并已正确连接开关和灯条。

  • 点击 1:开启
  • 点击2:第一个动画
  • 点击3:第二个动画
  • 点击4:第三部动画
  • ETC...
  • 点击 8:所有 LED 熄灭

我正在努力让 pi 记录点击次数和运行动画。

按下按钮时,pi 当前正在激活 Comet 动画。之后,下一次按下不会激活下一个动画。

如果我可以提供任何进一步的信息,请告诉我。