Hallo, ich komme bei diesem Tutorial einfach nicht weiter:
https://tutorials-raspberrypi.de/raspbe ... sammenbau/
Wenn ich den ersten Python code dem Pi ausführe passiert nichts. Wenn
ich versuche, den zweiten code auszuführen, bekomme ich nur die
Fehlermeldung: ImportError: cannot import name 'L293D' from 'l293d'
(/usr/local/lib/python3.9/dist-packages/l293d/__init__.py).
Ich habe alle Bibliotheken mit pip installiert, bzw. geprüft, welche nicht
installiert sind. Außerdem habe ich die Dateien mit sudo rechten
ausgeführt. Ich hoffe sie können mir helfen.
Die Kabel im Breadbord sitzen nicht wirklich stramm, auf dem Pi aber schon. Kann das ein Fehler sein?
Der Code ist auf der Webseite
Vielen Dank im Voraus
Raspberry Pi mit L293D funktioniert nicht
Ich mag mir kein läneres Tutorial durchlesen um dann zu raten, welchen Code du meinst und was daran der Fehler sein könnte.
Schreib doch bitte, was genau du tust, was passiert und was du stattdessen erwartest.
Zu dem fehlerhaften Import:
Ich weiß nicht, welches Betriebssystem du auf dem Raspo installiert hast, aber die meisten Linux-Systeme installieren aus historischen Gründen mit "python" ein Python 2 (längst abgekündigt) und mit "python3" ein Python 3. Und entsprechend gibt es ein pip für die 2er Umgebung und ein pip3 für die 3er. Möglicherweise hast du also für das falsche Environment installiert.
Aber das ist geraten. Du musst schon etwas mehr ins Detail gehen.
Schreib doch bitte, was genau du tust, was passiert und was du stattdessen erwartest.
Zu dem fehlerhaften Import:
Ich weiß nicht, welches Betriebssystem du auf dem Raspo installiert hast, aber die meisten Linux-Systeme installieren aus historischen Gründen mit "python" ein Python 2 (längst abgekündigt) und mit "python3" ein Python 3. Und entsprechend gibt es ein pip für die 2er Umgebung und ein pip3 für die 3er. Möglicherweise hast du also für das falsche Environment installiert.
Aber das ist geraten. Du musst schon etwas mehr ins Detail gehen.
Hallo, dies ist der erste code:
und dies der zweite:
Ich benutze Pip3 mit Python3.
Außerdem läuft auf dem Raspberry Pi das Raspberry Pi OS , welches auf Debian bassiert
Vielen Dank für den Vorschlag
Code: Alles auswählen
import RPi.GPIO as GPIO
import time
import threading
#GPIO.setmode(GPIO.BCM)
#GPIO.setwarnings(False)
class L293D():
DIST_PER_SEC = 35.0 # cm/s
SEC_PER_TURN = 2.087 # seconds per full turn (depending on the base material, use forwardLeft(), stop() and time.time() to measure the time)
def __init__(self, left_pin1, left_pin2, right_pin1, right_pin2):
self.MOTOR_LEFT_PIN1 = left_pin1
self.MOTOR_LEFT_PIN2 = left_pin2
self.MOTOR_RIGHT_PIN1 = right_pin1
self.MOTOR_RIGHT_PIN2 = right_pin2
GPIO.setup(self.MOTOR_LEFT_PIN1, GPIO.OUT)
GPIO.setup(self.MOTOR_LEFT_PIN2, GPIO.OUT)
GPIO.setup(self.MOTOR_RIGHT_PIN1, GPIO.OUT)
GPIO.setup(self.MOTOR_RIGHT_PIN2, GPIO.OUT)
def forwardLeft(self):
GPIO.output(self.MOTOR_LEFT_PIN1, GPIO.LOW)
GPIO.output(self.MOTOR_LEFT_PIN2, GPIO.HIGH)
GPIO.output(self.MOTOR_RIGHT_PIN1, GPIO.LOW)
GPIO.output(self.MOTOR_RIGHT_PIN2, GPIO.LOW)
return time.time()
def forwardRight(self):
GPIO.output(self.MOTOR_RIGHT_PIN1, GPIO.LOW)
GPIO.output(self.MOTOR_RIGHT_PIN2, GPIO.HIGH)
GPIO.output(self.MOTOR_LEFT_PIN1, GPIO.LOW)
GPIO.output(self.MOTOR_LEFT_PIN2, GPIO.LOW)
return time.time()
def forward(self):
GPIO.output(self.MOTOR_LEFT_PIN1, GPIO.LOW)
GPIO.output(self.MOTOR_LEFT_PIN2, GPIO.HIGH)
GPIO.output(self.MOTOR_RIGHT_PIN1, GPIO.LOW)
GPIO.output(self.MOTOR_RIGHT_PIN2, GPIO.HIGH)
return time.time()
def backwardLeft(self):
GPIO.output(self.MOTOR_RIGHT_PIN1, GPIO.HIGH)
GPIO.output(self.MOTOR_RIGHT_PIN2, GPIO.LOW)
GPIO.output(self.MOTOR_LEFT_PIN1, GPIO.LOW)
GPIO.output(self.MOTOR_LEFT_PIN2, GPIO.LOW)
return time.time()
def backwardRight(self):
GPIO.output(self.MOTOR_RIGHT_PIN1, GPIO.HIGH)
GPIO.output(self.MOTOR_RIGHT_PIN2, GPIO.LOW)
GPIO.output(self.MOTOR_LEFT_PIN1, GPIO.LOW)
GPIO.output(self.MOTOR_LEFT_PIN2, GPIO.LOW)
return time.time()
def backward(self):
GPIO.output(self.MOTOR_LEFT_PIN1, GPIO.HIGH)
GPIO.output(self.MOTOR_LEFT_PIN2, GPIO.LOW)
GPIO.output(self.MOTOR_RIGHT_PIN1, GPIO.HIGH)
GPIO.output(self.MOTOR_RIGHT_PIN2, GPIO.LOW)
return time.time()
def stop(self):
GPIO.output(self.MOTOR_LEFT_PIN1, GPIO.LOW)
GPIO.output(self.MOTOR_LEFT_PIN2, GPIO.LOW)
GPIO.output(self.MOTOR_RIGHT_PIN1, GPIO.LOW)
GPIO.output(self.MOTOR_RIGHT_PIN2, GPIO.LOW)
def forwardDistance(self, dist):
self.forward()
threading.Timer(dist/self.DIST_PER_SEC, self.stop)
def backwardDistance(self, dist):
self.backward()
threading.Timer(dist/self.DIST_PER_SEC, self.stop)
und dies der zweite:
Code: Alles auswählen
import RPi.GPIO as GPIO
import time
from l293d import L293D
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
l = L293D(17,27,23,24)
l.stop()
for i in range(20):
l.forward()
time.sleep(0.5)
l.forwardRight()
time.sleep(0.5)
l.stop()
Außerdem läuft auf dem Raspberry Pi das Raspberry Pi OS , welches auf Debian bassiert
Vielen Dank für den Vorschlag
Das sieht komisch aus. Denn laut Fehlermeldung ist das ein systemweit installiertes Package, dieses l293d. Aber in deiner Anleitung soll das eigentlich einfach nur ein Modul neben deinem kleinen Steuerskript sein. Da musste also nix installiert werden. Ich wuerde das also entweder wieder entfernen mit pip uninstall, oder einfach mal die erste Datei umbenennen in zB l293d_test, und den import auf l293d_test anpassen. Und schauen, ob das dann geht.