vorweg, ich bin neu im Forum und habe auch noch nicht so viel Erfahrung mit Fischertechnik.
Und bitte entschuldigt, wenn ich die falsche Topic erwischt habe. Ich habe auch keine ähnlichen Beitrag gefunden.
Wir haben eine größere Fischertechnik Anlage, die man so kaufen kann. Die Steuerung der Anlage ist in mehreren Python Skripten realisiert, die jeweils mithilfe von ftrobopy(https://github.com/ftrobopy/ftrobopy) eine Verbindung zu den entsprechenden Fischertechnik TXTs aufbauen. Die Skripte selber laufen auf einem anderen Rechner. Auf den TXTs ist die community firmware 0.9.5 installiert.
In der Anlage kommen mehrere Encodermotoren zum Einsatz. Mit denen haben wir aber leider ein Problem. Wenn man die Funktionen setDistance und setSpeed verwendet kommt es immer wieder zu dem Problem, dass der Motor kurz vor Ende stehen bleibt. Man kann jedoch hören, dass der Motor noch versucht zu laufen. Wenn man dann nur ein bisschen am Tisch wackelt, geht es weiter. Das passiert leider nicht nur bei einem der Motoren.
Ich habe mal ein kleines Skript geschrieben, das den Fehler relativ schnell hervorruft:
Code: Alles auswählen
import ftrobopy
from time import sleep
txt = ftrobopy.ftrobopy(host='192.168.1.18',port=65000,update_interval=0.01,special_connection='192.168.1.18')
stops = 8
distance = 50
speed = 512
axis = txt.motor(2)
while True:
for _ in range(stops):
axis.setDistance(distance)
axis.setSpeed(-speed)
while not axis.finished():
print(axis.getCurrentDistance(), '/', distance)
sleep(0.1)
axis.setSpeed(0)
sleep(0.5)
for _ in range(stops):
axis.setDistance(distance)
axis.setSpeed(speed)
while not axis.finished():
print(axis.getCurrentDistance(), '/', distance)
sleep(0.1)
axis.setSpeed(0)
sleep(0.5)
Wenn der Kran stehen bleibt kann man in der Ausgabe immer "49 / 50" ablesen.
Habt ihr eine Ahnung was das sein könnte?
Vielen Dank und Gruß
Arne