Fehler im Quelltext des Roboters

Ein neuer Artikel wurde veröffentlicht
  • Hallo zusammen,


    ich habe in meinem untenstehenden Quellcode die folgende Fehlermeldung.


    File "Motor.py", line 38 while GPIO.input(Echo.input) == 0: ^ SyntaxError: invalid syntax


    Ich vermute das es ein Fehler in der Schleife ist.


    Verbaut wurde:

    - 1x HC-SR04 (soll später auf 3 Stk. erweitert werden)

    - 1x Getriebemotor von joy-it (soll später auf 2. Stk erweitert werden)

    -1x Motorsteuerung l298n


    Der Roboter soll erstmal nur die folgenden Funktionen können:

    - In alle Richtungen fahren

    - Wenn der Abstand zu einem Gegenstand unter einem gewissen wert liegt soll gewendet werden.


    Die Kommentare im Quellcode habe ich zu meiner Dokumentation verwendet. Ich hoffe das Ihr die Kommentare versteht. Falls diese an der falschen Stelle gesetzt oder unverständlich sind bitte ich zu entschuldigen.^^


    Könnt Ihr behilflich sein?:danke_ATDE:


    P.s. Arbeite seit ca. 4 Wochen mit dem Pi und habe daher noch nicht so die Erfahrung auf dem Gebiet mit Python und dem Raspberry.


    Schönen Gruß an alle Bastler

    Bastelstube



  • Du musst die ganzen whiles im try/except eine Ebene einrücken. Das try und die erste while sind auf der ersten Ebene, obwohl das try nicht geschlossen wurde.

  • Habe die whiles jetzt alle eins weiter Eingerücjt. Wie schließe ich das Try denn?:conf:


  • Beitrag von Bastelstube ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Hier nochmal der aktuelle Quellcode


  • sleeptime.HC-SR04 = 1

    so benennt man doch keine Variablen.


    1. Der Interpretiert zwischen sleeptime.HC und SR04 das "-" als Minusoperand

    2. ein Punkt in einer Variable ist auch unvorteilhaft


    Bennen das mal in SLEEPTIME_HC_04 um. Natürlich alle vorkommenden Variablen so dann bennenen.


    EDIT: Und deine GPIO Schaltungen mit RPi.GPIO denke ich sind so auch nicht richtig.

    Wo wird der Variablenname Echo und Trigger definiert? und das Echo.output ist ann anschließend auch falsch mit dem "."


    2. EDIT: Mit welchem Editor programmierst du?

    Ein gefällt mir tut nicht weh :thumbup:

    Erledigte Threads bitte als erledigt markieren

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von Hofei ()


  • Danke, dass hat geholfen.


    Doch leider geht es weiter mit den Fehlern


    Traceback (most recent call last): File "Motor.py", line 7, in <module> GPIO.setmode(GPIO.BOARD) ValueError: A different mode has already been set!

  • Python
    1. GPIO.setmode(GPIO.BCM)
    2. #Pins Motoren
    3. GPIO.setmode(GPIO.BOARD)

    Das hier wird dir auch noch Probleme bereiten. Entweder die Pinbelegung auch BOARD oder auf BCM konfigurieren. Beides geht nicht. Welches das richtige ist, ist abhängig davon nach welchen Schema du deine Schaltung jetzt verdrahtet hast.


    Editorempfehlung: PyCharm

    Hilft dir auch leichter Fehler zu entdecken.

  • Zitat

    Python

    1. GPIO.setmode(GPIO.BCM)
    2. #Pins Motoren
    3. GPIO.setmode(GPIO.BOARD)

    Das hier wird dir auch noch Probleme bereiten. Entweder die Pinbelegung auch BOARD oder auf BCM konfigurieren. Beides geht nicht. Welches das richtige ist, ist abhängig davon nach welchen Schema du deine Schaltung jetzt verdrahtet hast.

    So dämlich das jetzt klingt, ich bin immer davon ausgegangen, dass BCM für Schaltungen ohne Breadboard steht und BOARD für Schaltungen wo ein Breadboard zusätzlich verwendet wird.^^

  • Zitat

    Desweiteren würd ich dir gleich noch als Ersatz für RPi.GPIO (veraltetes nicht mehr weiterentwickeltes Modul) gpiozero empfehlen. Du hast eh nur ein paar Zeilen Code was zum tauschen wären...


    Der Code soll ja später noch um einiges erweitert werden. Hier geht es ja zunächst nur mal um die Grundfunktionen.

    Was müsste denn geändert werden, da ich von diesem Modul noch nichts gehört habe?

  • Wie müsste ich denn den nachfolgenden Teil zum Beispiel umschreiben sodass er auf die gpiozero Library passt da ich momentan überhaupt keinen Ansatz habe wie dies funktioniert?