RPi серво перестает отвечать на код Python через пару секунд - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь использовать сервопривод SG90 в качестве рулевого механизма для автомобиля с радиоуправлением. Я успешно получил ответ «A» (слева) и «D» (справа), но через несколько секунд без ввода каких-либо инструкций он останавливается.отвечает и блокируется под определенным углом.

(видео проблемы) https://youtu.be/K5UR1pHKGgA

import RPi.GPIO as GPIO
import pigpio
GPIO.setmode(GPIO.BOARD)
from time import sleep
import sys, tty, termios, time
import time
from pynput import keyboard

GPIO.setwarnings(False)
GPIO.setup(07, GPIO.OUT)
pwm=GPIO.PWM(07, 50)
pwm.start(7.5)

def getch():
    fd = sys.stdin.fileno()
    old_settings = termios.tcgetattr(fd)
    try:
        tty.setraw(sys.stdin.fileno())
        ch = sys.stdin.read(1)
    finally:
        termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
    return ch





def steering():
    i = 1
    while i == 1:

        char = getch()
        if(char == "a"):
            pwm.ChangeDutyCycle(12.5)
            print (" Left ")
        if(char == "d"):
            pwm.ChangeDutyCycle(2.5)
            print (" Right ")
        if(char == "x"):
            print(" Program Ended ")
            break

steering()
GPIO.cleanup()
...