Zitat Zitat von piattu Beitrag anzeigen
Der Aktionsradius wird sich allerdings auf wenige mm^2 beschränken und zwecks ruhigerem Lauf hatte ich an Mikrostepping (1/16 Schritte) gedacht. Bei einer Auflösung der Aktuaren von beispielsweise 0.005mm im Vollschritt komme ich also auf 3200 Schritte/mm im 1/16-Schritt. Bei 50kHz könnte ich somit eine Geschwindigkeit von ca. 16mm/sek fahren. Das halte ich bei sehr kleinen bewegten Massen und den dadurch geringen Beschleunigungs- und Trägheitskräften für machbar. Allerdings habe ich da keinerlei Erfahrungswerte auf die ich zurückgreifen kann - berichtigt mich also gern, falls das aus irgendwelchen Gründen eher nicht im Bereich des Möglichen liegen sollte.
Das ist absolut machbar, abgesehen davon kannst du immernoch auf 1/8 umschalten und hast dann die doppelte Verfahrensgeschwindigkeit oder sparst Speicher.

Zitat Zitat von piattu Beitrag anzeigen
Viel wichtiger war mir jedoch die Eigentliche Frage, wie ich die Signale für die Motoren erzeugen kann. Hier scheint mir tatsächlich die beste Lösung der Vorschlag mit dem Mikrocontroller zur Berechnung der inversen Kinematik zu sein. Ich habe mir den Arduino jetzt mal ein bisschen genauer angeschaut. Da gibt es ja durchaus Varianten, welche entsprechend hohe Taktraten haben. Ausserdem scheint es recht einfach zu sein Displays, externe Schalter, evtl. sogar zusätzlichen Speicher sowie eine PC-unabhängige Stromversorgung zwecks stand-alone Betrieb anzuschliessen. Im Internet finden sich dazu reihenweise Tutorials und Beispielcode - es sollte also eigentlich kein Problem sein, sich da einzuarbeiten.
Ich danke euch für die schnelle Hilfe!
Piattu
Ich würde es übrigens so umsetzen:

Pro gewünschter Bewegung würde ich ein Array mit n Zellen erstellen, wobei n die Anzahl der maximal möglichen Step signale darstellt, also zb bei 3s wäre das Array 3s*50000Hz=150000.
in jede Zelle kommt ein byte, du hast also 8 bit frei für die 6 Dir/step Signale. Von matlab lässt du dir berechnen wann welche Achse sich in welche Richtung bewegen soll und dass im 1/50kHz=0,02ms Takt
Jetzt programmierst du auf deinem Atmega/arduino einen Timer der alle 0,02ms aufgerufen wird, dir dein Byte an einen Port ausgibt und die lauf variable vom Array um 1 erhöht. Dass wars dann eigentlich schon
Längere Bewegungsabläufe musst du dann natürlich auf eine SD-karte auslagern oder du besorgst dir einen µC mit genügend großem Flash-speicher

MfG Urs