启动到 py 脚本然后结束
booting to py script and then ending
我已经将此 "instructable" method 用于 运行 我的启动脚本,它工作正常,但我无法在 Pi 运行ning 时结束程序。我只是在 Raspbian 中使用 GUI。
我按照描述尝试了 pygame 模块,但没有任何反应。
我认为 shell 应该出现在其中我可以看到执行的程序和 ctrl+c 结束如果想要。
我没有结束条件。也许有人会建议一种方法?
脚本是:
import RPi.GPIO as IO
import time
import random
IO.setwarnings(False)
IO.setmode(IO.BCM)
IO.setup(26, IO.OUT)
IO.setup(16, IO.OUT)
IO.setup(13, IO.OUT)
IO.setup(27, IO.OUT)
IO.setup(18, IO.OUT)
IO.setup(17, IO.OUT)
IO.setup(4, IO.IN)
def pattern1():
(IO.output(26, True), IO.output(16, True), IO.output(27, True), IO.output(18, True), IO.output(13, False), IO.output(17, False), time.sleep(0.75), IO.output(16, True), IO.output(13, True), IO.output(18, True), IO.output(17, True), IO.output(26, False), IO.output(27, False), time.sleep(0.75), IO.output(13, True), IO.output(27, True), IO.output(17, True), IO.output(26, True), IO.output(16, False), IO.output(18, False), time.sleep(0.75))
def pattern2():
(IO.output(26, True), IO.output(16, True), IO.output(27, True), IO.output(18, True), IO.output(13, True), IO.output(17, True), time.sleep(0.5))
def pattern_off():
(IO.output(26, False), IO.output(16, False), IO.output(13, False), IO.output(27, False), IO.output(18, False), IO.output(17, False))
def pattern_flasher_x_3():
(pattern_off(), time.sleep(0.5), pattern2(), time.sleep(0.5), pattern_off(), time.sleep(0.5), pattern2(), time.sleep(0.5), pattern_off(), time.sleep(0.5), pattern2(), time.sleep(0.5))
try:
while True:
if IO.input(4)==1:
for i in range(50):
pattern1()
for i in range(1):
pattern_flasher_x_3()
else:
pattern_off()
while False:
pattern_off()
finally:
IO.cleanup()
我环顾四周,发现有一个辅助输入来触发 "quit" 是可行的。
在 while True 和 while False 部分我添加了:
if IO.input(25) == True:
quit()
当我在 Linux 上启动脚本 运行 并想停止它们时,答案是在终端中使用命令 top
来查找进程并然后 sudo kill [processnumber]
停止它。障碍是找到你的过程。它很可能被命名为 Python。与任何涉及 sudo 的命令一样,要非常小心 - 不建议杀死随机进程 ;-) .
我还建议安装 htop,因为界面更漂亮。
如果可以管理的话,添加退出触发器似乎是更好的解决方案
我已经将此 "instructable" method 用于 运行 我的启动脚本,它工作正常,但我无法在 Pi 运行ning 时结束程序。我只是在 Raspbian 中使用 GUI。
我按照描述尝试了 pygame 模块,但没有任何反应。
我认为 shell 应该出现在其中我可以看到执行的程序和 ctrl+c 结束如果想要。
我没有结束条件。也许有人会建议一种方法? 脚本是:
import RPi.GPIO as IO
import time
import random
IO.setwarnings(False)
IO.setmode(IO.BCM)
IO.setup(26, IO.OUT)
IO.setup(16, IO.OUT)
IO.setup(13, IO.OUT)
IO.setup(27, IO.OUT)
IO.setup(18, IO.OUT)
IO.setup(17, IO.OUT)
IO.setup(4, IO.IN)
def pattern1():
(IO.output(26, True), IO.output(16, True), IO.output(27, True), IO.output(18, True), IO.output(13, False), IO.output(17, False), time.sleep(0.75), IO.output(16, True), IO.output(13, True), IO.output(18, True), IO.output(17, True), IO.output(26, False), IO.output(27, False), time.sleep(0.75), IO.output(13, True), IO.output(27, True), IO.output(17, True), IO.output(26, True), IO.output(16, False), IO.output(18, False), time.sleep(0.75))
def pattern2():
(IO.output(26, True), IO.output(16, True), IO.output(27, True), IO.output(18, True), IO.output(13, True), IO.output(17, True), time.sleep(0.5))
def pattern_off():
(IO.output(26, False), IO.output(16, False), IO.output(13, False), IO.output(27, False), IO.output(18, False), IO.output(17, False))
def pattern_flasher_x_3():
(pattern_off(), time.sleep(0.5), pattern2(), time.sleep(0.5), pattern_off(), time.sleep(0.5), pattern2(), time.sleep(0.5), pattern_off(), time.sleep(0.5), pattern2(), time.sleep(0.5))
try:
while True:
if IO.input(4)==1:
for i in range(50):
pattern1()
for i in range(1):
pattern_flasher_x_3()
else:
pattern_off()
while False:
pattern_off()
finally:
IO.cleanup()
我环顾四周,发现有一个辅助输入来触发 "quit" 是可行的。 在 while True 和 while False 部分我添加了:
if IO.input(25) == True:
quit()
当我在 Linux 上启动脚本 运行 并想停止它们时,答案是在终端中使用命令 top
来查找进程并然后 sudo kill [processnumber]
停止它。障碍是找到你的过程。它很可能被命名为 Python。与任何涉及 sudo 的命令一样,要非常小心 - 不建议杀死随机进程 ;-) .
我还建议安装 htop,因为界面更漂亮。
如果可以管理的话,添加退出触发器似乎是更好的解决方案