PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM Sepper Motor Controller (128 microsteps per full step <)



MarvinS.
07.03.2013, 16:13
Hallo,

Mein Name ist Marvin und ich bin ganz neu hier und habe gleich eine Frage.
Ich bin auf der suche nach einem (wen möglich fertigen) Controller um einen Stepper Motor seht genau (wen möglich 128 microsteps<) per PWM Signal anzusteuern.
Es Soll so Funktionieren Das ich mittels PWN Die Geschwindigkeit und die Richtung ansteuern kann:
z.B. 1500 micro/sek Stillstand (Haltemoment), Von 1500-2000 kann man die Vorlauf Geschwindigkeit regeln und von 1000-1500 die Rücklauf Geschwindigkeit.

Ähnlich den Hier: (Nur mit höherer Auflösung)

http://www.youtube.com/watch?v=BBwjsPy687E

https://store.cunningturtle.com/product/ct-60

http://www.cunningturtle.com/wiki/index.php?title=Main_Page

Schon einmal vielen Dank
MFG: Marvin

MisterMou
07.03.2013, 19:21
Herzlich willkommen ;)

Meinst du, dass das PWM Signal aus der Fernsteuerung genau genug ist, um 128 Mikroschritte aufzulösen?
Bei einem normalen Schrittmotor mit 200 Schritte/Umdrehung mach das 25.600 Schritte pro Umdrehung. Dem PWM Signal würde ich aber höchstens 1024 Schritte zutrauen, eher 128. Oder möchtest du den Motor nur in einem ganz kleinen Winkel drehen?

MarvinS.
08.03.2013, 00:37
Herzlich willkommen ;)

Meinst du, dass das PWM Signal aus der Fernsteuerung genau genug ist, um 128 Mikroschritte aufzulösen?
Bei einem normalen Schrittmotor mit 200 Schritte/Umdrehung mach das 25.600 Schritte pro Umdrehung. Dem PWM Signal würde ich aber höchstens 1024 Schritte zutrauen, eher 128. Oder möchtest du den Motor nur in einem ganz kleinen Winkel drehen?

HI,

Ja der Motor soll wie oben im Video maximal eine Umdrehung drehen.
Aber das Möglichst genau "Abstufbar" nicht so raster haft.
Deshalb dachte ich an einen Controller mit höherer Auflösung.

Danke
Marvin

malthy
08.03.2013, 00:54
Ja der Motor soll wie oben im Video maximal eine Umdrehung drehen

Möchtest du die Position oder die Drehgeschwindigekeit des Motors über das PWM Signal steuern?

MarvinS.
08.03.2013, 01:30
HI,

Wen es nicht einen Fertigen Controller wie oben im Video Gibt mit dem ich das aussuchen kann.
Dan würde ich die Postion wie bei einem normalem Servo ansteuern.

MFG: Marvin

MisterMou
08.03.2013, 10:05
Das PWM Signal lässt nur eine bestimmte Auflösung zu. Du kannst die Motorposition nicht höher auflösen als das PWM Signal. Woher soll er denn wissen welche Position er anfahren soll?
Zumal bei 128 Mikroschritten das Drehmoment stark reduziert wird, da der Unterschied zwischen zwei Schritten so gering ist.

Was hast du denn eigentlich mit dieser gigantischen Auflösung vor?

Che Guevara
08.03.2013, 12:23
Hi,

ich hab zwar jetzt keinen direkten Hinweis zu dem Problem, aber ich weiß, dass z.b. die Graupner HOTT eine Auflösung von 12Bit (4096) Schritten hat ;)

Gruß
Chris

MarvinS.
08.03.2013, 17:10
Hi,

Es geht darum eine Arm Achse über einen Rc Empfänger sehr genau zu Positionieren, Ich glaube das 128 Mikroschritte wohl ein wenig über das ziel hinaus geschossen waren 32 müssten reichen.
Denn das Bord (https://store.cunningturtle.com/product/ct-60) ist von der Auflösung Viel zu ungenau.
Ich hatte einfach nur gehofft das es da schon ein fertiges Produkt zukaufen gibt.
Ich denke das dies auch eine Möglichkeit wäre ( http://www.mtahlers.de/index.php/grundlagen/robolink/encoder-as5304 ).
Nur Verstehe ich da nur Bahnhof :/

PS: 4096 Schritte wären auch Vollkommen OK, Gibt es da etwas ähnliches? quasi Plug and play :D

MFG: Marvin

malthy
08.03.2013, 18:44
Hallo Marvin,

vielleicht kannst du erstmal umreißen was du überhaupt machen willst, so 100%ig habe ich das noch nicht verstanden. Du brauchst einen Motor, der mit Hilfe einer Elektronik auf eine bestimmte Position geregelt werden soll. Die Position möchtest du per PWM Signal vorgeben. Ist das in etwa richtig so?

Du hast ja oben einen kleinen Artikel von mir über diesen magnetischen Encoder verlinkt. Das alleine löst dein Problem bei weitem nicht, du brauchst dann ja noch einen Regelkreis, der die gewünschte Position wirklich einstellt. Im Grunde wäre für deinen Anwendungsfall dann auch ein absoluter Encoder sinnvoller - soweit der mechanische Aufbau dessen Verwendung erlaubt.

Wenn ich das mal so ganz ehrlich sagen darf: mein Eindruck ist, dass du noch nicht all zu tief in der Materie drinnen bist, dir aber - vielleicht ohne es zu merken - ein relativ anspruchsvolles Problem gestellt hast. Vielleicht ist es sinnvoller, erstmal das Gesamkonzept nochmal zu überdenken? Zumindest könntest du dazu auch nochmal etwas sagen.

Gruß
Malte

MarvinS.
08.03.2013, 21:43
HI,

Ich möchte eine Kamera mittels Lagesensor immer in Waage halten, Momentan mache ich das mit einem NanoWii mit Der MPU6050 (Software schon fertig). Das Gibt ein 11-Bit PWM Signal an die Servos aus. Problem Servos aller art haben einfach zu viel spiel und dadurch entsteht durch das schnelle hin und her ein jello effect in der Kamera.
Und da es schon fertige aber zuteure Systeme gibt möchte ich das nachbauen. Daher brauche ich genau das wie oben gezeigt nur mit einer Höhrern Auflösung, den das Board von oben ist zu ungenau.

malthy
10.03.2013, 12:13
Hallo,

ich würde an deiner Stelle nochmal nach höherwertigen Servos gucken. Nicht dass ich damit Erfahrung hätte, aber so weit ich weiß, sind Dynamixel Servos (http://www.robotis.com/xe/dynamixel_en) dann doch um einiges besser als konventionelle Spielzeugservos. Ich habe beim Überfliegen der Seite gesehen, dass zumindest der Encoder im Servo eine Auflösung von 12 bit hat (was erstmal auch nur eine typische "Datenblattbehauptung" ist - natürlich nicht im stregen Sinne falsch, aber es sind einige "Randeffekte" zu bedenken). 12 bit entspricht eine Auflösung von 360°/2^12 = 0,088°.

Wenn man das System wirklich komplett selbst bauen will, würde zumindest ich so vorgehen: Schrittmotor mit Getriebe verwenden, hochauflösenden Encoder auf dem Abtrieb des Getriebes (also wirklich auf/an der Achse, deren Pos. geregelt werden soll). Dann einen Schrittmotortreiber entwickeln/kaufen. Den Motortreiber an einen µC, der den Pos.encoder ausliest. Ist- und Soll-Wert so verrechnen, dass der Motor so aktiviert werden kann, dass er die Position anfährt und hält, die man wünscht. Bei einem Schrittmotor, den man relativ gut open-loop auf bestimmte Geschwindigkeiten einstellen kann, würde für die Positionsregelung u. U. ein reiner P-Regler genügen (Stellgröße ist Motorgeschw.).

Du kannst dir denken, dass hinter jedem dieser Punkte wieder einige Probleme warten. Die sind mit Geduld und Motivation alle zu lösen, keine Frage. Aber wenn man an einer schnellen und gut funktionierenden Lösung interessiert ist und selbst noch nicht wirklich viel Erfahrung in all den Bereichen hat, ist es zumindest ein recht weiter Weg.

Es gibt sicherlich im "professionellen Bereich" auch fertige Komplettlösungen. Damit habe ich keine Erfahrungen, und was sowas dann kostet kann man sich zumindest denken. Dazu müsste ggf. nochmal jemand anderes was sagen.

Gruß
Malte

MarvinS.
10.03.2013, 13:03
HI,

Danke für den tipp.

Aber noch mal zu den Schrittmotor er muss wirklich nur ganz stumpf, aber genau und schnell per pwm angesteuert werden, Endcode brauch ich da doch eigentlich nicht oder?
Denn der Sensor ist ja unter der Kamera und Der sorgt ja dafür das der motor immer so dreht das der sensor in Waage ist.


PS: Gibt es denn auch hochauflösende servos die ich ganz normal wie ein Modellbau servo verwenden kann? Bei den Dynamixel Servos geht das ja nicht


Danke
MFG:Marvin

malthy
10.03.2013, 14:33
Sofern dein Sensor wirklich ein Positionssignal für die relevante Achse ausgibt, kannst du das - zumindest theoretisch - für die Positionsregelung verwenden. Aber so weit ich es sehe, gilt der Rest des oben Gesagten trotzdem. Du willst ja nicht einfach nur die Rotationsgeschw. deines Motors proportional zum Positionssignal einstellen. Was du willst, ist, die Abweichung der aktuellen Position deiner Kamera von einer Sollposition ermitteln und - im einfachsten Falle - den Motor mit einer Geschwindigkeit drehen, die proportional zur Abweichung ist. Wenn Istpos. = Sollpos. dreht der Motor garnicht, bei kleiner Abweichnug dreht er langsam (immer langsamer werdend) auf die Sollposition zu, bei großer Abweichung fängt er schnell an in die entspr. (Gegen-)Richtung zu drehen. Das ist die Grundidee einer Regelung, um einen Regelkreis kommst du (so weit ich es sehe) also nicht herum.

MarvinS.
13.03.2013, 21:43
HI,

Gibt es den eine Möglichkeit die Dynamixel MX-28 über PWM anzustäuern?

oder Gibt es noch andere servos die so hoch auflösen?
Habe leier nichts weiters ergoogeln können.

Vielen Dank
Marvin

malthy
13.03.2013, 22:32
Hallo!

Ich kenne mich mit diesen Servos nicht näher aus - vielleicht jemand anderes hier. Wenn ich das richtig lese, verfügen sie u. a. über eine serielle Schnittstelle (TTL und RS485). Darüber könnte man sie an einen kleinen Microcontroller anschließen, der das PWM Signal auswertet und die entsprechenden Kommandos an den Servo schickt. Ob man es hinbekommt, dass der Servo das PWM Signal selbst auswertet weiß ich nicht. Ich fürchte aber, dass alle Lösungen noch einen gewissen zusätzlichen Aufwand bedeuten - und es wird wohl auch keine out-of-the-box Lösung geben. Aber vielleicht weiß ja noch jemand anderes etwas dazu zu sagen.

Gruß
Malte