我需要一个Python脚本来在启动时运行,以便在Raspberry Pi通电时启动一个脚本。该脚本具有一个Tk窗口和一个画布,其背景图像填充了16:9的显示。在背景上的画布上绘制了一些形状。
我已经成功创建了项目的这一部分。它是一个仪表板显示,带有闪烁的箭头,该箭头与连接到GPIO引脚并由按钮触发的LED同步闪烁。我将gpiozero用于按钮和led,将tkinter用于图形。当我从IDE运行它时,一切都很好。
所有图像,形状,按钮,LED,窗口,画布和功能均已正确定义。
这是左转向灯的功能:
def left_blinker():
global left_arrow
if not left_LED.value:
left_LED.on()
elif left_LED.value:
left_LED.off()
if c.itemcget(left_arrow, "fill") == "black":
left_arrow = c.create_polygon(coords, bg="green")
elif c.itemcget(left_arrow, "fill") == "green":
left_arrow = c.create_polygon(coords, bg="black")
if left_button.value:
w.after(300 if left_led.value else 700, left_blinker)
当我从IDE运行它时,所有功能都可以完美运行。它以背景图像居中填充屏幕,并将多边形(箭头)正确放置在GUI上,并在按住按钮时同步闪烁,并在释放按钮时停止闪烁。 python脚本按预期工作。
当我从rc.local启动文件时,它将在开机时自动运行,而没有tkinter窗口,它可以正常工作-指示灯,LED等。但是,当我只添加一个
时w = Tk()
它根本不会自动运行。该脚本以
结尾w.mainloop()
这是rc.local中的条目:
python3 /home/pi/BMW_LR_lights &
exit 0
即使只有Tjk窗口的测试脚本也不会从rc.local运行。由于没有tkinter对象,其他所有东西都运行良好。