python按什么键停止运行_如何让python函数只在按键时运行?

我试着做一个简单的程序,当你按住'w'时,它用forward ()前进,但是当你放开它,它用stop()来停止马达。目前,我只能让它继续前进,当按下“w”时,只有当按下另一个键时停止。

这是我的密码#!/usr/bin/env python3

# so that script can be run from Brickman

import termios, tty, sys, time

from ev3dev.ev3 import *

# attach large motors to ports B and C, medium motor to port A

motor_left = LargeMotor('outA')

motor_right = LargeMotor('outD')

motor_a = MediumMotor('outC')

#==============================================

def getch():

fd = sys.stdin.fileno()

old_settings = termios.tcgetattr(fd)

tty.setcbreak(fd)

ch = sys.stdin.read(1)

termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)

return ch

#==============================================

def fire():

motor_a.run_timed(time_sp=3000, speed_sp=600)

#==============================================

def forward():

motor_left.run_forever(speed_sp=1050)

motor_right.run_forever(speed_sp=1050)

#==============================================

def back():

motor_left.run_forever(speed_sp=-1050)

motor_right.run_forever(speed_sp=-1050)

#==============================================

def left():

motor_left.run_forever(speed_sp=-1050)

motor_right.run_forever(speed_sp=1050)

#==============================================

def right():

motor_left.run_forever(speed_sp=1050)

motor_right.run_forever(speed_sp=-1050)

#==============================================

def stop():

motor_left.run_forever(speed_sp=0)

motor_right.run_forever(speed_sp=0)

#==============================================

print("ready")

k = getch()

print(k)

if k == 'w':

forward()

if k == 's':

back()

if k == 'a':

left()

if k == 'd':

right()

if k == 'f':

fire()

if k == ' ':

stop()

if k == 'q':

stop()

exit()

有什么办法让stop()在“w”未按下时运行?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值