Forum: Mikrocontroller und Digitale Elektronik Schrittmotoren mit Joystik ansteuern


von Frank H. (Firma: Hacke-Technik) (frank-sucht-elo)


Lesenswert?

Hallo zusammen,
ich heisse Frank, komme aus der Mechanik und habe mit Elos ehr am Rande 
etwas zu tun. Ein paar Grundbegriffe kenne ich und habe auch schon mal 
eine PCB geätzt. Wichtig ist, dass Ihr wisst, dass ich eigentlich bei 0 
Anfange.

Warum ich hier schreibe:
Ich möchte eine Elo aufbauen, welche mittels Joystick Schrittmotoren 
ansteuert.

Die Schwierigkeit besteht darin, dass mein Gerät später ca. 10 
Schrittmotoren haben wird und dann mit 1 bis 2 Jojsticks sehr feinfühlig 
betrieben werden soll. Kann man sich wie eine Maschine zum SMD Bauteile 
Bestücken vorstellen, mit Handsteuerung und Positionierung nach 
Augenmass.

Ich habe mir gedacht, dass etwas ähnliches bestimmt schon bei Eich gibt.

Danke
Frank

von Verwirrter (Gast)


Lesenswert?

Frank Hacke schrieb:
> Ich möchte eine Elo aufbauen

Was auch immer das ist?
http://de.wikipedia.org/wiki/Elo

von Hanswurst (Gast)


Lesenswert?

Hallo Frank,

ohne dir zu nahe treten zu wollen. Aber wahrscheinlich wird dir niemand 
außer mir eine Antwort auf deinen Beitrag geben.

Mich persönlich interessiert es nicht, aber dein Beitrag hört sich etwas 
von oben herab an (Elos(das höre ich zum ersten mal), euch). Ich glaube 
du sitzt einem Irrtum auf wenn du glaubst, es sowas schon gibt. Also ich 
denke nichtmal im Ansatz.

Deine Joystick bewegungen müssen in Motorumdrehungen umgerechnet werden. 
Diese wiederum in Schritte. Diese müssen ausgegeben, verstärkt und auf 
deine motoren gegeben werden usw. Ganz zu schweigen von 
Schrittverlusten, Beschleunigungsprofilen usw....

Also du siehst, es fällt nicht so einfach aus dem Internet raus :)

Ich würde fast behaupten, ohne fundiertes Grundlagenwissen kannst du das 
sowas von vergessen...

von Thomas (Gast)


Lesenswert?

Hallo,

Es gibt ja fertige Schrittmotorsteuerungen mit Spannungseingang, z.B.
-5V...0...+5V für Drehrichtung und Drehzahl.
In den meisten Joysticks sind ja Potis drin.
Da läßt sich auch ohne viel Grundkenntnis was basteln.

Ansonsten die Potis an die ADC-ports vom uC, setzt halt gewisse 
Kenntnisse voraus...

MFG.
Thomas

von Frank H. (Firma: Hacke-Technik) (frank-sucht-elo)


Lesenswert?

Hallo

Danke für die rasend schnelle Antwort.

Sorry für meine für Dich ungewöhnlich klingende Anfrage.
Bei meinen Kollegen ist der Begriff Elo jedoch absolut gängig und 
beinhaltet alles eine PCB beinhaltet.

Also mit Elo meine ich eine Elektronikeinheit.
Die mit einer oder mehreren Motorsteuerungen, welche es ja schon fertig 
gibt.
Höchstwahrscheinlich auch mit PC.
Dass es sowas anspruchsvoller ist und es das nicht an jeder Ecke gibt 
ist mir bewusst, deshalb frage ich ja hier an.

Es gibt Messtische, welche mit Joysticks angesteuert werden. Und im 
Youtube hab ich sogar mal einen gesehen der hat mit einer Spielekonsole 
eine CNC Fräse bedient (sah mehr als Spassobjekt aus).

von Walter F. (Firma: SPS) (iwfm)


Lesenswert?

Hallo Frank,
Habe mehrere Schtittmotor Applikationen für industrielle Anwendungen 
entwickelt und bin gerade daran eine richtige High-End zu entwickeln

Erstmal: gibt unteschiedliche Typen, am gängigsten ist ein 2.Phasen 
Bipolarer.

Der hat nur zwei Wicklungen und können im Vollschritt und 
Halbschrittverfahren betrieben werden und der arbeitet meist mit 200/400 
Schritten pro Umdrehung.

Dann ist das Drehmoment das man benötigt ein wichtiges Kriterium. Das 
geht los bei so ca. 200mA Spulenstrom bis 1,8A. Das sind so die 
gängisten Werte.

Die gibt es aber auch mit 4A.

Der Wirkungsgrad spielt eine wichtige Rolle. Sonst verbrät mann in der 
Ansteuerung enorm viel Energie.

Die Beschleunigung des Rotors ist auch wichtig. Mann versucht da mit 
möglichst hohen Spannungen (z.B. 40V) zu arbeiten, um die 
Wicklungsinduktivität möglichst rasch zu Überwinden. Dann muß man aber 
bei erreichen des gewünschten Nennstromes auf den Chop-Betrieb 
umschalten.

Sie dir mal den STM L297 und L298 an.
Der eine ist der Controller, der andere die Leistungsendstufe. Der 
arbeitet Dan auch im Chopperbetrieb (Strommesswiderstand) und idt für 
einfache Applikationen sehr gut geeignet.

An der digitalen Seite hat der L297 einen STEP-Eingang, ein Richtungsbit 
und ein Bit das vorgibt, ob Halbschritt oder nicht.

Der L298 kann dann bis ca. 2A betrieben werden.
Das wäre ein guter Anfang für dich. Sei aber vorsichtig, der L298 geht 
bei einer Falschbeschaltung sofort hoch, der verzeiht nichts. Wenn du 
was aufbaust, fang erst mal mit niederen VS-Spannungen (so ca. 1oV) an.

Hoffe Die weitergehokfen zu haben
Walter

von Frank H. (Firma: Hacke-Technik) (frank-sucht-elo)


Lesenswert?

Hallo Thomas,
genau sowas meine ich.


Hallo Walter,
Danke für Deine Erklärungen
Dein Projekt hört sich sehr Interesant an.

Ein Paar Punkte habe ich grob ab geklärt.

Motoren stehen von meiner Seite aus fest.
Bipolar von Nanotec
Auf die Motoren kommt kaum Belastung und auf hohe Geschwindigkeit kommen 
Sie bei meinem kurzen Weg auch nicht.

Steuerung von Nanotech sieht für mich als Laie gut aus.
http://de.nanotec.com/schrittmotorsteuerung_smci33.html
Ist warscheinlich auch Überspezifiziert.
10 St. davon zu 170€ für jeden Motor eine, das ist auch recht viel Geld.

Noch eine Steuerung habe ich gefunden.
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=65&products_id=173

Microstep brauche ich auch da ich extrem genau ansteuern will.
Wichtig ist auch, dass meine Mechanik nicht ruckeln kann.
Soll sehr sanft und sehr genau laufen für die Positionierung laufen.
Das in Endstellung fahren sollte jedoch schneller möglich sein.

von Werner M. (Gast)


Lesenswert?

Walter F. schrieb:
> Der hat nur zwei Wicklungen und können im Vollschritt und
> Halbschrittverfahren betrieben

Mikroschritt geht mit einem passenden Controller auch, z.B. dem A3967 
für kleinere Motoren. Rampensteuerung und Umsetzung der Joystickposition 
in Sollposition bzw. Sollgeschwindigkeit für den Motor erforderten dann 
einen µC mit passenden Algorithmen.

von Michael (Gast)


Lesenswert?

Walter F. schrieb:
> Habe mehrere Schtittmotor Applikationen für industrielle Anwendungen
> entwickelt und bin gerade daran eine richtige High-End zu entwickeln

Warst du nicht der der sich ein bisschen beim STM32 Bootloader blamiert 
hat? High-End na bin ich gespannt ...

von Walter F. (Firma: SPS) (iwfm)


Lesenswert?

Hallo Frank,
das Modul wird folgende Eigenschaften haben:

-Gehäuse ca. 55x80x15 mm
-Eingangsspannung: 15 bis 40V
-Anzahl der auch GLEICHZEITIG laufenden Motore: 3
-Max. mögliche Spulenströme 2A/Spule
-Max. mögliche Microschritte 256
-Einstellung der Halteströme ist wählbar
-Integrierte Rampenfunktionen
-Integrierte Optimierungv-Verfahren

Die Parameter können für jeden Motor GETRENNT eingestellt werden.

Des Weiteren:
-Abspeicherung der einzelnen Parameter in ein NV-RAM
-Kommunikation nach Außen über Bluetooth (115K Baud)
-Leistungsfähige GUI am PC/Laptop (über Bluetooth).
-Aufbereitung und Abspeicherung von Maschinensätzen im integriertem 
NV-RAM (in Planung)

Das wäre es im Schnelldurchgang. Ein Datenblatt mit Blochshaltbild und 
Foto steht demnächst zur Verfügung.

Viele Grüße aus München
Walter

von Frank H. (Firma: Hacke-Technik) (frank-sucht-elo)


Lesenswert?

Hallo Walter,
sieht ja soweit recht Interessant aus.
3 Motoren gleichzeitig steuern reicht aus.
Die Frage ist was mache ich wenn ich 10 Motoren insgesammt ansteuern 
will?
Was versprichst Du Dir für Vorteile von Bluetooth?
Kabel mit USB oder sonstige Schnittstelle müsste doch zuverlässiger und 
günstiger sein oder?

Habe auf jeden Fall schonmal Interesse.
Vor allem auch an professioneller Unterstützung für die Umsetzung.


Danke
Gruss
Frank

von Walter F. (Firma: SPS) (iwfm)


Lesenswert?

Hallo Frank,
Einen Grund für Bluetooth hast Du selbst genannt.
-Ich kann z.B. ein Startkommando an "beliebig" viele Module gleichzeitig 
absetzten.

-Man kann ruhig am Schreibtisch sitzen und muss keine Kabel umstöpseln 
um ein anderes Modul anzusprechen.
-Bei 10m hat man bei USB sicher schon ein Problem.
-Die Kosten spielen da für mich überhaupt keine Rolle. Der USB 
Controller kostet ca. 3 Euro (1+(, der Stecker und das Kabel ist auch 
nicht umsonst.
Dagegen stehen die Kosten von ca. 14 Euro (1+)
-Die Datenübertragungs-Sicherheit behaupte ich ist höher als bei USB 
über Kabel. Wenn Störungen im Funkverkehr vorliegen, dann wird das im 
Controller bemerkt. Man bekommt mit 100% Sicherheit die richtigen Daten 
oder gar nichts wenn die Reichweite überschritten wird oder im 
Grenzbereich liegt.
-Dann die Potentialfreiheit in einer "Verseuchten" Leistungs-Elektronik 
Umgebung
-Und außerdem hasse ich Kabel und Stecker!
-Und außerdem man kann dann nicht über die "Kabel" stolpern.


Und Alleine wenn man sich vorstellt, man hat eine etwas grössere 
Maschine in der mehrere Module an verschiedenen Stellen verbaut sind und 
dann das "Gewirr" an Kabeln und dann noch die Zuordnung..

Ich denke wenn man das so betrachtet spricht alles für eine Bluetooth 
Lösung, oder?

Viele Grüße
Walter

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hallo Frank!

> Microstep brauche ich auch da ich extrem genau ansteuern will.
> Wichtig ist auch, dass meine Mechanik nicht ruckeln kann.
> Soll sehr sanft und sehr genau laufen für die Positionierung laufen.

Einen ruhigen Lauf wirst du mit Mikroschritt realisieren können. Es ist 
allerdings ein weit verbreiteter Irrglaube, dass Mikroschritt auch zu 
einer höheren Genauigkeit führt. Mikroschritt erhöht lediglich die 
Auflösung. Die Genauigkeit ist beim Schrittmotor im gesteuerten Betrieb 
(also ohne Encoder-Rückführung) rein lastabhängig und im worst case +/- 
ein Vollschritt!

http://www.schrittmotor-blog.de/?p=19

Vielleicht kannst Du mal die genaue Typenbezeichnung des Motors nennen 
sowie weitere Randbedingungen (Versorgungsspannung, gewünschte max. 
Geschwindigkeit, Platzverhältnisse usw.). Sonst kann man keine seriösen 
Empfehlungen geben. Von Funklösungen würde ich abraten, wenn es 
preiswert UND robust sein soll.

Mit freundlichen Grüßen
Thorsten Ostermann

von Frank H. (Firma: Hacke-Technik) (frank-sucht-elo)


Lesenswert?

Hallo,
anbei ein paar Spezificationen
Motor  http://de.nanotec.com/linearaktuatoren_L2018.html
(noch nicht fix)
Hub max 40mm.
Ansteuerung auf  0,1mm oder genauer
Lt. Datenblatt 0,005mm möglich
Last nur Führungsreibung.
Versorgungsspannung  frei wählbar
Betrieb wahrscheinlich in Verbindung mit Lap Top oder PC, Joystick
Max geschw. geschätzt 1-2cm/sec
Platz: Motoren mit Führungen sollten grob auf A3 Blatt passen.
Elektronik kann nebenan stationiert werden ohne Platzbeschränkung.


Torsten, robust und Störunanfällig ist mir sehr wichtig.
Ich schimpfe zwar über alle Kabel bei mir auf dem Schreibtisch, aber 
dafür funktioniert es immer.


Walter  hört sich mit der Modulansprechung super an.
Wenn ich allerdings einen Wackler im Kritischen Moment hineinbekomme 
sind bei mir gleich mal 100€ futsch.
Sicherer Betrieb ist absolut notwendig.

von Bernard_b (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe vor eine Jahr her eine Platine entworfen, weil ich meine 
Proxxon MF70 mit Schrittmotoren steuern wollte. Habe etwa 10 Platinen 
machen lassen, und auf einer alle Komponenten gelötet. Leider fehlt es 
mir noch immerhin Zeit zum Quellkoden schrieben.
Die Platine könte 3 Schrittmotoren steuern. Steuern kan mit beide 
JoySticks aber soll auch gehen mit PC wegen USB-anschluss. Aber, wie 
gesagt, es fehlt mir bis jetzt noch immer genügend Zeit zum Quelkoden 
schreiben.

von Bernard B. (bernard_b)


Lesenswert?

Ganz vergessen, es enthalt eine ATMega644 auf die Platine und eine 
CP2102. Man kan einfach A4988-Module einstecken zum Steuerung der 
Schrittmotoren, wie auf die Bilder zu sehen ist.
Quellkoden schreiben für die JoySticks ist einfach, aber ich wollte 
gerne auch G-code implementieren. Aber das ist nicht recht einfach..
Also, wenn es Leute gibt der interessiert sind und Zeit haben Quellkoden 
im Bascom schreiben... bitte meldet euch...

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hm, also 10 Schrittmotoren über 2 Joysticks steuern. Strom <1A. Wie 
erfolgt die Zuordnung der Motoren zu den 4 Joystick-Achsen?

Wenn 170 EUR pro Motor für eine Nanotec-Endstufe schon zu teuer sind, 
was darf es dann pro Achse kosten? Und wieviele Geräte sollen nachher 
gebaut werden? Ist das eine industrielle Anwendung oder ein 
Hobby-Projekt?

Mit freundlichen Grüßen
Thorsten Ostermann

von Bernard B. (bernard_b)


Lesenswert?

Thorsten, wenn ich eine PLatine fertige für eine Proxxon MF70, dan 
handelt is sich um ein Hobbyproject, womit 3 Schrittmotoren angesteuert 
werden.

Die 2 Joysticks :
- Einer für X und Y-axis
- Einer für Z axis (der freie Axis könte man z.B der Geschwindigkeit 
einstellen)

Es gibt auch eine Drücktaster integriert pro JoyStick.
Daneben könten 3 Endstops verbunden werden mit der Platine (optical / 
machanical), und auch noch eine mini-Platine zur Status-Abgabe (ich habe 
schön so einer gebaut, mit LEDs darauf)
Aber 10 Schrittmotoren damit ansteuern geht leider nicht (einfach), weil 
man dan dahinten einige QPDT Relais einzetzen sollte, die man separat 
ansteuert werden.

P.S. Entschüldigungen wegen mein schlechter Deutschsprache.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hallo Bernhard,

meine Antwort ging auch nicht an dich, sondern an Frank, der den Thread 
hier eröffnet hat. Wenn dein Beitrag nicht als mögliche Lösung für 
Franks Frage gedacht war solltest du besser einen eigenen Thread 
aufmachen...

Mit freundlichen Grüßen
Thorsten Ostermann

von Uwe (Gast)


Lesenswert?

Also Joystick über Bluetooth ?! Hat jede Schrittmotorsteuerung ein 
eigenes Bluetoothmodul ? Wie sind die Achsen Synchronisiert ?
Wenn Achse 1 Datenpaket empfängt und Achse 2 ein Fehlerhaftes Paket 
bekommt und Achse 3 ein richtiges ??? Was willst du denn der Steuerung 
senden die Schrittzahl ??? So geht das ALLES nicht.

von Walter F. (Firma: SPS) (iwfm)


Lesenswert?

Hi
fehlerhafte Datenpakete GIBT es bei Bluetooth nicht!
Und Luststengel lassen sich auch am PC anschließen.
Der PC hat sowiso das Sagen welche Abläufe verfahren werden.

Gruß
Walter

von Michael H. (michael_h45)


Lesenswert?

Das stimmt zwar, aber genauso wenig gibt es Echtzeit...
Für eine Steuerung vielleicht brauchbar, für eine Regelung sicher nicht.

von Walter F. (Firma: SPS) (iwfm)


Lesenswert?

Hallo Michael,
wenn ich Echzeit höre, muß ich immer grinsen.
Da haben sich Kollegen von mir, ein Hardi und ein Softi mal fast die 
Köpfe eingeschlagen, um jeweils dem Anderen den Begriff "Echtzeit" 
beizubringen.

Nach meiner Ansicht ist der Begriff nicht definierbar oder definiert.
Ich habe mir also für mich selbst versucht den Begriff zu definieren:

A: Ein System braucht "echt-Zeit" um auf externe Ereignisse zu 
reagieren.
   Das sind dann für mich Linux Windows und damit vergleichbare 
-Systeme.

B: Echtzeit: Ein z.B. Embeddet-System das mit einem Echtzeit 
Betriebssystem. Da sind dann Reaktionszeiten von kleiner 50uS angesagt!

C: "Echte" Echtzeit dann, wenn ein dedizierter HW-Controller die
   Steuerung/Regelung von z.B Schrittmotoren übernimmt.


Bei meiner Lösung handelt es sich um ein "Echte-Echtzeit" Applikation, 
denn ich war mir über die Problematik 3 Motore gleichzeitig zu 
verfahren, schon im klaren.

Also:
Am PC werden Datensätze aufbereitet und dann darf es ruhig echt-Zeit 
benötigen. Das stört weiter nicht.

Diese Datensätze werden dem Modul über BTH mitgeteilt. Im Modul sitzt 
ein uController und der bereitet die Aufgaben auf und übermittelt dem 
Motorcontroller die notwendigen Parameter, erteilt Start/Stop Kommandos,
fragt Kontakte ab usw...
Da spreche ich dann von "Echt_Zeit"

Der Motorcontroller selbst steuert dann direkt die bis zu 3 Motore und 
macht sonst nichts anderes. So wie in Hartware gegossene Inteligenz 
dessen Verhalten von außen durch Parameter modifizierbar ist.
Da spreche ich dann von "echter Echtzeit"

Viele Grüße
Walter

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Du übersiehst bei deiner "echten" Echtzeit aber, dass einer der Slaves 
ein Kommando nicht mitbekommen könnte. Dann fährt ein Motor nicht mit 
und es kann eine Kollision geben.

Wenn echter Simultanbetrieb gefordert ist und nicht nur Punkt-zu-Punkt 
Positionierung, ist auch die Synchronisation der Bewegungen im Bereich 
einiger Millisekunden erforderlich. Ich glaube kaum, dass man das via BT 
mit verteilten Slaves so genau synchronisieren kann, selbst bei 
optimalen Empfangsbedingungen. Im Zweifelsfall dürfte da die gute alte 
Kabelverbindung doch deutlich einfacher sein, auch wenn du Stecker nicht 
magst.

Im Übrigen kostet die ganze Entwicklung der Software auch Geld, und zwar 
nicht zu knapp. Da dürfte bei Kleinserien der Stecker doch die 
günstigere Lösung sein ;)

Mit freundlichen Grüßen
Thorsten Ostermann

PS: In der Fachliteratur unterscheidet man zwischen harter und weicher 
Echtzeit. Hauptkriterium ist dabei, wie schlimm ein Verpassen eines 
Ereignisses ist. Damit ist ein normaler PC ein weichses Echtzeitsystem, 
eine Motion-Control Anwendung harte Echtzeit. Und zwar selbst dann, wenn 
die Zeitscheibe im PC um ein Vielfaches kleiner ist.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Thorsten Ostermann schrieb:
> PS: In der Fachliteratur unterscheidet man zwischen harter und weicher
> Echtzeit. Hauptkriterium ist dabei, wie schlimm ein Verpassen eines
> Ereignisses ist. Damit ist ein normaler PC ein weichses Echtzeitsystem,
> eine Motion-Control Anwendung harte Echtzeit. Und zwar selbst dann, wenn
> die Zeitscheibe im PC um ein Vielfaches kleiner ist.

Um da Mißverständnissen vorzubeugen noch eine kleine Anmerkung: auch mit 
einem "stinknormalen" PC kann man harte Echtzeit haben, z.B. mit einem 
Echtzeit-Linux. Diese Fähigkeit ist also hier nicht grundsätzlich von 
der Hardware sondern Software her beschränkt. Allerdings sollte man je 
nach geforderter Antwortverzögerung (letztendlich also der erreichbaren 
Geschwindigkeit) auf die richtige Wahl des Boards schauen. Je nach 
Hardware reagieren die Boards dann unterschiedlich schnell. Es gibt aber 
auch Steckkarten, die dieses selbst übernehmen. Da spielt der 
Unterbau-PC dann praktisch keine Rolle mehr und die Geschwindigkeiten 
sind nochmal deutlich höher.

Für den OP könnte das auch interessant sein, denn mit LinuxCNC, das auch 
auf einem solchen Echtzeitlinux basiert, kann man bis mindestens sechs 
Achsen gleichzeitig und synchron bedienen. Das funktioniert wirklich gut 
und kostet wenig Einsatz (gibt es auch als Live-CD zum testen).

von Frank Hacke (Gast)


Lesenswert?

Hallo,
habe mir jetzt erst mal zum Austesten eine Steuerung + Motor bestellt.
Wenn das alles gut funktioniert werde ich für die fehlenden 
Motorsteuerungen einfach einen Schalter zum Umschalten auf die anderen 
Motoren integrieren.

Das sollte fürs erste ausreichen.

Danke für Eure Hilfe.



Noch eine Frage.
Steuerung ist ab NEMA 17 spezifiziert.
Kann man damit problemlos auch kleinere Motoren Ansteuern?



Gruss
Frank

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hallo Frank!

Entscheidend ist vor allem, dass du den Motorstrom passend (also in 
diesem Fall niedrig genug) einstellen kannst.

Mit freundlichen Grüßen
Thorsten Ostermann

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.