Frage zu Mobatools wegen Stoppen wärend einer Fahrt

Hallo Gemeinde
Ich baue gerade einen Sonnenverfolger, mit Schrittmotoren. Das mit den Servos habt mir nicht gefallen. Ich habe eine Umdrehung mit 6400 Schritten eingestellt und gebe immer 50 Schritte an Mobatools und kontrolliere in jedem Loop- Durchgang ob die 50 Schritte erledigt sind. Dann weitere 50 Schritte, oder Stopp, wenn ich angekommen bin. Jetzt überlege ich mir gerade, ob ich nicht besser die ganze mögliche Fahrt in Schritten an Mobatools ausgebe, werend der Fahrt immer mit der Lichtmessung teste ob ich schon da bin wo ich hin will und dann einen Stopp an Mobatools ausgebe. Ich habe im Programm keine delay´s und werend der Fahrt keine Displayausgaben, keine Serialprint Ausgaben, nur einige if´s, also der Loop ist ein paar Millisekunden denke ich. Kann ich ja mal messen. Also Frage, stoppt die Lib. sofort, wenn ich einen Stopp an Mobatools ausgebe, oder muss ich eine Reaktionszeit erwarten? Ich habe was gelesen, dass die Lib. schon mal über das Ziel hinausfährt, dann aber das wieder zurückfährt. Ist das in dem Fall so? Dann kann ich ja damit leben, wenn die Schritte nach der Stoppausgabe wieder zurückgefahren werden, die der Motor als "Reaktionszeit" zu weit gefahren ist.

Serus
Franz

Hier noch ein Video von dem Teil.

Ja, mußt Du.

Physikalisch brauchst Du unendlich viel Energie, um eine Masse "sofort" in der Geschwindigkeit zu ändern. Das geht also nicht. Die Geschwindigkeitsänderung einer Masse geht nur allmählich.

Deine Frage umformuliert: Kann man die Geschwindigkeit der Masse ohne Schrittverlust ändern?

Ja, wenn das maximale Drehmoment nicht überschritten wird. Wenn Du den Motor ohne Rampe anfährst und dabei kein Schrittverlust auftritt, sollte der Motor auch ohne Rampe gebremst werden können.

Allerdings bin ich der Ansicht, Du kannst ganz gemütlich mit Rampe fahren. Beispiel:

  1. Sonnenverfolger steht am Referenzpunkt im Nordosten.
  2. Sonnenverfolger dreht in Richtung Südwesten.
  3. Sensor mißt Sonnenintensität und merkt sich die letzten zehn Positionen zusammen mit der Intensität.
  4. Bei abfallender Intensität Position mit maximaler Intensität als neue Sollposition.
  5. Sonnenverfolger bremst mit Rampe ab und bewegt sich eventuell mit reduzierter Geschwindigkeit zur neuen Sollposition.

Dann wartest Du eine gewisse Zeit, erntest den Strom und startest dann bei 2.

Ja?

Ich habe zwei Sonnensensoren, für die Horizontale Richtung und zwei für die Vertikale. Die Kiste startet, schaut welcher Sensor Horizontal mehr Licht hat, und fährt in diese Richtig, wenn dann beide Horizontalen Sensoren genauso viel Licht haben, stopp. Das gleich passiert bei den beiden Vertikalen Sensoren. Und das passiert immer gleichzeitig. Also beide Motoren Vertikal wie Horizontal werden gleichzeitig bedient. Ist eine Richtung am Ziel, dann stoppt dieser Motor, und die andere Richtig fährt noch weiter zu ihrem Ziel. Die Horizontale Richtung bleibt so lange an ihrem Ziel stehen, wie die beiden Horizontalen Sensoren nur eine Abweichung von weniger als 100 in ihren Lichtwerten haben. Das selbe bei den Vertikalen Sensoren. Die Lichtwerte von jedem Sensor der vier Richtungen gehen von 0 - 8190. Also von völlig dunkel bis volle Sonne. Wobei auch bei voller Sonne die 8190 nicht ganz erreicht werden. Diese große Spanne konnte ich nur erreichen, weil jeder "Sensor" aus zwei Sensoren besteht, der eine hat schon bei bewölcken Himmel das Ende erreicht, der zweite hat bei bewölkten Himmel vielleicht ein drittel seiner Spanne erreicht. Jeder für sich hat Messwerte von 0 - 4095. die Beiden addiere ich, so komme ich auf die 0 - 8190 und auf die Spanne von Dunkel bis direkte Sonne. Also habe ich eigentlich 8 Sensoren, Aber zwei sind immer zu einem zusammen benutzt. Ich fahre so langsam dass ich die Rampe nicht brauche, die ist im Moment auf "0".

Franz

Aber es geht mir darum, wenn ich der Lib. sagen, mache 3000 Schritte in Richtung A und dann unter der Zeit stoppe, ob die Lib. da vielleicht noch einige Zeit verstreichen lässt, bis sie stoppt, wenn ja, ob sie diese Schritte wieder zurück fährt, oder ob sie eh gleich stoppt und gut ist es. Der Motor ist total langsam unterwegs, also auslaufen wird er nicht.
IM Moment sage ich der LIB. fahre 50 Schritte, dann frage ich in jedem Loop-Durchgang ob die 50 Schritte auf Null sind, und wenn die auf Null sind und das Ding nicht am Ziel ist, gebe ich wieder 50 Schritte in Auftag. Aber daraus ensteht wohl dieses Zuckeln, das man im Video sieht. Daher möchte ich gerne umstellen, auf Übergabe der noch möglichen Schritte bis zum Ende, und dann bei jedem Loop wieder schauen ob die Messungen passen, und den Motor dann immer vorab stoppen.

Franz

Die drei Befehle gibt es zum vorzeitigen stoppen
Damit die Formatierung erhalten bleibt als Screenshot

Da die Sonne ja extrem langsam wandert und auch beim Start oder nach Bewölkung es 10 bis 30 Sekunden dauern darf bis man am Ziel ist, sind die Drehzahlen so klein, dass das höchstwahrscheinlich mit Start-Stop-Betrieb geht

Ich verstehe doSteps(0) so.
Der Motor kann gerade auf maximaler Drehzahl laufen
du gibst den neuen Befehl doSteps(0)
Beispiel-Zahl im Moment in dem der Befehl doSteps(0) gegeben wird befindet sich der Motor bei Position 10200

Da er ja mit maximaler Drehzahl läuft muss er erst einmal herunterbremsen
Am Ende des Bremsens ist der Motor bei Position 10400. Und dann fährt er noch einmal an um auf 10200 zurück zu fahren.

Das ist doch super
@microbahner : die MobaTools sind einfach klasse!

Mir drängt sich der Eindruck auf, Du machst Dir unnötige Gedanken. Eigentlich kannst Du das auch mit DC-Motoren machen. Einfach bis zum Maximum laufen lassen und dann anhalten. Wäre die Position bischen drüber, macht das nichts, weil die Sonne ja nachzieht.

Nööö, ich muss meine Pos. immer kennen, weil es ein Mechanisches Ende gibt in jeder Richtung. Deshalb gefällt mir das mit den Schrittmotoren ganz gut. Ich weiß immer wo ich bin, weil ich die Schritte vorgebe. Zumindest bis jetzt :roll_eyes:

Danke dir.
Den Befehl habe ich überlesen, oder übersprungen, weil ich nur immer die Befehle über dem Textabschnitt angeschaut habe, und den Text so weit gelesen, dass ich wusste was der Befehl macht. Hätte ich weitergelesen, hätte ich auch das mit dem doSteps(0) gefunden :stuck_out_tongue_winking_eye: Das ist es was ich wollte. Dann kann ich auch das Tempo ein wenig erhöhen, die Rampe aktivieren, und damit stoppen.

Ich will Dir die Schrittmotoren ja nicht ausreden. Nur wenn Du im Nordosten bei 0 stehst, kannst Du durchgehend eine Bewegung bis nach Südwesten machen. Zwischendrin anhalten beim Maximum.

Die Lib lässt grundsätzlich keine Zeit verstreichen, die reagiert immer sofort auf deinen Befehl. Die verschiedenen Arten zu stoppen hat @StefanL38 ja schon aufgezählt. Auch wenn eine Bremsrampe eingestellt ist, reagiert die Lib sofort und leitet das Bremsen ein. Nur bleibt der Motor eben nicht sofort stehen ( ausser bei 'stop' ) - sondern wird entsprehend der Bremsrampe geführt. Aber auch das macht die Lib. Beim Stepper gibt es kein eigenständiges 'Auslaufen'. Allerdings kann er ziemlich unkontrolliert zum Stillstand kommen, wenn er sich zu schnell dreht, und dann nicht mehr entsprechend der abnehmenden ( oder ausbleibenden ) Schrittfolge ohne Schrittverlust geführt werden kann.
Die 3 aufgeführten Methoden zum Stoppen des Motors verhalten sich übrigens alle gleich, wenn die Bremsrampe auf 0 steht. Ohne Schrittverlust geht das aber nur bei entsprechend kleinen Drehzahlen ( was hier wohl gegeben ist ).

Danke dir.
Ja, ich nehme das mit dem "Befehl doSteps(0)". Das íst ja idial dafür. Dann aktiviere ich die Rampe doch, kann bischen schneller fahren, und die Lib. fährt die paar Schritte die sie zum Bremsen brauchte wieder zurück. Das passt gut. Ich habe nur im Text nicht bis da runter zum "doSteps(0)" gelesen. Das war für mich nur die übergabe der Schritte zum Fahren. :stuck_out_tongue_winking_eye:

Hallo,

viel zu viele Gedanken. Du baust einen Sonnenfolger. Du hast für die Sensoren eine gewisse Hysterese in der die aktuell gefundene Position okay ist. Bedeutet, die Position wird noch nicht nachgestellt. Jetzt merken die Sensoren die Abweichung untereinander ist zu groß und der Motor macht einen Schritt. Abweichung immer noch zu groß > noch ein Schritt usw. solange bis die Sensoren melden, alles im grünen Bereich. Es gibt keinen Grund bei der langsamen Erdbewegung zu schnell hin- und her zu fahren. Nach etwas Erfahrung mit den Werten kann man statt einen Schritt pro Korrektur ggf. auch mehr machen, eben die Drehung von jetzt außerhalb der Sensorwerte bis wieder innerhalb der Sensorwerte. Sollte ja nahezu konstant bleiben. Lieber zu kleine Schritte statt zu viele, sonst fährt das Ding ständig hin und her. Wenn du immer zu viele Schritte vorgibts ist der nur am korrigieren. Die Sensoren sollen doch die Zielposition melden.

Ja, stimmt natürlich, es ist immer nur die erste Fahrt am Morgen, wo die zu fahrende Strecke größer ist. Dann gibts nur noch minnimale Korrekturen. So gesehen bräuchte ich da keinen Aufriss machen und das so lassen wie es ist. Ich habe gestern nur einen Abgleich der Lichtsensoren gemacht, die in allen 4 Richtungen die Intensität messen und mit dem gegenüber durch entsprechende Fahrt abgleichen.

Ich mache noch für Horizontal und für Vertikal jeweils einen Schalter oder einen Hallsensor zum anfahren des allmorgendlichen Referenzpunktes.

Die alten Ägypter freuten sich jeden Tag aufs Neue, daß die Sonne den Weg durch die Dunkelheit gefunden hatte und aufging.

Inzwischen wissen wir, daß unser Planet relativ konstant durch den Weltraum eiert. Solltest Du eine Meßeinrichtung bauen wollen, so wird sie Dir das die nächstenn Jahre bestätigen.

Wenn Du aber eine Nachführung für Solarpanelen zur Stromerzeugung bauen willst, so könntest Du ab der nächsten Sonnenwende für ein halbes Jahr eine Tabelle der Sonnenaufgangspunkte für Deinen Standort erstellen. Danach kannst Du am Abend ganz langsam zum Sonnenaufgangspunkt schwenken, denn dafür hast Du eine ganze Nacht lang Zeit, im allerdings Sommer weniger als im Winter. Dann kannst Du vergleichen, ob die schnelle oder die langsame Fahrt mehr oder weniger Energie benötigt. Das Ergebnis würde mich interessieren.

Weil Schrittmotoren auch für das Haltemoment Strom benötigen, wäre eine selbsthemmende Mechanik sinnvoll. Du möchtest ja so energieeffizient wie möglich Strom gewinnen.

Nur so Gedanken am Rande :slightly_smiling_face:

Ja, da hast du recht. Ich habe in meinem Forum, wo ich die Entstehung meines "Testgerätes" beschreiben, auch darauf hingewiesen, dass ich seblsverständlich Schrittmotoren mit starken Getrieben verwenden würde. Dann könnte ich den Enable auch von Mobatools Steuern lassen. Also Spannung auf die Motoren nur, wenn sie fahren. Getrieben mit 1:50 oder 1:100. Aber für mein Testmodel, das ich nur baue um eine Sinnvolle Software zu erstellen, sind mir die Getrieben für 60-70 Euro pro Motor zu teuer und zu unnütz, weil ich ja nur etwa 200gr. bewegen muss. Auch würde ich dann Nema 23 oder Nema 34 Motoren verwenden und da sind wir dann wohl bei den Getrieben bei 100,- Euonen oder mehr, pro Getriebe. :roll_eyes: Das macht nur Sinn, für die, die wirklich so eine Kiste mit großen Panel bauen wollen.

Und die Errechnete Pos. der Sonne anzufahren, ist ein anderes Prinzip, das ist nicht mein Ziel. Das macht einer in meinem Forum bereits mit zwei Pannels, da braucht ich das Rad nicht neu erfinden. Ich mache das ja aus Interesse, wie genau man es steuern kann. Und um mein Hirn ein wenig zu vordern. Soweit das noch möglich ist :stuck_out_tongue_winking_eye: :roll_eyes:

Als Stromverbrauchs-Model macht es keinen Sinn, weil ich ja als Beweggrund bei meinem Model nicht das Stromsparen im Vordergrund habe, sondern das erstellen eines brauchbaren Programmes, zur Steuerung. Das sparen ergibt sich dann aus den beiden Getrieben an den Motoren, wodurch ich dann den selbsthalt nicht brauche. Ich habe auch noch auf dem Zettel Windgeschindigkeiten und Windrichtung zu messen. Erst mal als extra Aufbau. Das könnte ich natürlich dann auch noch integrieren, dass ich ab einer bestimmten Windgeschwindigkeit, den Enable von HIGH auf LOW schalte, wenn zu befürchten ist, dass die Getriebe das Panel nicht mehr auf Pos. halten können. Dann würde ich die DM556 Treiber oder ähnliche benutzen, mit denn ich den Haltestron auf die Hälfte reduzieren kann. Und ich könnte, wenn ich die Windgeschwinigkeit kenne, das Panel rechtzeitig bei Sturm in eine Schutzstellung fahren, bevor es abfliegt. Also aus dem Wind drehen, einklappen, sonstiges. Ich habe viel Zeit und möchte sie bischen Sinnvoll nutzen. Mehr nicht :grinning: Es macht Spass, und kann Anderen vielleicht ein wenig helfen, auf dem Weg zu ihrem Ziel.

Es kann passieren, dass ich im kommenden Jahr doch mal einen Rappel bekomme, und ein echtes Ausgewachsenes Panel aufs Poolhaus setze. Aber das ist bis jetzt mehr Wunsch als Realität. :pleading_face:

Servus
Franz

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.