나는 라즈베리 파이 제로가있는 PiCar를 제작 중입니다. 나는 두 개의 DC 모터를 연결하는 L293D 칩셋을 사용하고 난 모든이 가이드에 따라 작업이 있습니다 라스베리 파이 카 스티어링
은 현재 내가 왼쪽과 오른쪽, 뒤로, 앞으로 자동차를 구동하는 기본적인 스크립트를 작성했습니다. 그러나 몇 가지 문제가 있습니다. 먼저 전진 또는 후진하지 않고 차를 좌우로 조종 할 수 있습니까? 또한 내가 어떻게 wasd의 주요 보도와 함께 자동차를 조종하고 cntrl 키를 사용하여 가속시킬 수 있습니까? 액셀러레이터를 움직이는 자동차 게임과 같이 조종하는 것이 얼마나 힘들겠습니까?하지만 풀어 놓으면 속도가 느려 집니까? 여기에 내가 현재 가지고있는 코드가 있지만 매번 Enter를 눌러야합니다.import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
#left motor
in2 = 10
in1 = 9
en1 = 11
#right motor
in3 = 24
in4 = 23
en2 = 25
#setup motors
GPIO.setup(in2,GPIO.OUT)
GPIO.setup(in1,GPIO.OUT)
GPIO.setup(en1,GPIO.OUT)
GPIO.setup(in3,GPIO.OUT)
GPIO.setup(in4,GPIO.OUT)
GPIO.setup(en2,GPIO.OUT)
def forwards():
GPIO.output(in2,GPIO.HIGH)
GPIO.output(in1,GPIO.LOW)
GPIO.output(en1,GPIO.HIGH)
GPIO.output(in3,GPIO.HIGH)
GPIO.output(in4,GPIO.LOW)
GPIO.output(en2,GPIO.HIGH)
def backwards():
GPIO.output(in2,GPIO.LOW)
GPIO.output(in1,GPIO.HIGH)
GPIO.output(en1,GPIO.HIGH)
GPIO.output(in3,GPIO.LOW)
GPIO.output(in4,GPIO.HIGH)
GPIO.output(en2,GPIO.HIGH)
def left():
GPIO.output(in2, GPIO.LOW)
GPIO.output(in1, GPIO.LOW)
GPIO.output(en1, GPIO.LOW)
def right():
GPIO.output(in3, GPIO.LOW)
GPIO.output(in4, GPIO.LOW)
GPIO.output(en2, GPIO.LOW)
def stop():
GPIO.output(en1,GPIO.LOW)
GPIO.output(en2,GPIO.LOW)
#setup pwm
pwm_right = GPIO.PWM(en2, 100)
pwm_left = GPIO.PWM(en1, 100)
while True:
cmd = raw_input("Command, w = forward/s = backward/x = stop (add a number between 0..9 for speed eg f6):")
if len(cmd) > 0:
direction = cmd[0]
if direction == "w":
forwards()
elif direction == "s":
backwards()
elif direction == "a":
left()
elif direction == "d":
right()
elif direction == "x":
stop()
else:
stop();
speed = int(cmd[1]) * 11
pwm_left.start(speed)
pwm_right.start(speed)
GPIO.cleanup()
멋지다. 나는 그것에 대해서도 살펴볼 것이다. – Hacky