Quellcode anpassung meines Roboters

Ein neuer Artikel wurde veröffentlicht
  • Vergleich mal deine measure Funktion mit meiner... Tipp: bei dir fehlen 2 Zeilen. Der Trigger muss nur kurz High gesetzt werden, also ein "Echo" gesendet werden, das macht deine Funktion nicht.

  • Habe es jetzt so, aber kommt immer noch aufs gleiche raus

  • Ich sprach von nur 2 Zeilen. Wenn du das jetzt so änderst mit der while dann blockiert die while in distance() die andere while in main() (oder wo auch immer die andere ist)...


    Wird das Script gestartet existiert nur ein Thread. Die Datei wird von oben nach unten verarbeitet. Ein Befehl blockiert das Script derweil er beschäftigt ist. Eine Schleife wiederholt sich solange wie dessen Bedingung zutrifft.

    Das wiederum bedeutet, das eine while solange den Rest des Scripts blockiert, wie sie wiederholt wird... Deshalb hab ich ja irgendwo am Anfang des Threads erwähnt dass man die Distanzmessung auslagern müsste, abkoppeln vom Script, einen zusätzlichen Thread starten - damit unabhängig von Steuerbefehlen weiterhin Messungen vorgenommen werden können und das Gefährt nicht verunglückt.


    Also noch mal: Du brauchtest nur 2 Zeilen ändern/einfügen: Das High setzen des TRIGGER-GPIO's, extrem kurzes warten um die Zeitspanne des Triggers zu beeinflussen und direkt danach wieder Low setzen. Dadurch wird ein Ultraschall-Signal (echo) ausgesendet, was dann von einem Objekt reflektiert wird und durch den ECHO-GPIO wieder empfangen wird. (natürlich eigentlich durch den Sensor....)