Hallo,
ich arbeite immer noch an meinem Roboter Projekt.
Erst hab ich den Roboter (Raupenfahrgestell) mit der Tastatur gesteuert, da funktioniert das alles ganz gut.
Jetzt hab ich die Tastaturbefehle raus genommen und versuche das Ding mit einem Ultraschall Sensor von alleine fahren zu lassen.
Das Sensorscript "Sensor" funktioniert und wird importiert. Jetzt bekomm ich aber Fehlermeldungen wenn ich meinen Fahrbefehle ausführen will, welche ich vorher bei Tastatureingabe nicht hatte. Seltsam.
Hier mal der Code:
#!/usr/bin/python3
# robotank.py
#Steuerung vor, zurück, links, rechts über H-Brücke- AUTOMATISCH
#
#MIT EXPERIMENTIERBOARD DAHER BOARD
#
#Verdrahtung zwischen GPIO und H-Brücke
#
#PIN-Nr .. H-Brücke
#----------------
#GPIO 15 .. IN 1
#GPIO 13 .. IN 2
#GPIO 16 .. IN 3
#GPIO 18 .. IN 4
import RPi.GPIO as GPIO
import time
import sys
import random
from sensor import distance
GPIO.setmode(GPIO.BOARD)
MotorR1 = 15
MotorR2 = 13
MotorL1 = 16
MotorL2 = 18
GPIO.setup(MotorR1, GPIO.OUT)
GPIO.setup(MotorR2, GPIO.OUT)
GPIO.setup(MotorL1, GPIO.OUT)
GPIO.setup(MotorL2, GPIO.OUT)
def vor():
GPIO.output(MotorR1, 1)
GPIO.output(MotorR2, 0)
GPIO.output(MotorL1, 0)
GPIO.output(MotorL2, 1)
def stop():
GPIO.output(MotorR1, 0)
GPIO.output(MotorR2, 0)
GPIO.output(MotorL1, 0)
GPIO.output(MotorL2, 0)
def zurueck():
GPIO.output(MotorR1, 0)
GPIO.output(MotorR2, 1)
GPIO.output(MotorL1, 1)
GPIO.output(MotorL2, 0)
def links():
GPIO.output(MotorR1, 1)
GPIO.output(MotorR2, 0)
GPIO.output(MotorL1, 1)
GPIO.output(MotorL2, 0)
def rechts():
GPIO.output(MotorR1, 0)
GPIO.output(MotorR2, 1)
GPIO.output(MotorL1, 0)
GPIO.output(MotorL2, 1)
try:
dist = distance()
if dist < 25:
print("Abstand zu klein")
zurueck()
if dist > 25:
print("Abstand ok")
vor()
if dist == 25:
print ("stop")
#stop()
#GPIO.cleanup()
#sys.exit()
except KeyboardInterrupt:
stop()
GPIO.cleanup()
Alles anzeigen
Und das ist der Fehler welcher ausgeworfen wird
pi@raspberrypi ~/tank $ sudo ./robotank.py
Abstand: 3.3478736877441406
Abstand zu klein
Traceback (most recent call last):
File "./robotank.py", line 107, in <module>
zurueck()
File "./robotank.py", line 56, in zurueck
GPIO.output(MotorR1, 0)
RuntimeError: The GPIO channel has not been set up as an OUTPUT
sieht so aus als ob zurueck() nicht definiert wäre und die GPIO nicht definiert sind, ist doch aber ganz oben gemacht..
Check das nicht, ich hab nur die Tastaturbefehle raus genommen und neu den TRY loop eingefügt, der Rest ist gleich.....