Tach alle zusammen,
ich versuche derzeit meinen Roboter per Tastatur (via SSH/VNC) mithilfe von pygame zu steuern. Doch leider funktioniert das nicht so ganz wie ich es mir erhofft habe. Hier ist mein Code:
import pygame, sys
from data import *
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
m1a = 17
m1b = 18
m2a = 22
m2b = 23
GPIO.setup(m1a, GPIO.OUT)
GPIO.setup(m1b, GPIO.OUT)
GPIO.setup(m2a, GPIO.OUT)
GPIO.setup(m2b, GPIO.OUT)
pygame.init()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
goLeft()
print("Left Arrow Pressed")
if event.key == pygame.K_RIGHT:
print("Right Arrow Pressed")
goRight()
if event.key == pygame.K_UP:
forwards()
time.sleep(0.5)
if event.key == pygame.K_DOWN:
backwards()
time.sleep(0.5)
GPIO.cleanup()
Alles anzeigen
Ich denke der Code ist halbwegs selbsterklärend. Ich weiß, dass ich, damit er wieder aufhört zu fahren, noch ein wenig am Code arbeiten muss aber das soll erst einmal zweitrangig sein. Im Moment fährt er noch nicht einmal los und das würde ich gerne ändern Ich nutze den Ryanteck Motor Controller, falls das wichtig ist. Und nicht wundern, forwards(), goRight() usw. habe ich in data.py schon geschrieben. Sieht immer in etwa so aus
def forwards():
GPIO.output(m1a, 1)
GPIO.output(m1b, 0)
GPIO.output(m2a, 1)
GPIO.output(m2b, 0)
Es funktioniert auch alles mit den Motoren super, nur das "live" steuern halt noch nicht.
Ich hoffe mir kann jemand weiterhelfen und erklären, warum das bisher nicht funktioniert.
MfG Jaymaster