Wenn man eine Eingabe macht, soll sich das Ding drehen. Ob das nach 14µs oder 100ms passiert, ist mir egal![]()
Wenn man eine Eingabe macht, soll sich das Ding drehen. Ob das nach 14µs oder 100ms passiert, ist mir egal![]()
Das hat nicht wirklich was mit Echtzeit zu tun, guck lieber nochmal nach, was mit Echtzeit gemeint ist. Jedenfalls sollte für deine Anwendung Java verwendbar sein.
5kg an 20cm Hebelarm macht ca. 10Nm, nur die wenigsten Servos schaffen das. Man könnte sie zwar mit einem zusätzlichen Getriebe betreiben, allerdings wärs dann nicht mehr schnell.
Ich erachte es als sinnvoll, mal deine Anwendung ein bisschen genauer zu beschreiben, vielleicht sind Servos ja auch gar nicht die beste Lösung dafür.
Deine Einschätzung reicht als grobe Linie. In einer ruhigen Minute werde ich das benötigte Drehmoment genauer bestimmen.
Das Gerät soll Bewegung im Raum mithilfe einer Webcam erkennen und sich auf deren Ursprung ausrichten. Es soll dabei schnell reagieren können. Das ist aber schon ein hochgestecktes Ziel, zunächst will ich die Steuerung manuell über ein Gamepad ermöglichen. Gesteuert werden zwei Achsen, eine zum schwenken und eine zum nicken.
Also quasi ein Pan-Tilt-Head. Sowas scheint ein gängiges Thema zu sein, auch hier im Forum gibts regelmäßig Threads dazu.
In dem Falle ist es am praktischsten, wenn der Servo keine Lasten heben muss, sondern nur das Objekt (zB. die Kamera) im Schwerpukt dreht, denn dann ist ein wesentlich geringeres Drehmoment notwendig, und das dann auch nur beim Drehvorgang selbst, nicht im Stillstand. Der Gier-Servo müsste eh keine Lasten heben, da seine Achse vertikal verläuft, lediglich beim Nick-Servo müsste man also darauf achten, dass die Achse möglichst durch den Schwerpunkt des Objektes verläuft.
Sentry gun?
Nam et ipsa scientia potestas est..
Sentry gun.
Der Zugriff auf Periphierie über serielle Schnittstellen ist in der Regel zäh, insbesondere dann wenn diese noch emuliert sind (USB oder andere virtuellen COM-Ports).
Schneller ist der direkte Zugriff auf LPT1. Für Java: http://www.oracle.com/technetwork/ja...sp-141752.html
Ich selber verwende Visual C# und nutze inpout32.dll für den Zugriff auf den Parallelport. Zykluszeiten im Bereich von <50ms sind damit recht gut realisierbar.
Wenn es noch schneller gehen soll, dann lagere ich den zeitkritischen Task auf eine externe "Stand-alone" HW mit µC aus. Diese HW tauscht mit dem PC nur Parameter aus. Da ist man dann fast beliebig schnell....
Lesezeichen