Liebes Forum,
folgendes Problem hat sich ergeben bei dem ich hoffe, dass ihr mir helfen könntet.
Der Ev3 soll eine Reihe von Fahrten nach vorne, nach links und rechts machen. Alles ist schön der Reihe nach einprogrammiert. Ab einer bestimmten Programmlänge führt er die rechts/links Schritte (also das Vorwärts- bzw. Rückwärtsdrehen der beiden großen Motoren) nicht mehr planmäßig aus, sondern stottert etwas, wartet, dreht dann in eine andere Richtung als gewünscht ab und bleibt irgendwann stehen. Ich verfüge über zwei EV3's. Auch der zweite macht zeigt diese Bewegungen.
Meine Fragen:
- Kann es sein, dass der EV3 eine begrenzte Programmlänge hat? Aus meiner Sicht wäre diese dann schon recht kurz. Wir reden hier von 2-3 Meter Länge der Fahrt.
- Wäre evtl. ein Systemreset und ein neues Aufspielen der Firmware eine mögliche Lösung?
Vielen Dank im Voraus für eure Tipps/Hilfen
DaKne
Hallo,
ohne das Programm zu kennen und Dir zu nahe treten zu wollen:
Der EV3 ist schon länger auf dem Markt, ausgiebig im Einsatz und daher doch recht "ausgereift". Sofern das von Dir beschriebene Phänomen HW- oder systembedingt sein sollte würde ich behaupten, das wäre sicherlich schon anderen vor Dir aufgefallen, insbesondere da Dein Programm nach eigener Aussage ja nicht sonderlich lang zu sein scheint.
Somit stelle ich die These auf, dass es an Deinem Programm liegt.
Aus eigener Programmiererfahrung (nicht nur mit Mindstorms, sondern allgemein) weiß ich, dass seltsame Phänomene oftmals eine ganz banale Ursache haben, auf die man vielleicht nicht sofort kommt... eine Schleife, die schlichtweg anders zählt als man dachte, irgendein blöder nicht berücksichtigter Sonderfall, falsch deklarierte Variablen, falsch übergebene Werte aus anderen Prozeduren etc.
Man sieht seinen Code an der fraglichen Stelle an, denkt "da stimmt doch alles" - und tatsächlich ist der Code vielleicht auch ok, aber das Fehlverhalten liegt an ganz anderer Stelle.
Oder, um es flapsig zu sagen: Du hast ein 95%-Problem (95% der SW-Probleme sitzen vor dem Bildschirm)
Grüße
Micha
Einen Fehler in der Software selbst halte ich wie mein Vorredner für unwahrscheinlich. Bei einer einfachen Folge von Bewegungen sollten keine großen Bugs auftreten. Ebenso wäre es hilfreich, das Programm sehen zu können und zu wissen, in welcher Programmierumgebung es geschrieben wurde (LabView/Scratch).
Bei Motoren können viele Dinge zu unerwartetem Verhalten führen. Sind die richtigen Anschlüsse für die Motoren in der Software ausgewählt? Lassen sich die Motoren per Hand frei drehen oder gibt es irgendwo einen "Endpunkt", der sie blockiert? Werden die gewünschten Umdrehungen in der Live-Ansicht der Sensorwerte in der Software korrekt angezeigt? Es kann beispielsweise sein, dass ein Kabel kaputt ist und dann keine Umdrehungswerte mehr übertragen werden. Da sich die Motoren synchronisieren, würde das dazu führen, dass ggf. beide Motoren nur noch "stottern".
In der Software selbst könnte das wahrscheinlichste Problem sein, dass Bewegungsblöcke genutzt wurden, die "nicht aktiv bleiben". Wenn der Motor den Befehl bekommt, vorwärts zu fahren und direkt darauf ein Block folgt, dass er rückwärts fahren soll, kann es sein, dass er sich gar nicht oder nur ganz kurz vorwärts bewegt, weil er direkt den folgenden Block ausführt. Hier hilft es, Blöcke zu nehmen, die z.B. eine Zeit als Bewegungsdauer oder eine Anzahl von Grad/Umdrehungen haben.
Vielen Dank für die zügige Antwort. Das hatte ich auch erst vermutet. Aber verstehen tue ich es immer noch nicht. Die letzten beiden Befehle sollten bewirken, dass der Ev3 einfach gerade fährt. Ein Motor ist tatsächlich im Stillstand, der andere läuft und befördert den EV3 in die entgegengesetzte Richtung, in der er eigentlich fahren soll.
Es könnte jetzt noch sein, dass durch die Pragrammierung nach "Umdrehungen" eine zeitliche Versetzung der Motoren zum Schluss der Programmierung zu groß wird und beide Motoren am Schluss nicht mehr im Gleichklang sind.
Die Programmierung wurde etwas abgeändert und an Stellen wo Umdrehungen gewählt wurden, wird nun nach Sekunden programmiert.
Das hilft uns etwas weiter.
Wahrscheinlich ist mein Problem ein typisches Anfängerproblem. Umso mehr sage ich vielen Dank für den erneuten Motivationsschub ;)
Gruß
DaKne
DaKne hat geschrieben:
Micha2 hat geschrieben:
DaKne hat geschrieben:
DaKne gefällt das