【发布时间】:2015-06-05 20:12:22
【问题描述】:
现在我有一个 Raspberry pi(B+) 连接到一个由 gpio 值操作的电机控制器 (L928n)。我是python的初学者。电机控制器正在控制遥控卡车电机。 “W”向前,“A”向左,“D”向右,“S”停止。脚本不起作用..我做错了什么? Tkinter 还可以确定何时按下而不是按下某个键?不确定 Tkinter 是否应该用于此类项目。也许 pygame 会更好?
#!/usr/bin/python2.7
import RPi.GPIO as gpio
import time
import sys
import Tkinter as tk
def init():
gpio.setmode(gpio.BOARD)
gpio.setup(7, gpio.OUT)
gpio.setup(11, gpio.OUT)
gpio.setup(13, gpio.OUT)
gpio.setup(15, gpio.OUT)
gpio.setup(3, gpio.OUT)
gpio.output(3, False)
def forward(tf):
gpio.output(7, True)
gpio.output(11, False)
gpio.output(13, False)
gpio.output(15, False)
time.sleep(tf)
gpio.cleanup
def stop(tf):
gpio.output(7, False)
gpio.output(11, False)
gpio.output(13, False)
gpio.output(15, False)
time.sleep(tf)
gpio.cleanup()
def left(tf):
gpio.output(7, True)
gpio.output(11, False)
gpio.output(13, False)
gpio.output(15, False)
time.sleep(tf)
gpio.cleanup()
def right(tf):
gpio.output(7, False)
gpio.output(11, True)
gpio.output(13, False)
gpio.output(15, False)
time.sleep(tf)
gpio.cleanup()
def reverse(tf):
gpio.output(7, False)
gpio.output(11, True)
gpio.output(13, False)
gpio.output(15, False)
time.sleep(tf)
gpio.cleanup()
def key_input(event):
init()
print 'Key:',event.char
key_press = event.char
def key_press(event):
init()
key_press == event.char
sleep_time = 0.030
if key_press == 'w':
forward(sleep_time)
elif key_press == 's':
stop(key_press)
elif key_press == 'a':
left()
elif key_press == 'd':
right(sleep_time)
elif key_press == 'x':
reverse(key_press)
command = tk.Tk()
command.bind('<KeyPress>', key_input)
command.mainloop()
【问题讨论】:
标签: python tkinter raspberry-pi gpio