python - 在 Raspberry Pi 上连续运行 Pimoroni Buttonshim 的 Python 代码导致卡住

标签 python raspberry-pi

我正在使用 Raspberry Pi 3B+ 在屏幕上显示一个/多个网站,最近附加了一个 Pimoroni Button-Shim .

自从编写了一些 Python 代码(如下)以来,我的按钮一直可以工作,但 Raspberry Pi 似乎在大约 18 小时后卡住了。我从来没有亲眼目睹过这种情况,但返回时它已经被卡住了三遍。

在我编写这段代码之前,它从未这样做过,并假设它可能与编写得不好的代码有关,而不是焊接本身。

我有一些使用 Python 的经验,但从未接触过连续运行的程序,处理程序对我来说是一个新概念。

代码是Python 3,使用Pimoroni提供的库,并通过LXDE-pi/autostart启动。

如果您对如何提供帮助有任何想法,我们将不胜感激,我在谷歌上进行了一些搜索,但并不真正知道任何资源或输入什么来找到解决方案。

它在硬重启后立即起作用,我不太确定下一步该去哪里。


#!usr/bin/python3
import buttonshim
from time import sleep
import os

sleep(10)
os.system('chromium-browser --noerrdialogs --incognito --kiosk  url1')
buttonshim.set_pixel(221,36,33)

@buttonshim.on_press(buttonshim.BUTTON_A)
def handler(button, pressed):
    os.system('pkill chromium-browser')
    os.system('chromium-browser --noerrdialogs --incognito --kiosk https://www.nytimes.com')
    buttonshim.set_pixel(33, 106, 224)

@buttonshim.on_press(buttonshim.BUTTON_B)
def handler(button, pressed):
    os.system('pkill chromium-browser')
    os.system('chromium-browser --noerrdialogs --incognito --kiosk url1')
    buttonshim.set_pixel(0xFF, 0x00, 0xFF)


@buttonshim.on_press(buttonshim.BUTTON_C)
def handler(button, pressed):
    os.system('vcgencmd display_power 0')

@buttonshim.on_press(buttonshim.BUTTON_D)
def handler(button, pressed):
    os.system('vcgencmd display_power 1')

while True:
    sleep(10)

代码一开始按预期工作,但最终却不然。

最佳答案

跟进:

我显着增加了 sleep 时间 - 到 2000,并按照另一次关于 numpy 库占用大量 CPU 的讨论中的说明进行操作 - link

从那时起我就再没有遇到过卡住的问题

关于python - 在 Raspberry Pi 上连续运行 Pimoroni Buttonshim 的 Python 代码导致卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56110111/

相关文章:

python - 如何比较 2 "Friends"并查看他们是否在彼此的好友列表中?

python - 在 Python 中查找给定数组中最小值的索引

python - 如何限制 selenium python 中的屏幕截图高度?

linux - Raspberry pi 不允许使用 wget 下载图像

linux - 树莓派内核交叉编译时一些命令的含义

compilation - Raspberry Pi : undefined references to COMXImage and g_OMXImage上的XBMC 13.2链接器错误

python - 将 defaultdict 与多处理一起使用?

python - 将内容为utf-8字符串的unicode转成str

go - 无法运行 go 权限被拒绝?

c - 在没有 LF CR 的情况下处理传入的串行流