Управление сервоприводом с помощью PCA9685 и Raspberry Pi - PullRequest
1 голос
/ 27 мая 2020

Я пытаюсь управлять 2 сервоприводами с моего pca9685, который подключен к моему raspberry pi. Я написал код, который работает с ключевыми вводами, как я хочу, но я могу использовать только один ключевой ввод, и тогда я не получаю ответа после первого ключевого ввода. Есть идеи, как исправить проблему?

import time
import adafruit_servokit import ServoKit

kit = ServoKit(channels=8)
key = input()
angle = 0

while angle <= 100:
    if key == "a":
        kit.servo[0].angle = 100
        time.sleep(1)
    elif key = "aa":
        kit.servo[0].angle = 0
        time.sleep(1)

Ответы [ 2 ]

3 голосов
/ 27 мая 2020

Думаю, проблема в назначении клавиш 'a' и 'aa', если вы можете изменить 'aa' с помощью другого ключевого ввода, я думаю, это сработает, потому что при использовании потока input () он обрабатывает поток за символом, поэтому "aa" будет эквивалентом 'a' + 'a', следовательно, вы столкнулись с этой проблемой

0 голосов
/ 28 мая 2020

Проблема заключалась в том, что мой key = input () находился за пределами while l oop. Имея его за пределами l oop, его вызывали только один раз.

import time
import adafruit_servokit import ServoKit

kit = ServoKit(channels=8)
angle = 0

while angle <= 100:
    key = input()
    if key == "a":
        kit.servo[0].angle = 100
        time.sleep(1)
    elif key = "aa":
        kit.servo[0].angle = 0
        time.sleep(1)
...