使用箭头控制步进电机



我正在树莓派上做一个程序,用它我可以使用键盘箭头控制电机。为此,我使用了GPIO Zero模块作为键盘控制机器人的例子。我设法根据需要更新了代码,但当我按键时,什么也没发生。

有人能帮我解决这个问题吗?提前感谢

为了控制步进电机,我使用阿达弗瑞模块。

import curses
import time
from gpiozero import Robot
from adafruit_servokit import ServoKit
kit = ServoKit(channels=8)

def cameraDown():
kit.servo[0].angle = 0
time.sleep(0.01)

def cameraUp():
kit.servo[0].angle = 180
time.sleep(0.01)

def cameraFront():
kit.servo[0].angle = 90
time.sleep(0.01)

def cameraFace():
kit.servo[0].angle = 70
time.sleep(0.01)
actions = {
curses.KEY_UP:  cameraDown(),
curses.KEY_DOWN:    cameraUp(),
curses.KEY_LEFT:    cameraFront(),
curses.KEY_RIGHT:   cameraFace(),
}

def main(window):
next_key = None
while True:
curses.halfdelay(1)
if next_key is None:
key = window.getch()
else:
key = next_key
next_key = None
if key != -1:
# KEY PRESSED
curses.halfdelay(3)
action = actions.get(key)
if action is not None:
action()
next_key = key
while next_key == key:
next_key = window.getch()
# KEY RELEASED
cameraFace()

curses.wrapper(main)

问题出现在actionsdict中,在该dict中您为每个键提供了其中一个函数返回的值。你在这里的意思是赋予它函数本身。去掉括号:

actions = {
curses.KEY_UP:  cameraDown,
curses.KEY_DOWN:    cameraUp,
curses.KEY_LEFT:    cameraFront,
curses.KEY_RIGHT:   cameraFace
}

最新更新