Schrittmotor mit debian steuern?

Hast Du Probleme mit Hardware, die durch die anderen Foren nicht abgedeckt werden? Schau auch in den "Tipps und Tricks"-Bereich.
Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Schrittmotor mit debian steuern?

Beitrag von MartinV » 17.07.2016 18:03:52

Hallo!

Ich habe eine Frage zu einem Thema von dem ich null Ahnung habe.
Ich habe hier einen zerpflückten Plotter von fischertechnik mit zwei Schrittmotoren. Der Schrittmotor ist das Modell Nr. 32311, hier ein Prospekt zum Plotter.
Bild

Ich würde gern einen Schrittmotor ausbauen und mit meinem Mikroskop verbinden, um den Feintrieb für den Fokus in kleinen Schritten computergesteuert weiterzudrehen. Diese Aktion soll zeitlich abgestimmt werden mit Aufrufen von gphoto2 zur Kameraauslösung. Auf diese Weise will ich Serienbilder von Mikroskopaufnahmen machen, die eine Schärfeebene nach der anderen zeigen. Diese Bilder können später z.B. mit enfuse zu einem insgesamt scharfen Bild zusammengerechnet werden.

Nun kann ich zwar debian installieren und bedienen, und Miniprogramme in bash bekomme ich auch noch hin, doch von Elektronik habe ich wirklich null Ahnung. Ich habe nun mehrere Stunden das Internet durchforstet und nach Stichworten wie "Computersteuerung fischertechnik Robo Interface Schrittmotor" etc. gesucht, bin jedoch nicht schlau geworden.
Ich finde Hinweise auf verschiedene fischertechnik-Interfaces, die mit BASIC auf C64 etc. programmiert werden können, modernere Lösungen, die serielle Anschlüsse auf USB übertragen, Open-Source-Ersatzlösungen, die Windows-Steuerungssoftware ersetzen, Kabelanschlußerklärungen und sonst noch alles mögliche, ohne daß ich irgendwo klar durchblicken würde.

Hat hier jemand Erfahrung mit dieser Thematik? Ist es sinnvoll, daß ich da irgendetwas will und versuche, oder übersteigt der Bastelaufwand jeden vorstellbaren Nutzen?
Brauche ich wirklich ein zusätzliches Interface (oft wird genannt: Robo Interface), oder kann ich den Motor direkter mit dem Computer verbinden und ansteuern?

Ein paar Links, die ich mehr oder minder hilfreich fand:
Schrittmotor von Fischertechnik: Anschlüsse
Schrittmotor-Basteleien in einem Makro-Forum
Github: Open-Source-Ansteuerung fischertechnik Robo interface

Verwirrte Grüße, Martin
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Schrittmotor mit debian steuern?

Beitrag von rendegast » 17.07.2016 21:57:39

Hier steckt Schilli die Steuerbefehle für ein usb-device in perl-Skripte
http://perlmeister.com/snapshots/200905/index.html
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Schrittmotor mit debian steuern?

Beitrag von MartinV » 17.07.2016 22:44:04

Hier steckt Schilli die Steuerbefehle für ein usb-device in perl-Skripte
http://perlmeister.com/snapshots/200905/index.html
Danke für den Hinweis. Da der Motor aber kein USB-Kabel hat und ich vermutlicherweise nur schlecht eine USB-Direktverbindung zusammenlöten kann/sollte, stehe ich erst einmal noch auf dem Schlauch ...

Gerade bin ich am lesen und überlegen, ob ein Arduino-Controller sinnvoll ist. (Den könnte ich wiederum per USB ansteuern). Da lese ich wieder, daß der nicht genug Strom liefert, und ich noch zusätzliche Module und Netzteile brauche. Hmm ...

Edit: Die Robo-Controller von Fischertechnik werden unglaublich teuer gehandelt, die kommen nicht mehr in Frage.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

cosmac
Beiträge: 4573
Registriert: 28.03.2005 22:24:30

Re: Schrittmotor mit debian steuern?

Beitrag von cosmac » 17.07.2016 23:04:00

hi,
MartinV hat geschrieben:Brauche ich wirklich ein zusätzliches Interface (oft wird genannt: Robo Interface), oder kann ich den Motor direkter mit dem Computer verbinden und ansteuern?
Der Motor braucht Spannungen und Ströme, die ein PC nicht liefern kann. Du brauchst also auf jeden Fall eine Art Verstärker bzw. Endstufe und ein Netzteil. Ich nenne das Gerät mal Schrittmotor-Treiber (das ist Hardware, keine Geräte-Treiber). Der muss zum Motor passen bzw. einstellbar sein, damit er genug Strom für die Anwendung liefert, aber nicht so viel, dass der Motor abbrennt. Schrittmotoren brennen witzigerweise auch ohne Last und bei niedriger Drehzahl oder sogar im Stillstand ab!

Ein einfacher Schrittmotor-Treiber (z.B. [1]) besteht aus einem IC für 4 bis 5 Euro und einem Dutzend Kleinteilen. Der braucht ein Signal für die Drehrichtung und einen Impuls für jeden Schritt. Wenn man ihn an einen parallelen Druckerport (gibt's auch als USB-Adapter) anschließt, sieht die Script-Zeile für "einen Schritt weiter" so aus:

Code: Alles auswählen

echo -n "C" > /dev/lp0
Bzw. "A" für die umgekehrte Richtung oder "@" für "Leerlauf". Direkter geht's nicht.
Man kann ihn im Prinzip genauso an einem seriellen Port betreiben, braucht aber für die Richtungsumschaltung ein simples Programm, das RTS oder DTR steuern kann. Direkt per Script geht das wohl nicht.

Die Luxus-Modelle werden wirklich programmiert und können mit definierter Beschleunigung eine bestimmte Position anfahren oder mit 1024 Mikro-Schritten einen seidenweichen Rundlauf versuchen oder noch raffiniertere Sachen. Sowas lohnt sich, wenn man den Motor voll ausreizen muss. Das alles scheint mir für deine Anwendung nicht so wichtig zu sein.

Wie gut der Schrittmotor-Treiber im Robo Interface ist, kann man schlecht sagen. Es ist ja vor allem ein Universal-Interface und von daher nicht besonders passend. Aber es passt wohl zum Motor und es gibt fertige Software. Andererseits ist der Software-Aufwand für einfache Schrittmotor-Treiber minimal, jedenfalls für diese Anwendung. Schwierige Entscheidung...
Ist es sinnvoll, daß ich da irgendetwas will und versuche, oder übersteigt der Bastelaufwand jeden vorstellbaren Nutzen?
Wie stellst du dir denn die Mechanik vor, also die Verbindung Motor-Mikroskop? Ich würde wohl daran scheitern. Brauchst du sowieso ein Getriebe für die µm/Schritt (48 Schritte pro Umdrehung erscheint mir ziemlich grob)? Das hätte den Vorteil, dass der Motor auf jeden Fall genug Drehmoment hat, das ganze wird "nur" langsamer. Wie lange darf es denn von Ebene zu Ebene dauern?


[1] http://www.watterott.com/de/Pololu-A498 ... tortreiber + http://www.watterott.com/de/Kuehlkoerper-6-3x8mm
Beware of programmers who carry screwdrivers.

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Schrittmotor mit debian steuern?

Beitrag von MartinV » 18.07.2016 00:43:15

Hallo cosmac,

danke für Deine ausführliche Antwort!
Der Motor braucht Spannungen und Ströme, die ein PC nicht liefern kann.
Ich finde nur wenig klare Angaben zu den Leistungsdaten des Motors. Die inoffizielle Fischertechnik-Datenbank schreibt "Schrittmotor 7,5° bipolar 6V 0,XA". Also 6 Volt Spannung, unklare Ampere-Angabe. Auf fischertechnik-fans.de steht etwas von 12 Watt Strombedarf. Umgerechnet ergäbe das 2 Ampere.
Der Motor braucht aber in Sachen Kraft nur sehr wenig zu leisten, so daß wahrscheinlich auch deutlich weniger genügt. Ich denke, in dem Bereich kann ein PC (bei mir ein Laptop) prinzipiell auch Strom liefern, aber ein Netzteil als einfachere Lösung ist völlig ok.
Ein einfacher Schrittmotor-Treiber (z.B. [1]) besteht aus einem IC für 4 bis 5 Euro und einem Dutzend Kleinteilen. Der braucht ein Signal für die Drehrichtung und einen Impuls für jeden Schritt. Wenn man ihn an einen parallelen Druckerport (gibt's auch als USB-Adapter) anschließt, sieht die Script-Zeile für "einen Schritt weiter" so aus:

Code: Alles auswählen

    echo -n "C" > /dev/lp0
Bzw. "A" für die umgekehrte Richtung oder "@" für "Leerlauf". Direkter geht's nicht.
Das gefällt mir! :D
"Leerlauf" ist mir unklar - ist der Motor dann ohne Strom (und darf abkühlen), oder ist das ein explizites Signal zum Halten der Position?
Die Luxus-Modelle werden wirklich programmiert und können mit definierter Beschleunigung eine bestimmte Position anfahren oder mit 1024 Mikro-Schritten einen seidenweichen Rundlauf versuchen oder noch raffiniertere Sachen. Sowas lohnt sich, wenn man den Motor voll ausreizen muss. Das alles scheint mir für deine Anwendung nicht so wichtig zu sein.
Ja, die vielen Extras brauche ich nicht. Ich brauche den Schrittmotor wirklich nur elementar "Schritt für Schritt", in gleichbleibenden Abständen.
Wie stellst du dir denn die Mechanik vor, also die Verbindung Motor-Mikroskop?
Diese Lösung mit Zahnrad am Feintrieb hat mir gut gefallen.
Noch einfacher denke ich an eine Gummiband-Verbindung, wobei das Gummiband auf der schmalen Achse des Motors einerseits und auf dem großen Feintriebrad andererseits aufliegt, nach dem Prinzip eines Keilriemens. Eine ganze Umdrehung des Schrittmotors wäre nur eine kleine Teildrehung des Feintriebs.
Das hätte den Vorteil, dass der Motor auf jeden Fall genug Drehmoment hat, das ganze wird "nur" langsamer. Wie lange darf es denn von Ebene zu Ebene dauern?
Der Feintrieb dreht sich sehr leicht, der Kraftaufwand ist sehr gering. Von Ebene zu Ebene darf es eine oder mehrere Sekunden dauern; tatsächlich braucht es nach jeder Kameraaufnahme und Motordrehung einen Moment, bis die Erschütterungen abgeklungen sind und das Bild im Mikroskop wieder ruhig ist.
Je kleinere Schritte (bzw. Weiterdrehung des Feintriebs) möglich sind, desto besser. Gerade bei höchsten Auflösungen (die Grenze meines stärksten Objektivs liegt bei 1250-fach) bewirkt schon eine winzige Bewegung am Feintrieb deutliche Unterschiede.
Das gefällt mir, klein, überschaubar, und kann genau und nur das, was ich brauche. Und statt mehreren hundert Euro für Robo-Controller ein Preis für den kleineren Geldbeutel. :)
Ich sehe noch nicht, wie das Interface mit Strom versorgt wird (Netzteilanschluß) und wie es an den Parallelport angeschlossen wird. Ich nehme an, da gibt es auch etwas zum Anlöten?
Ich werde direkt mal schauen, was es an vergleichbaren Controllern gibt, wo das vllt. schon dran ist.

Vielen Dank! :THX:
Martin
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

BenutzerGa4gooPh

Re: Schrittmotor mit debian steuern?

Beitrag von BenutzerGa4gooPh » 18.07.2016 09:15:25

Sorry, ich habe jetzt nicht den ganzen Thread gelesen. Mit einer SPS Simatic habe ich mal Schrittmotoren angesteuert: Einfach Byte-Folgen auf eine parallele, digitale Schnittstelle rausgeschreiben, dann ein preiswerter Bastel-Bausatz speziell zur Ansteuerung von Schrittmotoren. Fertsch. (Allerdings hat die SPS höhere Spannungen und Ströme auf den digitalen Schnittstellen.)

Suche mal nach entsprechenden Bausätzen bei Conrad, Reichelt etc.
(Ich könnte jetzt den damaligen Bausatz rausuchen, aber erstens ist das Jahre her, vmtl. nicht mehr erhältlich und zweitens stimmt die Ansteuerung (Spannungen/Ströme) nicht für GPIO-Pins oder USB, was du vmtl brauchst.)

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Schrittmotor mit debian steuern?

Beitrag von ThorstenS » 18.07.2016 09:45:18

Ich denke die meisten würden sich heutzutage einen RaspBerry Pi 2/3 kaufen und die Motoren über die GPIOs ansteuern. Das Netz ist voll von Beispielcode und raspian/jessie auf armhf ist genauso gut wie dein debian/jessie auf amd64.
Vllt. kannst du direkt auch die 8Mpx Kamera vom raspi mit einem Objektiv davor benutzen. Die Aufnahme gelingt mit einem „raspistill“ Aufruf - da ist schon alles dabei, was du brauchst.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Schrittmotor mit debian steuern?

Beitrag von smutbert » 18.07.2016 09:47:41

hat noch niemand den Raspberry Pi erwähnt ☺ edit: ah, doch!

Fällt mir nur auf, weil das meiner Meinung nach eine attraktive Möglichkeit ist zu ein paar GPIO-Pins zu kommen. Fertige Platinen zur Ansteuerung von Schrittmotoren und allem möglichen anderen sollten leicht zu finden sein inklusive Beispielen für den Raspberry Pi.
So riskiert man beim Basteln nicht die Hardware des PCs, ganz abgesehen davon, dass viele PCs (zB meiner) gar keinen Parallelport mehr haben.
Zuletzt geändert von smutbert am 18.07.2016 12:22:54, insgesamt 1-mal geändert.

cosmac
Beiträge: 4573
Registriert: 28.03.2005 22:24:30

Re: Schrittmotor mit debian steuern?

Beitrag von cosmac » 18.07.2016 11:26:15

MartinV hat geschrieben:Ich finde nur wenig klare Angaben zu den Leistungsdaten des Motors.
Wir wissen, dass es ein bipolarer Motor mit 4 Anschlussdrähten ist der max. 12 Watt braucht verträgt, das reicht. Bei Schrittmotoren bestimmt der Treiber Strom und Spannung, nicht der Motor. Ein Treiber kann fast alle Motoren seiner Leistungsklasse ansteuern solange die Anzahl der Anschlüsse (4: bipolar, mehr: unipolar oder spezial) zusammen passt.
Der Motor braucht aber in Sachen Kraft nur sehr wenig zu leisten, so daß wahrscheinlich auch deutlich weniger genügt. Ich denke, in dem Bereich kann ein PC (bei mir ein Laptop) prinzipiell auch Strom liefern
Na gut, die 2.5 Watt aus einem USB-Port reichen uns vielleicht. Aber es sind nur 5 Volt, normal nimmt man 24 oder wenigstens 12. Die meisten Treiber funktionieren nicht mit so niedrigen Spannungen, und wenn, erreicht man nur sehr niedrige Drehzahlen. Ein DC/DC-Wandler könnte helfen, aber der braucht selbst schon ein halbes Watt...
"Leerlauf" ist mir unklar - ist der Motor dann ohne Strom (und darf abkühlen), oder ist das ein explizites Signal zum Halten der Position?
Der Strom wird abgeschaltet, z.B. weil man den Motor von Hand drehen will. Ein explizites Halt gibt es nicht, der Zustand zwischen zwei Schritten ist Halt.
Ich brauche den Schrittmotor wirklich nur elementar "Schritt für Schritt", in gleichbleibenden Abständen.
Die Abstände bestimmt dein Script. sleep 0.1 zwischen zwei Schritten ergibt 10 Schritte pro Sekunde.
Diese Lösung mit Zahnrad am Feintrieb hat mir gut gefallen. Noch einfacher denke ich an eine Gummiband-Verbindung
Die Zahnrad-Lösung gefällt mir deutlich besser. Ein Gummiband wird gedehnt solange der Motor läuft und dreht den Feintrieb u.U. ein Stück zurück, sobald der Motor stoppt.
Je kleinere Schritte (bzw. Weiterdrehung des Feintriebs) möglich sind, desto besser.
Je mehr Getriebeuntersetzung, desto besser. Zusätzlich kann der Treiber den Motor nur einen halben Schritt weit drehen lassen, oder 1/4, 1/8 usw. Dabei wird die Schrittweite aber immer ungenauer, Versuch macht kluch. Die meisten einfachen Treiber können 1/8 oder 1/16.
Ich sehe noch nicht, wie das Interface mit Strom versorgt wird (Netzteilanschluß) und wie es an den Parallelport angeschlossen wird. Ich nehme an, da gibt es auch etwas zum Anlöten?
In der Preisklasse geht es nur mit löten. Man kann die Drähte direkt in die Bohrungen der Platine löten oder kleine Klemmen einlöten. So ab 20 Euro sollte es Platinen mit Schraubklemmen geben.

Zum Pi: Einen echten Vorteil bietet der Pi dann, wenn man einen Schrittmotor-Treiber findet, den man direkt auf die Pi-Platine stecken kann. Eins der neuen Pi-Modelle ist angeblich Arduino-kompatibel, aber aus der Ecke kommt viel Schrott, z.B. Treiber, die schon im letzten Jahrtausend veraltet waren und/oder die keine Stromregelung haben. Die Programmbeispiele braucht man in dem Fall deshalb, weil man jeden Motorstrom einzeln per Software steuern muss. Ansonsten sehe ich eigentlich keinen Unterschied zu einem Parallelport am PC.
Beware of programmers who carry screwdrivers.

OppaErich
Beiträge: 323
Registriert: 13.04.2005 16:10:16
Wohnort: Essen

Re: Schrittmotor mit debian steuern?

Beitrag von OppaErich » 18.07.2016 12:08:01

smutbert hat geschrieben:hat noch niemand den Raspberry Pi erwähnt ☺ edit: ah, doch!

Fällt mir nur auf, weil das meiner Meinung nach eine attraktive Möglichkeit ist zu ein paar GPIO-Pins zu kommen. Fertige Platinen zur Ansteuerung von Schrittmotoren und allem möglichen anderem sollten leicht zu finden sein inklusive Beispielen für den Raspberry Pi.
So riskiert man beim Basteln nicht die Hardware des PCs, ganz abgesehen davon, dass viele PCs (zB meiner) gar keinen Parallelport mehr haben.
+1

RasPi und eine H-Brücke. Die H-Brücken gibt's für ca. 5€ aus China. Ein Arduino tut es auch, da der sich preislich nicht viel vom RasPi unterscheidet, würde ich den RasPi bevorzugen. Da hast Du dann noch die Qual der Wahl unter 100 fertigen Lösungen.

http://www.elektronx.de/tutorials/schri ... pberry-pi/

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Schrittmotor mit debian steuern?

Beitrag von MartinV » 19.07.2016 00:07:28

Jana66 hat geschrieben:Mit einer SPS Simatic habe ich mal Schrittmotoren angesteuert: Einfach Byte-Folgen auf eine parallele, digitale Schnittstelle rausgeschreiben, dann ein preiswerter Bastel-Bausatz speziell zur Ansteuerung von Schrittmotoren. Fertsch. (Allerdings hat die SPS höhere Spannungen und Ströme auf den digitalen Schnittstellen.)
Suche mal nach entsprechenden Bausätzen bei Conrad, Reichelt etc.
Danke für den Hinweis! Ich habe mal nach entsprechenden Bausätzen geschaut, doch lande ich bei diesen Geräten schnell bei einigen hundert Euros; ich suche nach einer wesentlich preisgünstigeren Lösung.
ThorstenS hat geschrieben:Vllt. kannst du direkt auch die 8Mpx Kamera vom raspi mit einem Objektiv davor benutzen. Die Aufnahme gelingt mit einem „raspistill“ Aufruf - da ist schon alles dabei, was du brauchst.
Das ist mal eine unkonventionelle und interessante Idee!
Für mikroskopische Aufnahmen im maximal möglichen Bereich der Vergrößerung werde ich das nicht machen, da braucht es doch mehr als Objektiv und Kameralinse (insbesondere eine gute Lichtführung mit Kondensor und Leuchtfeldblende), doch mit einem nur leicht vergrößernden Objektiv, dem zweiten Motor und Grundaufbau des oben gezeigten Plotters, kombiniert mit Raspberry Pi und 8Mpx Kamera, könnte ich einen Makrofoto-Stackshot-Aufbau realisieren. Der Raspberry wäre dann auf der Welle montiert, würde den Schrittmotor ansteuern, und in winzigen Schritten vorwärtswandern und dabei zahlreiche Fotos von Kleinstobjekten machen, die zu groß für ein Mikroskop sind. Diese Bilder können dann wieder mit enfuse zusammengerechnet werden.
Vielleicht ein zukünftiges Projekt!
smutbert hat geschrieben:So riskiert man beim Basteln nicht die Hardware des PCs, ganz abgesehen davon, dass viele PCs (zB meiner) gar keinen Parallelport mehr haben.
Es gibt ja USB-Parallelport-Adapter, der Punkt wäre kein Problem. Doch wo ist die Gefahr für den PC bei der direkten Ansteuerung eines Schrittmotortreibers? Eventuell Spannungsübertragung vom Netzteil in den USB-Port bei Lötfehlern oder Kurzschlüssen?
OppaErich hat geschrieben:RasPi und eine H-Brücke. Die H-Brücken gibt's für ca. 5€ aus China. Ein Arduino tut es auch, da der sich preislich nicht viel vom RasPi unterscheidet, würde ich den RasPi bevorzugen. Da hast Du dann noch die Qual der Wahl unter 100 fertigen Lösungen.
Ich habe mir die mögliche Lösung mit dem Raspberry Pi einmal angeschaut und durch den Kopf gehen lassen.
Auf der einen Seite ist es verlockend, da einige technische Problemstellungen bereits gelöst sind, etwa die Stromversorgung des Motors und der Anschluß an den Computer.

Der Haken liegt aber in der synchronen Zusammenarbeit mit der Kamera.
Zur Verdeutlichung: Kamera und Schrittmotor sollen zeitlich abgestimmt zusammenarbeiten.
Bevor die Aufnahmenserie startet, mache ich erst Probefotos (mit Entangle), und stelle Belichtungszeit und ISO-Wert ein. Dafür sollte die Kamera am Laptop angeschlossen sein. Die Aufnahmen sollen anschließend ebenfalls auf dem Laptop liegen, um mit enfuse zusammengerechnet zu werden.

Ich könnte natürlich auch die Kamera an den Raspberry Pi anschließen, und ein Netzwerk zwischen beiden debian-Systemen herstellen, und mir die Bilder der Kamera übertragen lassen. Möglicherweise gibt es aber Zeitverzögerungen, insbesondere bei LiveView-Übertragungen, bei denen der Fotoapparat effektiv wie eine einfache Videokamera arbeitet.
Noch mehr denke ich aber, das widerspricht dem KISS-Prinzip. Mit der Vereinfachung des Schrittmotor-Anschlusses würde ich in Kauf nehmen, daß ein zweiter vollwertiger Computer samt Betriebssystem zwischengeschaltet wird, der mehr kann, als er müßte. Zugleich muß mehr Aufwand getrieben werden, um die Systeme sinnvoll zusammenarbeiten zu lassen.

Im Vergleich dazu wäre der Arduino-Controller näher am KISS-Prinzip, da er direkter vom Laptop aus gesteuert wird. Aber mit Cosmacs Idee, den Schrittmotor-Treiber über den Parallelport zu betreiben, ist selbst der Arduino obsolet, und es werden nur tatsächlich benötigte Komponenten verwendet.
cosmac hat geschrieben:Wir wissen, dass es ein bipolarer Motor mit 4 Anschlussdrähten ist der max. 12 Watt braucht verträgt, das reicht. Bei Schrittmotoren bestimmt der Treiber Strom und Spannung, nicht der Motor. Ein Treiber kann fast alle Motoren seiner Leistungsklasse ansteuern solange die Anzahl der Anschlüsse (4: bipolar, mehr: unipolar oder spezial) zusammen passt.
Ok, jetzt sehe ich klarer. :)
Ich habe mir die Netzteile bei Wetterott mal angeschaut. Es gibt ein Modell 3-12V/1A, daß ich als geeignet für den von Dir genannten Schrittmotortreiber Pololu A4988 und den fischertechnik Schrittmotor ansehen würde. Vorteilhaft an diesem Netzteil sind die verschieden wählbaren Spannungen, so daß ich sowohl die Maximalstärke von 12 Watt erreichen als auch kleinere Leistungen testen kann. Da der Schrittmotortreiber ab 8V angegeben wird, könnte ich zumindest 9V/1A und 12V/1A testen, vielleicht auch 7,5V/1A. Das entspricht 12, 9 oder 7,5 Watt.
cosmac hat geschrieben:Na gut, die 2.5 Watt aus einem USB-Port reichen uns vielleicht. Aber es sind nur 5 Volt, normal nimmt man 24 oder wenigstens 12. Die meisten Treiber funktionieren nicht mit so niedrigen Spannungen, und wenn, erreicht man nur sehr niedrige Drehzahlen. Ein DC/DC-Wandler könnte helfen, aber der braucht selbst schon ein halbes Watt...
Die Stromversorgung aus dem Rechner ist ja kein Muß, wäre nur ein nettes Extra ...
Und bevor der Motor doch zu schwach auf der Brust ist, nehme ich einfach ein Netzteil.
cosmac hat geschrieben:Die Zahnrad-Lösung gefällt mir deutlich besser. Ein Gummiband wird gedehnt solange der Motor läuft und dreht den Feintrieb u.U. ein Stück zurück, sobald der Motor stoppt.
Ok, da hast Du recht. ;-) Die Zahnrad-Variante ist wesentlich präziser.
Je mehr Getriebeuntersetzung, desto besser. Zusätzlich kann der Treiber den Motor nur einen halben Schritt weit drehen lassen, oder 1/4, 1/8 usw. Dabei wird die Schrittweite aber immer ungenauer, Versuch macht kluch. Die meisten einfachen Treiber können 1/8 oder 1/16.
Der von Dir genannte Treiber bietet ja schon einiges: "Five different step resolutions: full-step, half-step, quarter-step, eighth-step, and sixteenth-step"
Ich nehme an, half-step wird noch recht präzise sein, noch feinere Teilschritte werden zusehends ungenauer.
Doch schon die Übersetzung Schnecke/Zahnrad bedeutet ja schon eine erhebliche Verkürzung des Weges. Es fällt mir schwer, im Voraus einzuschätzen, wie fein die Bewegungen werden, doch kann es gut sein, daß einzelne full-steps schon fein genug sind. Womöglich sogar so fein, daß ich mehrere full-steps zwischen den Aufnahmen mache. Das wird das Experiment später zeigen.
In der Preisklasse geht es nur mit löten. Man kann die Drähte direkt in die Bohrungen der Platine löten oder kleine Klemmen einlöten. So ab 20 Euro sollte es Platinen mit Schraubklemmen geben.
Ich habe mir den Schaltplan des Schrittmotortreibers mal angeschaut.
Als Laie verstehe ich nicht alles, aber soweit ich sehe, stelle ich mir das so vor:
-An VMOT und GND wird das Netzteil angeschlossen. Dazu schneide ich den Klinkenstecker ab und löte die beiden Kabel direkt an.
- An 1A, 1B, 2A und 2B werden die Kabel des Schrittmotors angelötet. (Zuordnung muß ich noch herausfinden, evtl. hilft die fischertechnik-Anleitung zum Plotter weiter)
- Die Kästen "microcontroller" und "logic power supply" fallen weg, da der Laptop als "Makrocontroller" dient und zudem seine eigene Stromversorgung hat. Die Anschlüsse VDD und der 2. GND werden nicht benötigt.
- Auf der linken Seite des Treibers werden 8 Kontakte aufgelistet, davon sind drei hervorgehoben: RESET, STEP und DIR. Diese Anschlüsse werden an das Parallelportkabel angeschlossen. Brauche ich nur diese drei hervorgehobenen? Gibt es eine Spezifikation, welcher Pin des Parallelsteckers an welchen Anschluß gehört? Kann ich einfach Kabel in den Stecker stopfen und deren anderes Ende an der Treiber löten?

EDIT:
OppaErich hat auf eine Raspberry-Anleitung verlinkt, in der ein 5V-Schrittmotor mit bereits angeschlossenem Treiber verwendet wird.
Ich habe noch ein vergleichbares 5V-Modell mit Treiber gefunden. Beide preislich unter 10,- Euro. Beide haben eine integrierte Getriebeübersetzung, so daß ca. 4000 bzw. ca. 500 full-steps für eine ganze Umdrehung nötig sind.
Die Motoren sind sehr langsam, was für meine Anwendung in Ordnung ist, und durch die extreme Untersetzung (Getriebe im Motor + Schnecke/Zahnrad-Lösung) könnte die geringe Stromversorgung eines USB-Ports ausreichen. Kann ich einfach ein USB-Kabel einstöpseln (zusätzlich zum Parallelport-Adapter) und Strom abziehen?
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

BenutzerGa4gooPh

Re: Schrittmotor mit debian steuern?

Beitrag von BenutzerGa4gooPh » 19.07.2016 14:37:52

Danke für den Hinweis! Ich habe mal nach entsprechenden Bausätzen geschaut, doch lande ich bei diesen Geräten schnell bei einigen hundert Euros; ich suche nach einer wesentlich preisgünstigeren Lösung.
Also eine Simatic SPS solltest du nun nicht nehmen. Mir ging es rein um die Ansteuerungs-Platine/Bausatz/Leistungsteil für den Schrittmotor bzw. um das Steuerungsprinzip.
Die Motoren sind sehr langsam, was für meine Anwendung in Ordnung ist, und durch die extreme Untersetzung (Getriebe im Motor + Schnecke/Zahnrad-Lösung) könnte die geringe Stromversorgung eines USB-Ports ausreichen.
Schrittmotoren sind in weiten Bereichen so schnell ode so langsam, wie du die kodierten Schritte rausschreibst, deine selbst definierte Pausenlänge dazwischen, am Ende sind das schnelle oder langsame Spannungsänderungen an den Drähten und somit Magnetfeldänderungen. Du kannst beispielsweise einen Sekundenzeiger oder einen Stundenzeiger mit dem gleichen Algorithmus und unterschiedlichen Pausenlängen ansteuern. Übersetzung/Untersetzung benötigst du dann, wenn die Maximalgeschwindigkeit des Motors nicht genügt bzw. wenn du noch (Teil-)Schritte, deren Drehwinkel untersetzen willst für Feinsteuerung. Aber überlege mal, wie viele (Teil-) Schritte du pro Umdrehung hast und beachte, dass ein Getriebe meist Spiel hat. Ansonsten Getriebe aufgrund baulicher Notwendigkeiten nötig. Ein Gummiantrieb/Riemenantrieb/Zahnriemenantrieb besitzt kaum Spiel, kann jedoch nur begrenzte Drehmomente übertragen. Endlagen sind für den Steuerungsbeginn zu ermitteln (Nullstellung), d. h. wenn der Gummi/Riemen mal verrutscht ist das kein Problem, Steuerungsbeginn erfolgt durch Fahren in eine Endlage oder "Nullstellung", dort erfolgt eine Rückmeldung, die in das Steuerungsprogramm übernommen werden muss! Höre und schaue mal deinem (Tintenstrahl-) Drucker nach dem Einschalten zu. Man könnte natürlich auch den aktuellen Standort aufwändig messen und das Steuerungsprogram so initialisieren. Ein Gummiantrieb/Riemenantrieb stellt auch eine einfache Überlastsicherung dar.
Doch wo ist die Gefahr für den PC bei der direkten Ansteuerung eines Schrittmotortreibers? Eventuell Spannungsübertragung vom Netzteil in den USB-Port bei Lötfehlern oder Kurzschlüssen?
Dringend solltest du dich mit Potentialtrennung befassen, so du mehrere Geräte/Schnittstellen mit unterschiedlichen Spannungen einsetzt. Optokoppler bieten sich dafür an. Dein Schrittmotortreiber/Bausatz mit Spannung entsprechend Schrittmotorbedarf sollte das Richtung USB bzw. GPIO besitzen. Sonst geht was putt. :evil:
https://de.wikipedia.org/wiki/Galvanisc ... Baugruppen
Bei mehreren Stromversorgungen mehrerer Geräte mit gleichen Spannungen genügt (meist) eine gemeinsame Masseleitung. Ich rate trotzdem zur Poterntailtrennung - schon wegen Verpolungsschutz. Und immer dran denken: Ein Raspi gleich mit parallelen GPIOs oder Microcontroller-Board kostet wohl 50 Euro, manches kostet mehr. :mrgreen:

Die verlinkten Schrittmotoren mit Ansteuerung sind speziell für den Arduino, nix USB. USB zur Stromversorgung von Schrittmotoren ist maximal eine Notlösung für sehr kleine Motoren. Dazu müsste man die Datenblätter nachvollziehen. Ich würde ja an deiner Stelle nochmal in mich gehen und mich entscheiden: Steuerung per Raps, per Arduino oder googeln nach einen Ansteuerungsbausatz (evtl gleich mit Motor bei den geringen Preisen) direkt für PC/USB. Vielleicht gibt es ja sowas. Eine eventuelle USB-Stromversorgung ist von der Leistungsaufnahme unter Last des Motors (Nennstrom, Nennleistung) abhängig. Microcontroller besitzen auch physische Interrupteingänge, die man sehr elegant bei äußernen Ereignissen ohne Polling/Abfrageschleifen auswerten kann. Musst du jedoch in C oder Assembler programmieren.

Wenn du elektrisch nicht so viel Ahnung hast, nimm eine Fertiglösung, Arduino mit Schrittmotor und spezifischer Steuerung oder eben Raps & Co. Gerade mit unterschiedlichen Spannungen und Leistungsüberlastung der Ausgänge kann man viel falsch machen und uneleganter "Baurich" mit mehreren Netzteilen wird es auch. :wink:

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Schrittmotor mit debian steuern?

Beitrag von MartinV » 19.07.2016 17:52:28

Hallo Jana,

hui, jetzt raucht mir aber der Kopf. :-)
Mal angenommen, ich baue eine Lösung mit einem 5V-Schrittmotor:
Schrittmotoren sind in weiten Bereichen so schnell ode so langsam, wie du die kodierten Schritte rausschreibst, deine selbst definierte Pausenlänge dazwischen, am Ende sind das schnelle oder langsame Spannungsänderungen an den Drähten und somit Magnetfeldänderungen.
Nach dem, was ich gelesen habe, ist die Kapazität der von mir zuletzt genannten 5V-Schrittmotoren sehr begrenzt und die Geschwindigkeit nicht beliebig steigerbar. Das ist aber bei mir in Ordnung, da es für die Mikroskopanwendung nur um kleine Schritte und kurze Wege geht.
Übersetzung/Untersetzung benötigst du dann, wenn die Maximalgeschwindigkeit des Motors nicht genügt bzw. wenn du noch (Teil-)Schritte, deren Drehwinkel untersetzen willst für Feinsteuerung.
In diesem Fall brauche ich eine Untersetzung, damit zum einen der Feintrieb des Mikroskopes möglichst minimal bewegt wird (größere Bewegung ist bei Bedarf mit mehreren Motorschritten möglich), zum anderen um die vermutlich sehr geringe Kraft des 5V-Motors nutzen zu können. Der Mikroskop-Feintrieb wird nur um sehr wenige Grad (vielleicht 5°-15°) für z.B. 50-200 Fotos bewegt. (Gefühlt, nicht gemessen ;-) )
Endlagen sind für den Steuerungsbeginn zu ermitteln (Nullstellung), d. h. wenn der Gummi/Riemen mal verrutscht ist das kein Problem, Steuerungsbeginn erfolgt durch Fahren in eine Endlage oder "Nullstellung", dort erfolgt eine Rückmeldung, die in das Steuerungsprogramm übernommen werden muss!
Den Startpunkt für die Aufnahmenserie ermittele ich visuell im Mikroskop. Dazu suche ich die erste gänzlich unscharfe Abbildungsebene unterhalb des Motivs. Schrittweise werden Aufnahmen gemacht und das Objektiv mittels Feintrieb nach oben gedreht. Gestoppt wird die Aufnahmenreihe entweder manuell von mir, wenn ich sehe, daß das Motiv aus dem Schärfebereich verschwindet, oder nach einer vorgegeben Anzahl Aufnahmen.
(Der Weg immer nur von unten nach oben ist sehr wichtig, damit der Motor das Objektiv nicht versehentlich auf den Objektträger presst.). Start- und Endlage sind also letztlich von mir fallweise festgelegt und überwacht.
Jana66 hat geschrieben:Dringend solltest du dich mit Potentialtrennung befassen, so du mehrere Geräte/Schnittstellen mit unterschiedlichen Spannungen einsetzt. Optokoppler bieten sich dafür an. Dein Schrittmotortreiber/Bausatz mit Spannung entsprechend Schrittmotorbedarf sollte das Richtung USB bzw. GPIO besitzen. Sonst geht was putt. :evil:
https://de.wikipedia.org/wiki/Galvanisc ... Baugruppen
Hui, hier blicke ich überhaupt nicht durch, bin mit den Fachbegriffen im Link auch nicht vertraut.
Unabhängig davon, ob die Stromversorgung per USB oder per Netzteil geschieht: Brauche ich einen Schutz/eine Potentialtrennung zwischen der Treiberplatine und den Parallelport-Adapter? Wenn ja, wie wäre das machbar?
Ein Gummiantrieb/Riemenantrieb stellt auch eine einfache Überlastsicherung dar.
Nach dem, was ich über die 5V-Motoren gelesen habe, bleiben sie eher einfach stehen, als das sie die Kraft hätten, etwas anderes zu überdrehen. :)
Die verlinkten Schrittmotoren mit Ansteuerung sind speziell für den Arduino, nix USB. USB zur Stromversorgung von Schrittmotoren ist maximal eine Notlösung für sehr kleine Motoren. Dazu müsste man die Datenblätter nachvollziehen.
Der Gedanke war einfach, nur die Stromversorgung eines USB-Anschlusses anzuzapfen. Die Steuerung sollte weiterhin über den Parallelport-Adapter laufen.
Ich habe mir einige Beschreibungen zum USB-Port durchgelesen, beim 2.0-Standart liefert der Port pauschal 5V und 100mA, die man "ungefragt" abholen darf. Auf Anforderung des Gerätes kann der Host bis zu 500mA erlauben. Das wären "ungefragt" 0,5W, und maximal 2,5W. 0,5W klingt mir arg wenig, und wie ich kommunizieren soll, daß ich 500mA haben will, weiß ich nicht. (Manche Geräte nehmen sich das wohl auch, ohne zu fragen ...). Eventuell würde ein Ladekabel für Handys (nach Micro-USB-Standard) von sich aus eine solche Meldung an den Host machen, doch das weiß ich nicht.
Zudem besteht die Gefahr, daß der Motor bei Überlast mehr Strom anfordert und den Rechner überlastet.

Ich denke deshalb inzwischen, ein Netzteil ist hier doch die bessere Wahl. Ein Netzteil mit verstellbarer Spannung 3-12V und 1A erlaubt mir zudem, die tatsächlich benötigte Leistung auszutesten.
Ich würde ja an deiner Stelle nochmal in mich gehen und mich entscheiden: Steuerung per Raps, per Arduino oder googeln nach einen Ansteuerungsbausatz (evtl gleich mit Motor bei den geringen Preisen) direkt für PC/USB. Vielleicht gibt es ja sowas.
Nach Fertigbausätzen und Fertiggeräten habe ich schon viel gesucht, aber kaum etwas geeignetes gefunden (jedenfalls nichts im finanziell sinnvollen Rahmen).

Meine persönliche Neigung spricht stark für eine Lösung mit Schrittmotortreiber, Parallelport-Adapter und Netzteil. Ob es der zuerst besprochene fischertechnik-Schrittmotor mit separatem Treiber oder eines der 5V-Geräte sein soll (oder noch eine andere, noch nicht gesehene Variante), ist noch unentschieden. Mir ist noch unklar, ob davon eine echte Gefahr für den Computer ausgeht.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

cosmac
Beiträge: 4573
Registriert: 28.03.2005 22:24:30

Re: Schrittmotor mit debian steuern?

Beitrag von cosmac » 20.07.2016 12:37:40

MartinV hat geschrieben:Ich habe mir den Schaltplan des Schrittmotortreibers mal angeschaut.
- Die Kästen "microcontroller" und "logic power supply" fallen weg, da der Laptop als "Makrocontroller" dient und zudem seine eigene Stromversorgung hat. Die Anschlüsse VDD und der 2. GND werden nicht benötigt.
Leider nicht, VDD ist die Stromversorgung des Treiber-ICs. Watterott schreibt aber, dass es eine ähnliche Platine gibt, auf der VDD aus der Motorspannung erzeugt wird.
- Auf der linken Seite des Treibers werden 8 Kontakte aufgelistet, davon sind drei hervorgehoben: RESET, STEP und DIR. Diese Anschlüsse werden an das Parallelportkabel angeschlossen. Brauche ich nur diese drei hervorgehobenen?
Minimal brauchst du STEP und DIR und natürlich GND. ENABLE und/oder RESET sind optional um den Strom abzuschalten.
Gibt es eine Spezifikation, welcher Pin des Parallelsteckers an welchen Anschluß gehört?
Äußerst unwahrscheinlich, aber es gibt mehr oder weniger praktische Anschlussbelegungen. Ich würde D0 und D1 mit STEP und DIR belegen und optionale Signale an D2 usw. anschließen. Damit muss ich Bitkombinationen an den Port senden, die sich in den unteren 2 bis 4 Bits unterscheiden. Als ASCII-Zeichen wären dann 0...7 oder @...O sinnvoll (weil lesbar).
Kann ich einfach Kabel in den Stecker stopfen und deren anderes Ende an der Treiber löten?
Das andere Ende ist o.k., aber für den Centronics-Stecker brauchst du einen passenden Gegenstecker; stopfen ist da aussichtslos.
smutbert hat geschrieben:So riskiert man beim Basteln nicht die Hardware des PCs
Doch wo ist die Gefahr für den PC bei der direkten Ansteuerung eines Schrittmotortreibers? Eventuell Spannungsübertragung vom Netzteil in den USB-Port bei Lötfehlern oder Kurzschlüssen?
Nicht nur eventuell. Wenn versehentlich die "richtigen" Pins verbunden werden, wird der USB-Port zerstört. Ein USB-Port sollte zwar eine Schutzschaltung gegen Spannungsspitzen haben und die verträgt auch 2A bei 12V, aber nur für sehr kurze Zeit. Danach macht sie einen Kurzschluss und die Leiterbahnen brennen durch (oder das Netzteil). Lötfehler und Kurzschlüsse kann man vermeiden, aber im Extremfall macht das Treiber-IC wegen Überhitzung einen internen Kurzschluss. Dann kommt die Motorspannung an DIR und STEP raus... Ja, Optokoppler o.ä. vermindern das Risko deutlich.
Ich habe mir die mögliche Lösung mit dem Raspberry Pi einmal angeschaut und durch den Kopf gehen lassen.
Auf der einen Seite ist es verlockend, da einige technische Problemstellungen bereits gelöst sind, etwa die Stromversorgung des Motors und der Anschluß an den Computer.
Der Haken liegt aber in der synchronen Zusammenarbeit mit der Kamera.
Warum? Der ganze Ablauf ist doch identisch, egal ob der Laptop die Motorbefehle über den Parallel-Port oder über's Netzwerk sendet. Zum Beispiel: auf dem Pi muss nur der sshd laufen. Der Laptop schickt per ssh die Anzahl der Schritte, der sshd startet ein Script und das steuert den Motor.
Noch mehr denke ich aber, das [der Pi] widerspricht dem KISS-Prinzip. Mit der Vereinfachung des Schrittmotor-Anschlusses würde ich in Kauf nehmen, daß ein zweiter vollwertiger Computer samt Betriebssystem zwischengeschaltet wird, der mehr kann, als er müßte. Zugleich muß mehr Aufwand getrieben werden, um die Systeme sinnvoll zusammenarbeiten zu lassen.
Absolut richtig, aber der Mehraufwand ist Software -- keine Hardware-Bastelei. Das andere Extrem wäre ein selbst entwickelter Schrittmotor-Treiber mit USB-Anschluß -- kein Software-Aufwand. Außerdem kann praktisch jede Hardware "von der Stange" mehr, als gebraucht wird.
ch habe mir die Netzteile bei Wetterott mal angeschaut. Es gibt ein Modell 3-12V/1A, daß ich als geeignet für den von Dir genannten Schrittmotortreiber Pololu A4988 und den fischertechnik Schrittmotor ansehen würde. Vorteilhaft an diesem Netzteil sind die verschieden wählbaren Spannungen, so daß ich sowohl die Maximalstärke von 12 Watt erreichen als auch kleinere Leistungen testen kann. Da der Schrittmotortreiber ab 8V angegeben wird, könnte ich zumindest 9V/1A und 12V/1A testen, vielleicht auch 7,5V/1A. Das entspricht 12, 9 oder 7,5 Watt.
Die Motor-Leistung (genau genommen den Strom) stellst du am Treiber ein, nicht am Netzteil. Grob geschätzt kann der Treiber mit Spannungen von 8 bis 24 Volt jeden sinnvollen Strom liefern. Mit der Spannung kannst du (nur) die maximal mögliche Drehzahl (bzw. das Drehmoment bei gegebener Drehzahl) beeinflussen. Das Netzteil muss also nicht einstellbar sein. Jedes 12V-Steckernetzteil, das 1A oder mehr liefert, ist genauso gut. Ein Laptop-Netzteil mit 16 oder 19 Volt geht auch. Allerdings werden Netzteile sehr optimistisch spezifiziert. Als Daumenregel kann man mit gutem Gewissen die halbe Nennleistung entnehmen.

Das gilt auch für 5V-Lösungen -- oder nicht, wenn die keine Stromregelung sondern nur H-Brücken haben; die brauchen genau 5 Volt. Bei denen mit Stromregelung muss man natürlich die maximale Spannung beachten.
Nach dem, was ich über die 5V-Motoren gelesen habe, bleiben sie eher einfach stehen, als das sie die Kraft hätten, etwas anderes zu überdrehen. (...) Zudem besteht die Gefahr, daß der Motor bei Überlast mehr Strom anfordert und den Rechner überlastet.
Solange das Treiber-IC nicht kaputt geht kann das nicht passieren. Bei richtig eingestellten Strom fließt genau der, unabhängig von der mechanischen Last an der Welle. Man darf also auch größere Schrittmotoren bis zum Stillstand abbremsen.
Beware of programmers who carry screwdrivers.

BenutzerGa4gooPh

Re: Schrittmotor mit debian steuern?

Beitrag von BenutzerGa4gooPh » 20.07.2016 13:31:57

In diesem Fall brauche ich eine Untersetzung, damit zum einen der Feintrieb des Mikroskopes möglichst minimal bewegt wird (größere Bewegung ist bei Bedarf mit mehreren Motorschritten möglich), zum anderen um die vermutlich sehr geringe Kraft des 5V-Motors nutzen zu können. Der Mikroskop-Feintrieb wird nur um sehr wenige Grad (vielleicht 5°-15°) für z.B. 50-200 Fotos bewegt. (Gefühlt, nicht gemessen ;-) )
Nullserie :mrgreen: mit einfachstem Getriebe/Gummiband, verschiedene Rollen mit verschiedenen Dmr. vorsehen und erst mal ausprobieren!

Geringe Kraft? Also ich hatte dazumal einen faustgroßen Schrittmotor nicht mit den Fingern anhalten können. Weiß allerdings nicht mehr, ob der Motor ein zusätzliches Getriebe mit starker Untersetzung, demzufolge Vervielfachung des Drehmomentes enthielt, Dazu kommen wir gleich nochmal.
Den Startpunkt für die Aufnahmenserie ermittele ich visuell im Mikroskop. Dazu suche ich die erste gänzlich unscharfe Abbildungsebene unterhalb des Motivs. Schrittweise werden Aufnahmen gemacht und das Objektiv mittels Feintrieb nach oben gedreht. Gestoppt wird die Aufnahmenreihe entweder manuell von mir, wenn ich sehe, daß das Motiv aus dem Schärfebereich verschwindet, oder nach einer vorgegeben Anzahl Aufnahmen.
Tja, dann entweder einfach, Startpunkt per Tastendruck von deinem Fingerchen bei subjektiv scharfem Bild oder eben Bildauswertung / automat. Erkennung eines scharfen Bildes. Nichtsdestrtrotz solltest du Endlagenschalter vorsehen, die bei Antriebsende abschalten.

Ein sehr eleganter Mikroskopantrieb wäre ein Schraubgetriebe, Objektive, Schraubstöcke, Kelter und Spindelpressen sind Beispiele dafür: Im einfachsten Fall eine beidseitig gelagerte Schraube/Gewindespindel, eine gegen Drehung gesicherte Mutter (Führung) bewegt sich mit dem Mikroskop auf und ab. Fein- oder am besten Trapezgewinde - aber das ist etwas für Profigeräte, muss nicht sein. Metrische Schrauben/Gewindestangen aus dem Baumarkt sollten genügen. Bei Schneckentrieb und Schraubgetrieben sind wir jedoch bei erheblichen Untersetzungen und Drehmomenten! Reibräder dabei stellen auch eine gute Überlastsicherung dar.
https://de.wikipedia.org/wiki/Gewindespindel
https://de.wikipedia.org/wiki/Spindelpresse

Versuche es erstmal probeweise mit einfachem Gummiantrieb, lerne dabei, Übersetzung leicht änderbar durch verschiedene Rollen mit einem Gummi darüber. Was ein Motor im Überlastfall an Strom/Leistung zieht, muss man schaltungstechnisch berücksichtigen oder man verhindert das von vornherein durch Überlastsicherung/Endabschaltung/Mikrotaster/Rutschen/Reibräder! Überlastung verteuert oder gefährdet auch die Ausgangsstufe der Ansteuerung. Wir arbeiten doch besser mit Nennstrom/Nennleistung - und berücksichtigen den Überlastfall billigst mechanisch oder durch Mikrotaster, die in Endlagen abschalten, so auch eine eventuelle Nullstellung mal rückliefern können. Auch wenn jetzt noch nicht absehbar. :mrgreen:
Mir ist noch unklar, ob davon eine echte Gefahr für den Computer ausgeht.
Von USB-Stromversorgung siehst du besser ab. Du suchst dir vorrangig einen Schrittmotor mit zugehörigem Treiber/Ansteuerplatine, bereits eingebauter (!) Potentilatrennung Richtung USB/GPIO-Steuereingang und separatem Netzteilanschluss für Motor und Ansteuerung. Netzteil an sich ist erstmal nachrangig, das kriegen wir schon (später).

Damit ergibt sich deine Recherchereihenfolge:
(Du willst Bildverarbeitung auf dem PC und nicht viele Kisten rumstehen haben, programmieren müssen. Die Nennleistung deines Schrittmotors für eine Mikroskopbewegung ist recht unkritisch/gering, also nahezu freie Auswahl.)
1. Ansteuerung/Treiber mit Schrittmotor (Kombination, Fertiglösung) mit USB-Ansteuerung (Ich weiß nicht, ob es das gibt und wie teuer, wäre aber am elegantesten.)
2. Eventuell alles einzeln bestellen, Knackpunkt ist die Ansteuerplatine dabei! Also erst Ansteuerplatine mit Umsetzung USB->Schrittmotor suchen!
3. Schrittmotor dafür, gleiche Nennspannung, gleiche Nennleistung wie Ansteuerplatine, Halbschrittbetrieb wird reichen, Getriebe brauchst du wegen mechanischer Gegebenheiten/Notwendigkeiten höchstwahrscheinlich.
4. Wenn es 1. bis 3. nicht oder nicht im finaziellen Rahmen gibt, dann einfach Raspi oder Arduino. Für eine Entscheidung Raspi & Co. oder Arduino lässt du dich bei Bedarf (1. bis 3. geht nicht) von anderen beraten. Das ist abhängig davon, was sich in Verbindung mit einem PC auf dem vmtl. Linux läuft, besser programmieren und betreiben (ansteuern und abfragen bzw. vernetzen) lässt. Wenn diese Frage entschieden ist, entweder die oben verlinkten Arduino-Schrittmotor-Ansteuerung-Kombinationen oder eben was Ähnliches für Raps & Co.

Also Hausaufgaben 1-3, wenn nichts gefunden oder zu teuer, Forenanfrage wegen 4 (da halte ich mich raus) und dann schauen wir über die Specs der Ansteuerung, Schrittmotor, Netzteil in Verbindung mit Einplatinencomputer oder Microcontroller.

Yeah, Martin, geiler :oops: Thread! Debian, Feinmechanik, Schrittmotoren, Optik! Endlich mal was anderes als kaputtgebastelte Linuxe! :THX:

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Schrittmotor mit debian steuern?

Beitrag von MartinV » 20.07.2016 15:28:14

Leider nicht, VDD ist die Stromversorgung des Treiber-ICs. Watterott schreibt aber, dass es eine ähnliche Platine gibt, auf der VDD aus der Motorspannung erzeugt wird.
Ich habe mir gestern abend die Dokumentation zum Treiber ausführlicher als zuvor angeschaut. Dabei habe ich auch erkannt, daß der Treiber-IC eine eigene Stromversorgung braucht. Die Platine mit VDD aus der Motorspannung habe ich auch gefunden: Pololu A4988 Schrittmotortreiber mit Spannungsregler.
Dieser Treiber liefert wahlweise 5V oder 3,3V für den Treiber-IC aus der Motorspannung. (Läßt sich direkt auf der Platine zusammenlöten, zusätzlich muß ein Jumper auf 5V oder 3,3V gesetzt werden).
Zusätzlich bietet der Treiber einen Überhitzungsschutz, und irgendwelche Kurzschlußschutzfunktionen (die mir etwas unklar sind).
In Richtung des Netzteils gibt es wohl einen Überspannungsschutz, in Richtung der Steuerungspins/des Parallelportadapters nicht.
Die maximale Leistung des Motors kann mit einem Potentiometer begrenzt und mit Hilfe eines Multimeters eingestellt werden.
Minimal brauchst du STEP und DIR und natürlich GND. ENABLE und/oder RESET sind optional um den Strom abzuschalten.
ok. :) Ich denke mal, ich werde alle Pins anschließen; Mit der Funktionsweise einiger Pins ist mir noch nicht alles klar, aber mit der Problematik kann ich mir die Haare raufen, wenn das Gerät erst einmal fertig ist.
Das andere Ende ist o.k., aber für den Centronics-Stecker brauchst du einen passenden Gegenstecker; stopfen ist da aussichtslos.
Ich werde mal in meiner Kabelkiste wühlen, mit etwas Glück finde ich das Centronics-Kabel meines 9-Nadel-Druckers vom Atari ST wieder. :D
Nicht nur eventuell. Wenn versehentlich die "richtigen" Pins verbunden werden, wird der USB-Port zerstört. Ein USB-Port sollte zwar eine Schutzschaltung gegen Spannungsspitzen haben und die verträgt auch 2A bei 12V, aber nur für sehr kurze Zeit. Danach macht sie einen Kurzschluss und die Leiterbahnen brennen durch (oder das Netzteil). Lötfehler und Kurzschlüsse kann man vermeiden, aber im Extremfall macht das Treiber-IC wegen Überhitzung einen internen Kurzschluss. Dann kommt die Motorspannung an DIR und STEP raus... Ja, Optokoppler o.ä. vermindern das Risko deutlich.
Urgs, das hört sich ziemlich fies an.
Ich habe gestern nach den Stichworten "Parallelport Optokoppler" gesucht, und massig Ergebnisse bekommen, aber noch keine klare Lösung gesehen. Kann ein rein mechanischer Optokoppler genug Signalstärke übertragen? Teils war von Verbindungen die Rede, die selbst eine Stromversorgung brauchen. Dafür könnte der Treiber 5V oder 3,3V liefern.
Hier ist mir noch nicht klar, welche Lösung richtig ist bzw. welche Teile konkret benötigt werden.
Warum? Der ganze Ablauf ist doch identisch, egal ob der Laptop die Motorbefehle über den Parallel-Port oder über's Netzwerk sendet. Zum Beispiel: auf dem Pi muss nur der sshd laufen. Der Laptop schickt per ssh die Anzahl der Schritte, der sshd startet ein Script und das steuert den Motor.
ok, stimmt! (Mich kitzelt die Treiber-Parallelport-Variante aber mehr ;-) )
Die Motor-Leistung (genau genommen den Strom) stellst du am Treiber ein, nicht am Netzteil. Grob geschätzt kann der Treiber mit Spannungen von 8 bis 24 Volt jeden sinnvollen Strom liefern. Mit der Spannung kannst du (nur) die maximal mögliche Drehzahl (bzw. das Drehmoment bei gegebener Drehzahl) beeinflussen. Das Netzteil muss also nicht einstellbar sein. Jedes 12V-Steckernetzteil, das 1A oder mehr liefert, ist genauso gut. Ein Laptop-Netzteil mit 16 oder 19 Volt geht auch. Allerdings werden Netzteile sehr optimistisch spezifiziert. Als Daumenregel kann man mit gutem Gewissen die halbe Nennleistung entnehmen.
Gut zu wissen! Insbesondere war mir nicht bekannt, daß man einem Netzteil eher nur die halbe Nennleistung entnehmen sollte. Auch die Spannungsregelung auf dem Treiber mittels Potentiometers ist mir erst gestern richtig aufgefallen und klargeworden. Dann denke ich jetzt, ein Netzteil z.B. 24V und 1A wäre angemessen.

Mir scheint, bis auf die Frage nach geeigneten Optokopplern oder vergleichbarer galvanischer Trennung sind die wichtigsten Punkte für mich jetzt klar. (EDIT: Eventuell der Optokoppler PC847, siehe Ende des Beitrags)

Von den 5V-Modellen habe ich mich innerlich verabschiedet. Interessant waren sie mit dem Gedanken einer USB-Stromversorgung. Doch sind sie schlecht dokumentiert, und der niedrige Preis zeigt sich auch in billigen Bauelementen. (Ich fand ein Bild mit verratschten Plastikzahnrädchen aus dem Motorgetriebe).

Welche Pins am Parallelport die Datenpins sind, weiß ich noch nicht, habe noch keine passende Abbildung gefunden. (Nur reine Pläne oder Fotos, aber kein Foto mit Beschriftung :roll: ) EDIT: Ich habe jetzt ein Bild mit Belegung gefunden.

Zum Anschluß des Motors habe ich Hinweise gefunden, wie ich die Zuordnung der Kabel zu den Spulen mittels Multimeter feststellen kann, das dürfte ich hinbekommen.

Etwas irritiert war ich, daß ich die Drehrichtung des Motors mit DIR wechseln kann, aber nicht definieren kann, ob er sich nun rechts- oder linksherum dreht. Den aktuellen Zustand muß die Software wohl einfach wissen, ohne es tatsächlich wissen zu können.

Teilschritte kann ich mit MS1, MS2 und MS3 festlegen. Sende ich z.B. 111 an diese drei Pins, habe ich 16tel Schritte. Sende ich anschließend 010, bekomme ich 010, oder wird nur der mittlere Pin geschaltet und das Ergebnis ist 101?
Jana hat geschrieben: Nullserie :mrgreen: mit einfachstem Getriebe/Gummiband, verschiedene Rollen mit verschiedenen Dmr. vorsehen und erst mal ausprobieren!
Geringe Kraft? Also ich hatte dazumal einen faustgroßen Schrittmotor nicht mit den Fingern anhalten können. Weiß allerdings nicht mehr, ob der Motor ein zusätzliches Getriebe mit starker Untersetzung, demzufolge Vervielfachung des Drehmomentes enthielt, Dazu kommen wir gleich nochmal.
Ja, so eine Nullserie ist sinnvoll. Auch traue ich dem fischertechnik-Motor sehr viel mehr Kraft zu, als dem 5V-Motörchen. Wenn es sich zeigt, daß eine Gummiband-Ansteuerung präzise genug ist, kann ich auf Schnecke/Zahnrad verzichten und habe den von Dir genannten mechanischen Überlastungsschutz.
Tja, dann entweder einfach, Startpunkt per Tastendruck von deinem Fingerchen bei subjektiv scharfem Bild oder eben Bildauswertung/Automatismus eines scharfen Bildes..
Das gewünschte Motiv und den besten Startpunkt muß ich schon selbst auswählen, das kann mir kein Computer abnehmen ...
ok, ich könnte mich auf die Suche nach dem Motiv beschränken, und der Computer soll selbst den untersten und obersten Punkt finden, an dem das Motiv unscharf wird, aber soviel verlange ich nicht. Auch besteht dabei die Gefahr, daß der Computer entscheidet, das Objektiv kraftvoll auf den Objektträger zu pressen, was nie niemals nicht passieren darf ... Und bei den winzigen Bereichen, in denen das Objektiv bewegt wird, ist auch kein Taster fein genug, um das verhindern zu können.
(Wobei, wenn ich mir das anschaue - das Objektiv kann teleskopartig ein paar mm zusammengeschoben werden, als ein Schutz vor grobmotorischen Mikroskopikern - das könnte wieder genug Spiel für einen Schalter bieten. Im fischertechnik-Plotter sind 2 Schalter eingebaut, die ich verwenden könnte.)
Nichtsdestrtrotz solltest du Endlagenschalter vorsehen, die bei Antriebsende abschalten.
ok, zumindest nach oben könnte ich einen Taster montieren, damit die Serie spätestens nach 20.000 Bildern und 5mm Hub beendet wird, falls ich mich ablenken lasse und vergesse, was da läuft. :lol:
Aber da genügt auch eine Softwarebegrenzung, die nach einer unsinnig hohen Anzahl Bilder automatisch stoppt.
Einen idaelen Mikroskopantrieb könnte auch ein Schraubengetriebe sein: Im einfachsten Fall eine beidseitig gelagerte Schraube/Gewindespindel, eine gegen Drehung gesicherte Mutter (Führung) bewegt sich mit dem Mikroskop auf und ab. Fein- oder am besten Trapezgewinde - aber das ist etwas für Profigeräte, muss nicht sein.
Habe ich nicht wirklich verstanden. :( Der Tisch wird vom Feintriebrad bewegt, das Feintriebrad und das Objektiv bleiben an Ort und Stelle. Einen anderen/zusätzlichen Antrieb halte ich nicht für sinnvoll.
Eine Verbindung Motor-Gummiband-Feintrieb, falls die präzise genug wird, würde mir völlig reichen.
Von USB-Stromversorgung siehst du besser ab.
Davon habe ich mich schon verabschiedet, das bringt mehr Probleme und Gefahren als Nutzen.
Was ein Motor im Überlastfall an Strom/Leistung zieht, muss man schaltungstechnisch berücksichtigen oder man verhindert das von vornherein durch Überlastsicherung/Endabschaltung! Es verteuert oder gefährdet sonst auch die Ausgangsstufe der Ansteuerung. Wir arbeiten doch besser mit Nennstrom/Nennleistung - und nicht Überlastfall!!! :evil:
Der Treiber bietet ein Potentiometer zu Motorstrombegrenzung und hat eine interne Überhitzungsnotabschaltung. Ich denke, das sollte so gehen. Auch könnte ich den Motor zwischen den Schritten abschalten und für 1-3 Sekunden abkühlen lassen. (Da könnte mir das Gummiband Probleme machen, falls es ohne Motorhaltekraft zurückzieht, aber das zeigt sich dann im Praxisversuch).
Du suchst dir vorrangig einen Schrittmotor mit Treiber/Ansteuerplatine, bereits eingebauter (!) Potentilatrennung Richtung USB/GPIO-Steuereingang und separatem Netzteilanschluss für Motor und Ansteuerung. Netzteil an sich ist erstmal nachrangig.
Mit fischertechnik-Schrittmotor, Treiber und Netzteil (und Ansteuerung mit Parallelport-Adapter) habe ich mich eigentlich schon ziemlich festgelegt.
Ein Schutz Richtung Steuereingang ist im Treiber "Pololu A4988 Schrittmotortreiber mit Spannungsregler" nicht enthalten, soweit ich die Dokumentation bisher verstehe.
Auch wenn Du darauf bestehst, daß ich eine Lösung suche, die das bereits enthält: Kannst Du mir einen Tip geben, wie ich eine galvanische Trennung Parallelport<->Treiberplatine am besten verwirkliche? :D Also, welche Optokoppler, oder gar etwas anderes? Stromversorgung mit 5V oder 3,3V könnte der Treiber liefern, je nach Lösungsweg. (EDIT: Eventuell der Optokoppler PC847, siehe Ende des Beitrags)
Fertiglösungen mit USB-Anschluß habe ich trotz langer Suche nicht gefunden, abgesehen etwa vom Arduino-Controller als Zwischenschritt.

Mein Favorit ist noch immer die Treiberplatine mit Parallelport. :wink: Die meisten Fragen dazu sind im Wesentlichen für mich geklärt, bis auf den wichtigen Punkt der galvanischen Trennung.
Jana66 hat geschrieben:Yeah, Martin, geiler :oops: Thread! Feinmechanik, Schrittmotoren, Optik! :THX:
*g* Danke! :D
Für mich ist es der erste Anlauf, Elektronik und ihre Ansteuerung zu verstehen, und es ist auch schön, wenn die virtuelle Computerwelt einen praktischen Bezug zu echten Gegenständen und Anwendungen findet, über Internet und Office-Anwendung hinaus.
Ich freue mich auch sehr über die lebhafte und gute Beratung in diesem Thread! (Etwas schlechtes Gewissen habe ich ja für meine Endloslangpostings :oops:, aber anscheinend werden sie von tapferen debianern doch gelesen ... :THX: )

EDIT:
Ich habe eine Platinenbeschreibung gefunden, wo Parallelport und Schrittmotortreiber verbunden werden. Dort wird der Optokoppler PC847 verwendet. Was ich an die vielen Füße anschließen soll, muß ich erst noch verstehen. :)
Dann habe ich noch einen Pegelwandler mit 8 Kanälen bei Watterott gefunden. Ob der zugleich galvanische Trennung bietet, ist mir noch unklar.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

cosmac
Beiträge: 4573
Registriert: 28.03.2005 22:24:30

Re: Schrittmotor mit debian steuern?

Beitrag von cosmac » 20.07.2016 18:54:11

MartinV hat geschrieben:Zusätzlich bietet der Treiber einen Überhitzungsschutz, und irgendwelche Kurzschlußschutzfunktionen (die mir etwas unklar sind).
Ganz einfach: dieses IC geht wahrscheinlich meist nicht kaputt, wenn man an den Motoranschlüssen einen Kurzschluss macht. ICs ohne diesen Schutz gehen garantiert kaputt, wenn man einen Motoranschluss nach GND kurz schließt.
In Richtung des Netzteils gibt es wohl einen Überspannungsschutz
Schutz gegen Verpolung-, nicht gegen Überspannung. Aber mehr als 35 Volt müssen erstmal irgendwo her kommen.
Ich werde mal in meiner Kabelkiste wühlen, mit etwas Glück finde ich das Centronics-Kabel meines 9-Nadel-Druckers vom Atari ST wieder. :D
Wage es ja nicht ein Museumsstück zu meucheln! Aber der Stecker kann eigentlich nicht passen, du baust ja im Prinzip einen Drucker und der USB-Adapter ist das Anschlusskabel.
Kann ein rein mechanischer Optokoppler genug Signalstärke übertragen? Teils war von Verbindungen die Rede, die selbst eine Stromversorgung brauchen. Dafür könnte der Treiber 5V oder 3,3V liefern.
"mechanische" Optokoppler muss ich merken :) Hier funktionieren beide Varianten, die "elektrischen" brauchen einen Widerstand weniger, sind aber teuer.
Etwas irritiert war ich, daß ich die Drehrichtung des Motors mit DIR wechseln kann, aber nicht definieren kann, ob er sich nun rechts- oder linksherum dreht. Den aktuellen Zustand muß die Software wohl einfach wissen, ohne es tatsächlich wissen zu können.
Naja, der Software muss man alles ganz genau erklären, aber dann merkt sie sich das ;) Beim allerersten Einschalten gibt es 3 Möglichkeiten: dreht garnicht, dreht links rum oder dreht rechts rum. Aber anschließend weiß man, dass DIR=0 (z.B.) links bedeutet.
Teilschritte kann ich mit MS1, MS2 und MS3 festlegen. Sende ich z.B. 111 an diese drei Pins, habe ich 16tel Schritte. Sende ich anschließend 010, bekomme ich 010, oder wird nur der mittlere Pin geschaltet und das Ergebnis ist 101?
Du sendest immer den absoluten, neuen Zustand für alle Pins, unabhängig vom vorherigen Zustand.
Jana hat geschrieben:Geringe Kraft? Also ich hatte dazumal einen faustgroßen Schrittmotor nicht mit den Fingern anhalten können. Weiß allerdings nicht mehr, ob der Motor ein zusätzliches Getriebe mit starker Untersetzung, demzufolge Vervielfachung des Drehmomentes enthielt, Dazu kommen wir gleich nochmal.
Hier hat ein Schrittmotor mit 600:1 Getriebe mal eine 8mm-Stahlwelle abgedreht. Der dürfte genauso groß gewesen sein, wie die Plotter-Motoren.
Etwas schlechtes Gewissen habe ich ja für meine Endloslangpostings :oops:, aber anscheinend werden sie von tapferen debianern doch gelesen ... :THX: )
Tja, gestern brauchte ich eine Pause :)
Beware of programmers who carry screwdrivers.

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Schrittmotor mit debian steuern?

Beitrag von MartinV » 20.07.2016 23:41:27

Ich versuche mal, einen kurzen Beitrag zu schreiben. :wink:
Wirklich unklar ist nur noch die Frage nach der Angstschaltung galvanischen Trennung.

Bei meinen Recherchen zu Optokopplern (und Alternativen dazu) bin ich auf auf einen interessanten RS232 Opto-Koppler gestoßen. Einfach auf RS232 aufstöpseln, und der Port ist galvanisch getrennt. :D
Ich habe mir einiges zu RS232 durchgelesen, meine Hoffnung, ähnlich wie mit einem Parallelanschluß arbeiten zu können, ist dahingeschmolzen. :(

Die Verwendung von Optokopplern scheint mir doch recht aufwendig zu sein; anscheinend brauche ich zusätzlich noch Widerstände (warum, habe ich nicht verstanden), und für die Montage brauche ich wahrscheinlich eine zusätzliche Platine.

Die dümmste (vielleicht beste) Frage zuletzt: Kann ich nicht ganz einfach Feinsicherungen verwenden, die bei Überlast durchbrennen? Das ist einfach, billig, und ich kann es verstehen.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

cosmac
Beiträge: 4573
Registriert: 28.03.2005 22:24:30

Re: Schrittmotor mit debian steuern?

Beitrag von cosmac » 21.07.2016 10:13:35

MartinV hat geschrieben:Ich habe eine Platinenbeschreibung gefunden, wo Parallelport und Schrittmotortreiber verbunden werden. Dort wird der Optokoppler PC847 verwendet. Was ich an die vielen Füße anschließen soll, muß ich erst noch verstehen. :)
Im Prinzip brauchen wir genau so etwas, nur nicht so viel davon. Der PC847 hat so viele Füße, weil 4 Optokoppler in einem Gehäuse verbaut sind, jeder hat 4 Pins. Ob man ein großes Gehäuse oder 4 einzelne nimmt, ist Geschmackssache. Bei einzelnen hat man viel mehr Auswahl.
Dann habe ich noch einen Pegelwandler mit 8 Kanälen bei Watterott gefunden. Ob der zugleich galvanische Trennung bietet, ist mir noch unklar.
Bietet er nicht. Und die automatische Richtungsumschaltung ist fast überall überflüssig und da, wo man sie braucht, funktioniert sie nur manchmal. So eine Platine, aber mit normalen Pegelwandler-ICs, wäre ein guter Kompromiss als Angstschaltung.
Bei meinen Recherchen zu Optokopplern (und Alternativen dazu) bin ich auf auf einen interessanten RS232 Opto-Koppler gestoßen. Einfach auf RS232 aufstöpseln, und der Port ist galvanisch getrennt. :D
Ich habe mir einiges zu RS232 durchgelesen, meine Hoffnung, ähnlich wie mit einem Parallelanschluß arbeiten zu können, ist dahingeschmolzen. :(
Speziell mit diesem Teil geht's wirklich nicht gut weil nur die Datenleitungen verbunden sind. Aber ein vollständiger RS232-Port hat 3 Ausgänge TXD, DTR und RTS. Damit könnte man STEP, DIR und noch einen Eingang ansteuern. Man braucht hier unbedingt Pegelwandler/Optokoppler, aber die will man dem Parallelport ja auch spendieren. Die Software wird minimal aufwändiger, weil man ein Programm braucht, das DTR und RTS steuern kann. Zum Ausgleich ist ein RS232-Port wesentlich robuster als USB oder Parallel, er ist kurzschlussfest und verträgt 12 Volt. Mit viel weniger Signalen gibt es auch weniger Fehlerquellen als beim Parallelport. Der kleinere Stecker ist auch kein Nachteil.
Die Verwendung von Optokopplern scheint mir doch recht aufwendig zu sein; anscheinend brauche ich zusätzlich noch Widerstände (warum, habe ich nicht verstanden), und für die Montage brauche ich wahrscheinlich eine zusätzliche Platine.
Ja, anscheinend gibt's nichts fertiges. Aber wenn du löten kannst, ist das doch kein Problem. Optokoppler und Widerstände sind doch ganz pflegeleichte Bauteile. Ein einfacher Optokoppler besteht nur aus einer Leuchtdiode und einem Phototransistor. Die Leuchtdiode braucht einen bestimmten Strom, dafür ist der erste Widerstand zuständig. Der Transistor kann nur ein- oder ausschalten, das Treiber-IC braucht aber 0 Volt und 5 Volt. Solange der Transistor aus ist, kommen die 5 Volt über den zweiten Widerstand. Wenn er einschaltet, macht er praktisch einen Kurzschluss nach GND, also kommen am IC 0 Volt an.
Die dümmste (vielleicht beste) Frage zuletzt: Kann ich nicht ganz einfach Feinsicherungen verwenden, die bei Überlast durchbrennen? Das ist einfach, billig, und ich kann es verstehen.
Leider nicht soo einfach, kleine Sicherungen begrenzen weder Strom noch Spannung. Man braucht also zusätzlich ein Bauteil, das die Spannung solange begrenzt, bis die Sicherung durchgebrannt ist. Während der Zeit muss es die volle Leistung aus dem Netzteil aufnehmen ohne selbst durch zu brennen. Beim Parallelport ist das garnicht möglich, 5 Volt ist normal und 7 Volt ist kaputt. Der Unterschied ist zu klein für einfache Schutzschaltungen. Man müsste das ganze also 2-stufig aufbauen -- kein Problem, aber sicher nicht einfacher als Optokoppler. Und dann hat man noch keine Potentialtrennung.

Potentialtrennung und Angstschaltung haben ja ganz unterschiedliche Aufgaben. Angstschaltungen sind immer angesagt, solange man nicht mit jedem Cent rechnet. Eine Potentialtrennung ist hier für die Funktion völlig überflüssig, die macht das Steckernetzteil. Aber da geht's schon los: macht es die wirklich oder ist es geerdet (bei Laptop-Netzteilen 50:50 Chance). Und wenn es trennt, wie groß wird der Leckstrom vom Netzfilter? Der ist mir egal, ich habe Stecker mit voreilendem Massekontakt -- aber hat die jeder?

Jana66 hat schon Recht: ein Optokoppler und 2 Widerstände erledigen das alles auf einmal; es gibt Alternativen, aber die sind nicht einfacher.
Beware of programmers who carry screwdrivers.

BenutzerGa4gooPh

Re: Schrittmotor mit debian steuern?

Beitrag von BenutzerGa4gooPh » 21.07.2016 12:46:52

Potentialtrennung und Angstschaltung haben ja ganz unterschiedliche Aufgaben. Angstschaltungen sind immer angesagt, solange man nicht mit jedem Cent rechnet. Eine Potentialtrennung ist hier für die Funktion völlig überflüssig, die macht das Steckernetzteil.
Mir geht es mehr um die Entkopplung zwischen PC und Schrittmotor-Steuerung wegen unterschiedlichen Spannungen, wegen eventueller Zerstörung von PC-Bauteilen. Für einen Personenschutz sollten die entsprechenden Netzteile, FI-Schutzschalter sorgen.

Feinsicherungen gibt es träge, mittelträge und flink. Bis die durchbrennen, fließt erst mal der maximale Kurzschlussstrom. In der Zeit haben sich elektronische Bauteile wahrscheinlich verabschiedet. Aber kein Problem, die avisierte Platine besitzt Strombegrenzung.

Sorry tut mir leid, ich bin derzeit etwas in Zeitnot, kann nicht jedes Detail nachvollziehen. Also das mit dem Schraubgetriebe war eine Idee, wenn du schon einen beweglichen Tisch für die Relativbewegung Objekt/objektträger-Objektiv/Mikroskop hast, alles okay.

Zu Optokopplern: Diese bestehen aus einer LED-Fototransistor-Kombination in gemeinsamen Gehäuse, d. h. die brauchen eine entsprechende äußere Beschaltung. Ein reiner Optokoppler nutzt erst mal gar nichts. Deshalb hatte ich eine Fertiglösung empfohlen, die das bereits enthält. Dein Stecker mit Optokopplern sollte alles (standardisiert) tun - so er an 2 standardisierte Schnittstellen angeschlossen wird! Dann braucht man ihn aber wohl nicht zwingend. Die avisierte Platine bietet diese RS232-Schnittstelle von sich aus nicht.

Zu deiner Platine: Wie gesagt, ausgangssmäßig erst mal okay, Strombegrenzung, alles da. Jetzt musst du bitte noch mal sagen, wie du die Ansteuerung der Platine vom PC gedenkst zu tun: Es könnte erst mal prinzipiell funktionieren:
PC mit Konverter USB auf RS232
|
RS232 Opto-Koppler (Richtung Treiber wird ein Optokoppler-RS232-Stecker wohl nicht gehen, da keine entsprechende Schnittstelle an der Treiberplatine. Aber es geht viellcht auch ohne Optokoppler, dazu muss man die Specs der Eingangs-ICs der Treiberplatine nachvollziehen. Oder man nimmt die verlinkte aufwändige Lösung: http://www.roehrenkramladen.de/BOB/bob_2.htm (Schaltplan bisher nicht vollständig nachvollzogen)
|
http://www.watterott.com/de/Pololu-A498 ... ungsregler
|
Schrittmotor

Ist dir das nicht zuviel Bastelei, "Baurich"? Deshalb hatte ich so gedacht:

PC mit USB -> http://www.sprut.de/electronic/pic/proj ... sb4all.htm -> Schrittmotortreiber -> Schrittmotor
(Lösung entspricht nahezu Arduino-Microcontroller als variabler Kodierer für oben verlinkte Schrittmotoren gleich mit zugehöriger Platine!!!. Auch ein Arduino müsste nur einmal programmiert werden, nur als dummer Kodierer, Steuerung macht Debian-PC per USB)

Das habe ich nach kurzem googeln nach "USB Schrittmotorsteuerung" gefunden und für sehr elegant befunden:
https://www.luedeke-elektronic.de/de/El ... an-K8.html
(Vielleicht gib es das irgendwo auch eine Nummer kleiner für 1 Motor.) Technische Daten vorerst nicht nachvollzogen, 750 mA mit max. 30V ergeben max. ca. 20 W Leistung! Dein Debian-PC enthält die gesamte Intelligenz und steuert die einmalig vmtl. mit Windows vorprogrammierte Platine an, so habe ich es bis dato verstanden. Wenn dir so eine Lösung passt, schaue ich mir das auch näher an.

Alle 3 Lösungen (einschließlich Arduino) sollten elektrisch problemlose Fertiglösungen sein, wobei ich Arduino wegen Vielseitigkeit/Preis oder luedeke wegen einer einzigen externen Baugruppe bevorzugen würde.

Und etwas Theorie wegen der Unklarheiten bei den Anschlüssen:
http://rn-wissen.de/wiki/index.php?title=Schrittmotoren

Vielleicht googelst du auch selbst noch mal. Wenn dir das nicht passt, bastele ich (virtuell) an eurer RS232-Lösung mit. Aber erst muss das Konzept klar und clever sein. :mrgreen: Fertiglösungen für Schrittmotortreiber gleich mit RS232-Schnittstelle - also wiederun nur eine Baugruppe nötig:
http://www.ebay.de/sch/i.html?_from=R40 ... g&_sacat=0
Zuletzt geändert von BenutzerGa4gooPh am 21.07.2016 15:15:07, insgesamt 6-mal geändert.

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Schrittmotor mit debian steuern?

Beitrag von ThorstenS » 21.07.2016 14:22:55

Paßt gerade zum Thema - vllt. inspiriert dich das ja: Internet Of Things Microscope

BenutzerGa4gooPh

Re: Schrittmotor mit debian steuern?

Beitrag von BenutzerGa4gooPh » 22.07.2016 10:37:31

Yes, alles da, Führung des Mikroskops, Zahnradgetriebe zur Einstellung, die Umsetzung der Drehbewegung in eine Linearbewegung sehe ich leider nicht - ich tippe auf Zahnrad mit Zahnstange. Wäre am einfachsten für eine manuelle Einstellung.
(Schraubgetriebe haben eine hohe Untersetzung (1..2 mm /Umdr. mit billigem metr. Gewinde in diesem Bereich, steigungsabhängig), unschön für Handbetrieb oder 2. Getriebe mit großer Übersetzung erforderlich)

Bezüglich Schrittmotorsteuerung bin ich gespannt, für welches Konzept sich Martin entscheidet ... . :hail:

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Schrittmotor mit debian steuern?

Beitrag von MartinV » 22.07.2016 20:53:15

Jana66 hat geschrieben:Bezüglich Schrittmotorsteuerung bin ich gespannt, für welches Konzept sich Martin entscheidet ... . :hail:
Ich auch :mrgreen:
Ich habe noch viel gelesen und gesucht, und ich habe noch nicht alle von Dir und cosmac gegebenen Anregungen und Links durchgelesen und durchdacht, daran arbeite ich noch.

Aber als Rückmeldung zwischendurch, ein paar Dinge, über die ich bei meinen weltweiten Nachforschungen gestolpert bin:
heise-Artikel zu einem Schrittmotortreiber aus China mit angeblicher galvanischer Trenung
Dieser Artikel und verschiedene Kommentare im Netz zu verschiedenen China-Geräten ohne Dokumentation zu allerkleinstem Preis läßt mich Abstand halten von manchen verlockenden Angeboten, wie sie besonders bei ebay zu sehen sind.
Beschreibungen wie diese sind lustig, aber vertrauenswürdige Dokumentation sieht anders aus:
Kann jedes mall und mittlere Zweiphasen-oder Vier-Phasen-Hybrid-Schrittmotor anzutreiben
Nimmt new-style bipolaren Konstantstrom Hacken Technologie, die präzise arbeiten Präzision, Vibration klein, lärm und laufen stabil
...
Kommt mit formalen photoelektrischen Koppler
Verbesserte Schaltung, mehr freundlich und stabil Betrieb als die vorherige Version.
Was mir zunehmend auffällt: Galvanische Trennung scheint eher eine Ausnahmeerscheinung zu sein.
Weder der Arduino, noch der Raspberry, noch zahlreiche andere Controller und Treiber scheinen so etwas zu haben. Auch in den Foren zu Arduino und Raspberry scheint nur selten das Gespräch darauf zu kommen.

Fertiglösungen zu galvanischer Trennung sind selten und meist erschreckend teuer.
Eine Ausnahme: Reine Optokopplerplatine mit 4 Input + 4 Output-Kanälen (Schaltplan)

Interessant fand ich Infineon Isoface, Module zur Ansteuerung und galvanischen Trennung von PC/µC und angeschlossenen Geräten. Für den Parallelanschluß scheint ISO1H811G geeignet zu sein. (Datenblatt).
ThorstenS hat geschrieben:Paßt gerade zum Thema - vllt. inspiriert dich das ja: Internet Of Things Microscope
Danke für die Anregung! Das gefällt mir. :)
Das Objektiv ist ein 10:1, damit läßt sich eine ca. 250-fache Vergrößerung noch sinnvoll erreichen. Das ist genug, um interessante Detailansichten zu bekommen, und noch klein genug, um den technischen Aufwand (Beleuchtung, Präzision der Höhenführung, Lichtführung ...) im überschaubaren Rahmen zu halten.
Vielleicht bastele ich irgendwann etwas vergleichbares mit dem 2. Schrittmotor, wenn ich mit dem ersten Erfahrung gesammelt habe. :-)


Ein paar weitere Fundstücke:
Lüdecke, auf den Jana hingewiesen hat, bietet auch einen Bausatz für nur einen Schrittmotor. Ein sehr interessantes Modell. Etwas Angst davor habe ich, weil ich dort wirklich ALLES selbst zusammenlöten muß, und meine Löterfahrung sich bisher auf Reparaturen am Moped beschränkt. :mrgreen: (Hat aber auch keine galvanische Trennung ... :roll: )

Ebenfalls bei Lüdecke ein interessantes Museumsstück: KEMO M106 Schrittmotorsteuerung inklusive galvanischer Trennung und Parallelportanschluß für 17,-.
Das erfüllt schon fast alle Wünsche! So nette Dinge wie Leistungsbegrenzung mit Potentiometer bietet das Gerät nicht ("Passen Sie auf, daß der Motor nicht zu heiß wird" :P ). Ein Zeitschriftartikel beschreibt das Gerät sehr ausführlich.
Die Ansteuerung ist nicht dokumentiert. Es gibt eine GUI für XP. Sie läuft unter wine und sendet auch ohne Gerät Steuerbefehle. Mit etwas reverse engineering könnte ich selbst herausfinden, was die Software an den Parallelport sendet :mrgreen: . Teilschritte bietet die Software nicht an.
Unklar ist mir der Netzteilanschluß, der etwas speziell ist. Lösungen dafür werden im Artikel beschrieben.

:idea: Sehr spannend finde ich dieses Gerät: KEMO M104 Parallelport Modul mit galvanischer Trennung, 4 Kanäle, 6-24V, max 2A.
Das Modul kostet nur 10,-. Ergänzend würde ich nur noch einen USB-Parallelport-Adapter, ein Netzteil und einen D-SUB-Stecker zum Anschließen von Netzteil und Motor brauchen.
Mit dieser Lösung könnte ich die Spulen des Schrittmotors direkt ansteuern und hätte kaum Baurich. (Und es wäre very KISS :lol: )
Zuletzt geändert von MartinV am 24.07.2016 12:50:04, insgesamt 1-mal geändert.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

BenutzerGa4gooPh

Re: Schrittmotor mit debian steuern?

Beitrag von BenutzerGa4gooPh » 23.07.2016 15:18:36

Also wegen der galvanischen Trennung: Mache dich erst mal nicht ganz so heiß. :hail:

Wenn die Platinen oder Baugruppen standardisierte Schnittstellen haben (USB oder RS232), dann sind die Hersteller für das Zusammenspiel verantwortlich. Ganz doof sind sie schon nicht. Die glavanische Trennung ist nicht in jedem Fall vonnöten - Anpassungen kann man auch über Spannungsteiler etc. an gemeinsamer Masse tun. Also die Hersteller der Platinen.

Zu chinesischen Schrittmotorsteuerungen - es war mir auch aufgefallen, hatte meine Links dann korrigiert.
http://www.heise.de/make/artikel/3-Achs ... kelseite=2
Mit Lösungen für Ungereimtheiten, also auch nicht allzu heiß machen. :mrgreen: :THX:

Ich schlage dir nicht umsonst eine Fertiglösung vor. Wenn du magst, löte ich dir gern einen Bausatz zusammen und prüfe den nach Fertigstellung soweit als mir ohne Profitechnik möglich ist. Allerdings ohne viel SMD-Bauteile und natürlich ohne Garantie. Wenn der Bausatz nicht allzu teuer ist - im schlimmsten Fall Pech gehabt oder eben aus 2 mach 1. Details bei Bedarf per PM.

Und nun genieße das schöne Wetter und nichts wird so heiß gegessen wie gekocht. Selbst galvanische Trennung nicht. :mrgreen:

Ich persönlich würde ja eine Lösung nehmen, die schon mal jemand aus Fertigplatinen oder Bausätzen gebaut und dokumentiert hat. Aus den Fehlern anderer lernen ist billiger. Ist so ein Spruch von mir, bei dem ich an Beiträge anderer in diesem Thread bezüglich preiswerter und dokumentierter Fertiglösungen/Programme denke. :mrgreen: :mrgreen: :mrgreen:

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Schrittmotor mit debian steuern?

Beitrag von MartinV » 29.07.2016 16:16:23

Code: Alles auswählen

Also wegen der galvanischen Trennung: Mache dich erst mal nicht ganz so heiß. :hail:
Das sagst Du mir, nachdem ich mir tagelang einen Kopf gemacht habe, bis mir galvanische Dämpfe aus den Ohren quollen ...
Ich schlage dir nicht umsonst eine Fertiglösung vor. Wenn du magst, löte ich dir gern einen Bausatz zusammen und prüfe den nach Fertigstellung soweit als mir ohne Profitechnik möglich ist. Allerdings ohne viel SMD-Bauteile und natürlich ohne Garantie. Wenn der Bausatz nicht allzu teuer ist - im schlimmsten Fall Pech gehabt oder eben aus 2 mach 1. Details bei Bedarf per PM.
Vielen Dank für Dein Angebot! :THX:

Die Lösung, die mir jetzt vorschwebt, werde ich aber wahrscheinlich selbst schaffen können.

Code: Alles auswählen

Ich persönlich würde ja eine Lösung nehmen, die schon mal jemand aus Fertigplatinen oder Bausätzen gebaut und dokumentiert hat. 
Ganz genau meine Lösung gibt es in dieser Form noch nicht, zumindest nicht auffindbar.

Nachdem ich nun einige Zeit tief meditiert und mein Tiefenselbst befragt habe, bin ich nun meiner Entscheidung näher gekommen:
Es wird ein Arduino Uno R3 mit USB-Anschluß und Schrittmotortreiber A4988. Dazu ein Gehäuse für den Arduino, damit er mein Schreibtischchaos überlebt.
Ich überlege, einen Schrittmotor mit weniger Leistung (2,5W oder ähnlich, 1,8°) und feineren Schritten zu nehmen, als der vorhandene Fischertechnik-Motor (12W, 7,5°) das kann.

Dazu beigetragen hat ein Kontakt in einem Mikroskopforum, wo jemand einen autarken Arduino (ohne PC-Anschluß) zur Steuerung eines zum Makrostacking umgebauten Mikroskopes verwendet.
Wir haben uns ausgetauscht, dabei ging es um die Frage, wie Arduino und PC kommunizieren können. (Er ist Linux-Neuling, auch die bash ist für ihn damit neu). Ich habe Vorschläge gemacht, wie die Kommunikation per bash gehen könnte, er hat es getestet, und es ging erstaunlich einfach, trotz serieller Schnittstelle. (Der Arduino-USB-Anschluß fungiert als serieller Port).
Sein Schrittmotor läuft mit 2W, und das ist für den Feintrieb wohl sehr reichlich.

Jetzt überlege ich Feinheiten der Verkabelung/Verlötung.
Ich denke inzwischen, es ist sinnvoll, den Schrittmotor direkt mit der Treiberplatine zu verlöten. An die Treiberplatine kommt außerdem eine Steckdose für einen Netzteilstecker.

Arduino und Treiber möchte ich gern per Steckverbindung verbinden, um den Arduino auch für andere Zwecke verwenden zu können. Dazu könnte ich noch praktischen Rat brauchen.
Gibt es eine "Steckleiste", die direkt auf die Pins vom Arduino paßt? Vielleicht gleich fertig mit Flachbandkabel, wie hier für den Raspi?
Ansonsten habe ich Arduino Stackable Headers gefunden, sieht aus wie eine Pin-Leiste, die man auf eine Pin-Leiste aufstecken kann.

Eventuell könnte ich auch so einen "Stackable Header" verwenden, um Treiber und Motor mit einer Steckverbindung zu versehen. Das würde das System noch modularer machen.

(Meine Fantasie sieht inzwischen noch mehr Verwendungen für Arduino, Treiberplatine und weitere Schrittmotoren :P ).

Viele Grüße, Martin
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Antworten