我如何让我的代码循环,直到我按下一个按钮(乐高EV3)

2024-09-30 05:20:04 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题很简单。我尝试过使用while循环,重新排列代码,但所发生的只是当我按下按钮时程序启动,或者根本不做任何事情。有人能看出我做错了什么吗

#!/usr/bin/env python3
from ev3dev2.motor import MoveTank, OUTPUT_B, OUTPUT_C
from ev3dev2.button import Button
from ev3dev2.sound import Sound
from time import sleep
import time

sound = Sound()
btn = Button()
tank_pair = MoveTank(OUTPUT_B, OUTPUT_C)

def movement(left_speed, right_speed, rotations):
tank_pair.on_for_rotations(left_speed, right_speed, rotations, brake=True, block=True)


while not btn.any():
movement(20,20,10)
movement(-100,0,1.5)
movement(20,20,10)
sleep(0.01)

while btn.any():
sleep(0.01)
tank_pair.off()
sound.beep()
exit()

Tags: fromimportoutputbuttonsleepspeedwhilepair
2条回答

你可以用这个来打破你的主循环

pip install keyboard

然后

import keyboard

while True:
    # do something
    if keyboard.is_pressed("q"):
        print("q pressed, ending loop")
        break

你的缩进不正确

&13; 第13部分,;
from ev3dev2.motor import MoveTank, OUTPUT_B, OUTPUT_C
from ev3dev2.button import Button
from ev3dev2.sound import Sound
from time import sleep
import time

sound = Sound()
btn = Button()
tank_pair = MoveTank(OUTPUT_B, OUTPUT_C)

def movement(left_speed, right_speed, rotations):
    tank_pair.on_for_rotations(left_speed, right_speed, rotations,       brake=True, block=True)


while not btn.any():
    movement(20,20,10)
    movement(-100,0,1.5)
    movement(20,20,10)
    sleep(0.01)

while btn.any():
    sleep(0.01)
    tank_pair.off()
    sound.beep()
    exit()
和#13;
和#13;

相关问题 更多 >

    热门问题