Variablen können nicht auf bestimmte Werte gesetzt werden sobald diese in einer „während“ Schleife ist

Hallo,

Ich kann keine variable auf „wahr“ oder „falsch“ setzen, solange diese auch in einer „während mache“ Schleife befindet.

Mein Ziel ist es dafür zu sorgen, dass diese Schleife nur läuft, solange die Variable „GO“ wahr ist. Sobald diese durch ein Tastendruck (B) auf „falsch“ gesetzt wird, soll ich Schleife aufhören. Allerdings kann ich diese variable nicht verändern, solange diese sich in der Schleife befindet. (wie im Video zu sehen funktioniert das verändern nicht, bis ich diese aus der Schleife entferne).

Ich würde mich sehr über eine Rückmeldung freuen. Vor allem, weil wir Mittwoch eine Klassenarbeit „schreiben“ in der wir dieses Motion Kit Programmieren müssen.

In der rechten dauerhaft Schleife darf nicht während go stehen, sondern wenn go.

Verwende bitte keine zwei dauerhaft Schleifen. Die Symbole können bei den Button Ereignissen geschaltet werden.

Wenn es immer noch nicht funktioniert, beschreibe den Fehler genau.
Ein Programm teilen geht oben über die 3 Punkte und dann den angezeigten Link hier rein kopieren
Dann kann das Programm jeder gleich sehen und testen.

Ach so, okay d.h. so müsste das jetzt funktionieren?

Hättest du zufälligerweise auch eine Idee wie ich für das Motion Kit ein Linienfolger programmieren kann.

Ich habe bereits im Internet recherchiert, jedoch nur ein Programm gefunden, das eine veraltete Version der „Motion Kit“-Erweiterung verwendet. Dieses ließ sich nicht erfolgreich übertragen. Einige Ideen konnte ich dennoch mitnehmen, zum Beispiel, dass ein Motor schneller und der andere langsamer laufen muss, um Kurven sauber zu fahren.

Trotzdem fährt mein Auto die Linie bisher nur gegen den Uhrzeigersinn zuverlässig nach. In die andere Richtung funktioniert es – aus mir unbekannten Gründen – nicht.
Auch, die Erkennung, dass das Auto vor Linie abbekommen ist, funktioniert bei meinem Versuch leider nicht.

Ich finde gerade kein Spurfolger Beispiel mit Blöcken und möchte das an die anderen Mitglieder im Forum weiter geben.

Zur schnellen Rückkehr auf die Spur ist es besser, die Motoren langsam in entgegengesetzte Richtungen fahren zu lassen. Dann dreht es auf der Stelle.

Die einfachen Beispiele setzen voraus, dass immer eine Seite dunkel ist. Außerhalb der Spur bleibt es stehen bzw. fährt gar nicht los. Man kann es dann drehen lassen, bis es vielleicht in entgegengesetzter Richtung die Spur findet. Oder die letzte Richtung in einer Variablen speichern.

Wenn go schon eine Boolean Variable ist (mit spitzen Ecken), kannst du sie direkt als Bedingung verwenden, also ‚wenn go‘ und nicht ‚wenn go == wahr‘. Und für falsch ‚wenn not go‘.

Vielen Dank für deine Rückmeldung @asp.net,

so ähnlich hab ich es auch gemacht. Ich habe dafür gesorgt, dass je nachdem ein Motor schneller läuft als der andere. Mit dem Ergebnis muss ich sagen, bin ich auch relativ zufrieden. Er kann den Kreis gut nachfahren.

Allerdings funktioniert es aktuell nicht, dass er auf weißem Untergrund stehen bleibt. Da bin ich aktuell etwas ratlos. Weil eigentlich ist die Bedingung meiner Meinung richtig umgesetzt.

Du klingst, als hättest du Ahnung von dem motion kit. Wusstest du vielleicht, warum das Auto bei weißem Untergrund nicht stehen bleibt sondern sich einfach im Kreis dreht?

Würde mich sehr über eine Antwort freuen.

Viele Grüße Jannis

grafik

Hier solltest Du UND verwenden wie bei dunkel/dunkel.

Oder einfach nur ansonsten ohne Abfrage

Hallo,

und das hat leider nichts bewirkt. Das Auto dreht sich weiter im Kreis.

MotionKit habe ich nicht, aber CalliBot.

Bei hell-hell landest du in der 2. Bedingung, weil dort nicht getestet wird, ob links dunkel ist.

Du musst 3 Mal ‚und‘ nehmen:
l dunkel und r dunkel
l hell und r dunkel
l dunkel und r hell
und beim 4. (hell, hell) reicht ansonsten für Stop.

FG Lutz

stimmt, hab ich nicht drauf geachtet. Ausrede: Am Handy ist alles so klein :wink:

Michael