0

这个问题很简单。我尝试过使用 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()
4

2 回答 2

0

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

pip install keyboard

然后

import keyboard

while True:
    # do something
    if keyboard.is_pressed("q"):
        print("q pressed, ending loop")
        break
于 2021-04-13T21:08:11.700 回答
0

您的缩进不正确。

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()

于 2021-04-13T21:26:06.810 回答