Hallo liebe Mikrocontroller- Gemeinde Bin neu hier im Forum und habe ein paar Frage bezüglich einens Freizeitprojekts: - Is es möglich 2 Elektromotoren über USB in Echtzeit also Live zu steuern ? - Welches USB Interface sollte benutzt werden ?? - in einem anderen Beitrag aus diesem Forum wird auch das Octopus USB Can benutzt. Is dies eventuell dafür zu gebrauchen ?? Wichtig wäre das die Motoren in ihrer Drehzahl Dosierbar sind. Vielen Dank schon mal im Voraus djlg
Hallo Richard, Fragen: Welcher Motorentyp? Bei Schrittmotoren ist das recht einfach über den Parallelport umsetzbar. Ist auch der Parallel-Port denkbar? Falls ja, hier gibt es ein einfaches Beispielprogramm für QBASIC: http://www.franksteinberg.de/pbeisp.htm Dann einfach ein Drehfeld entsprechend ausgeben --> Geschwindigkeit frei wählbar. Grüße Niels
Niels Keller schrieb: > Falls ja, hier gibt es ein einfaches Beispielprogramm für QBASIC: > http://www.franksteinberg.de/pbeisp.htm Was ist denn das für 'ne Mottenkiste? Richard Schlitz schrieb: > - Is es möglich 2 Elektromotoren über USB in Echtzeit also Live zu > steuern ? Worüber man das ansteuert ist eigentlich ziemlich egal. USB mit virtuellem COM-Port und einem µC bietet sich natürlich an. Da bist du hier auch genau richtig. Richard Schlitz schrieb: > Echtzeit also Live zu steuern ? Definier das mal genauer. Also wenn die Windowskiste sagt "dreh links rum", dann dreht er ohne Verzögerung links rum. Falls du das meinst. Richard Schlitz schrieb: > Wichtig wäre das die Motoren in ihrer Drehzahl Dosierbar sind. Natürlich. mfg.
Thomas Eckmann schrieb: > Also wenn die Windowskiste sagt "dreh links rum", dann dreht er ohne > Verzögerung links rum. Naja, das kann man so nicht stehen lassen. Natürlich gibts da Verzögerungen, denn Windows und Linux und MacOS sind keine Echtzeit-OS. Auf keinen Fall darf man einen Sicherheitsschalter über Software einfach so abfragen, denn niemand kann garantieren, dass in einer Zeit x die Software den Status abfragen kann. Was ist denn bei dir Echtzeit? Wie schnell müssen die Motoren reagieren? Echtzeit können ja auch Tage sein...
Christian R. schrieb: > Naja, das kann man so nicht stehen lassen. Natürlich kann man das so stehen lassen. Wenn vom Programm auf die serielle Schnittstelle eine Ausgabe erfolgt, wird diese auch spontan vom Mikrocontroller ausgeführt. Das hat mit Echtzeit überhaupt nichts zu tun. Über die Verzögerung, die durch die Datenübertragung entsteht, muß man jetzt auch nicht philosophieren. Christian R. schrieb: > Auf keinen Fall darf man einen Sicherheitsschalter über Software einfach Häh? mfg.
Thomas Eckmann schrieb: > Wenn vom Programm auf die serielle Schnittstelle eine Ausgabe erfolgt, > wird diese auch spontan vom Mikrocontroller ausgeführt Achso? Woher weißt du das? Und woher weißt du, wieviel Zeit (maximal) vergeht, bis die Eingabe in der Benutzeroberfläche zur Schnittstelle gereicht wird? > Häh? Windows/Linux/MacOS in Standard Konfig ist nun mal kein Echtzeit-OS. Angenommen, du fragst einen Endschalter über USB ab und willst den Motor über USB anhalten, damit er nichts zerstört. Tja, aber was das OS in der Zwischenzeit macht, ist unbestimmt. Trotz MultiCore und HyperThreading usw. kann sich Software auf unbestimmte Zeit die CPU klauen, speziell auf Kernel-Ebene. Und auch auf User-Ebene ist eine Reaktionszeit keinesfalls garantiert. Sowas geht nur mit Echtzeit-OS oder solchen Aufsätzen für Windows, wie es zum Beispiel Beckhoff für seine Software-SPS macht. Und gerade USB ist alles andere als hoch priorisiert, das ist dran, wenn gerade mal nichts anderes zu tun ist....
@ Christian R. Hör auf hier rumzutrollen. Darum geht das überhaupt nicht. Habe weder Zeit noch Lust hier eine schwachsinnige Diskussion über das Echtzeitverhalten von Windows und Linux zu führen. mfg.
Hallo alle miteinander Zunächst einmal vielen Dank für die vielen Antworten !!! Mit Echtzeit meine ich : ''Also wenn die Windowskiste sagt "dreh links rum", dann dreht er ohne Verzögerung links rum. Falls du das meinst.'' genau so !!! Wenn vom Programm auf die serielle Schnittstelle eine Ausgabe erfolgt, wird diese auch spontan vom Mikrocontroller ausgeführt. Die Verzögerung sollte natürlich so gering wie möglich sein. Leider kenne ich mich damit nicht so gut aus und bin totaler Laie. Was ist ein Parallelport ?? Ist das der alte Anschluss am Pc oder so ? Ich habe einen ganz neues Notebook das hat garkeinen Parrallen Anschluss mehr !!! Also sollte schon USB sein! ''USB mitvirtuellem COM-Port und einem µC bietet sich natürlich an.'' Welche Teile sind hierfür notwendig ? ( welches USB interface) Danke fpr die antworten =) Richard
Richard Schlitz schrieb: > Leider kenne ich mich damit nicht so gut aus und bin totaler Laie. Das ist dann schon etwas schwieriger. Sonst wäre das eine schöne Aufgabe für einen verregneten Nachmittag. Richard Schlitz schrieb: > Welche Teile sind hierfür notwendig ? ( welches USB interface) Google mal nach Arduino. Das ist ein kleines Mikrocontrollerboard für relativ wenig Geld. Würde mich nicht wundern, wenn es in der Fangemeinde das, was du suchst, schon fertig gibt. mfg.
Hallo Richard Schlitz schrieb: > Leider kenne ich mich damit nicht so gut aus und bin totaler Laie. Was heißt totaler Laie? Kennst du die Grundlagen der Elektrotechnik? Kannst du den PC Programmieren? In Anbetracht dessen das du Laie bist hast du 2 Möglichkeiten: 1. du hast viel Zeit und wenig Geld und möchtest daher alles selberbauen. Dann kannst du mit einem µC bzw. mit Arduino anfangen. Arduino ist einfach ein Mikrocontroller für Anfänger oder Fachfremde. 2. Du möchtest/benötigst schnell ein Ergebnis. Dann brauchst du zwei Dinge: -für jeden Motor einen Drehzahlsteller -ein USB Interface mit geeignetem Ausgang. Du hast z.B. ein Drehzahlsteller das eine analoge Eingangspannung von 0-5V erwartet, also brauchst du ein Interface das 0-5V liefert. Es wäre gut zu wissen was für Motoren du hast: Gleichstrom, Wechselstrom, Schrittmotor, BLDC? Spannung, Strom? Richard Schlitz schrieb: > Die Verzögerung sollte natürlich so gering wie möglich sein. Diese Aussage ist sehr ungenau. Was willst du damit machen? Solange du nicht sagst was du genau machen willst können alle nur im Nebel stochern.
Thomas Eckmann schrieb: > @ Christian R. > > Hör auf hier rumzutrollen. Darum geht das überhaupt nicht. > > Habe weder Zeit noch Lust hier eine schwachsinnige Diskussion über das > Echtzeitverhalten von Windows und Linux zu führen. > > mfg. Dann schreib nicht so einen unqualifizierten Kommentar wie "wird ohne Verzögerung ausgeführt" Das ist eine völlig irreführende und aus der Luft gegriffene Aussage, die jeglicher Grundlage entbehrt und dem Frager nichts bringt. Er hat in seiner ersten Frage nach Echtzeit gefragt, und es gibt eine eindeutige Definition von Echtzeit. Und ich hab mich sachlich zu seiner Frage nach Echtzeit geäußert und darauf hingewiesen, dass das mit einem Standard-Windows und USB nicht einzuhalten ist. Bei Wikipedia ist es ausnahmsweise mal sehr klar gleich im ersten Satz beschrieben: "In der Informatik spricht man von Echtzeit (englisch: real-time), wenn die Dauer eines Vorgangs (auch eine Wartezeit) vorhersehbar ist." Und genau das trifft bei Windows und dann auch noch bei USB eben keinesfalls zu. Man kann problemlos im User Space das Windows dazu bringen, dass ein Programm über USB nur noch hunderten Millisekunden oder gar Sekunden reagiert. Natürlich kann ich mir denken, dass der Frager mit Echtzeit was anderes meint. Aber was genau, kann nur er selbst beantworten. Ich versuche hier lediglich falsche und irreführende Pauschal-Aussagen zu klären.
Hallo! Über den Parallelport bekommt man das ohne Echtzeiterweiterung des Betriebssystems erst recht nicht hin, weil man dann die Takte für die Schrittmotor-Endstufen auf dem PC erzeugen muss. Und da geht es nicht nur darum, 5 oder 10 kHz zu erzeugen, sondern auch den Jitter niedrig zu halten, damit der Motor nicht aussteigt. Für USB gibt es fertige Lösungen, die den Echtzeit kritischen Teil auf einen externen Controller verlagern. Die Latenz für die USB-Kommunikation wird man damit natürlich nicht los, aber man kann ja z.B. die Überwachung des Arbeitsraums, Abfragen von Endschaltern usw. direkt auf der externen Hardware machen. @Richard: Wenn Du sowas fertig kaufen willst, kann ich dir für Schrittmotoren eine Lösung anbieten. Sprich mich bei Bedarf an. Mit freundlichen Grüßen Thorsten Ostermann
Hallo, also mit "Echtzeit" meine ich einfach, dass man einen Motor (ein Motor ausgebaut aus einem Drucker, ich glaube nicht dass das ein Schrittmotor ist) in einer Zeit geringer als 1 Sekunde "ansprechen" kann. Das Interface muss nur diese 3 Möglichkeiten haben: -"Richtungswechsel" des Motors (Umpolen?) -Drehzahl Regulieren, also auch komplett auf 0 setzen. -mit C++ ansprechbar sein. ---> ich will die Motoren im endeffekt über Tastendruck steuern, also Ich drücke z.B. W um die Drehzahl zu erhöhen, S um in die andere Richtung zu drehen. Es muss nicht "perfekt" und immer gleichschnell reagieren, es soll nur den Motor steuern, nichts bedenkliches bezüglich der Sicherheit ;) Ich kann ein wenig C++ (Grundlagen) und kenne mich mit den Grundlagen der Elektrotechnik aus. Die 3 genannten Punkte sollten also, vorrausgesetzt das Interface liefert eine Funktionsbibliothek mit, nicht allzu schwer zu machen sein. Danke für eure Hilfe!
Richard Schlitz schrieb: > also mit "Echtzeit" meine ich einfach Lass dich nicht verrückt machen. Das funktioniert hundertprozentig so, wie du das haben willst. Bleiben wir mal bei Arduino. Wenn du so ein Teil nimmst, gibt es für etwas mehr als 20 €, musst du nur noch in der Lage sein, über die serielle Schnittstelle vom PC aus etwas zu senden und zu empfangen. Auf dem Board ist ein USB-Interface, daß sich auf dem PC als serielle Schnittstelle ausgibt. Beim Arduino sind Beispiele bei für PWM und Kommunikation. Das kannst du dann in der Arduino-IDE bearbeiten. Das Ganze fühlt sich fast wie C an. Für die Motoren setzt du dann einen L293 oder ähnliches an den Port des Controllerboards. mfg.
Ok, vielen Dank! Wieviel würde denn so ein L293 kosten und wo bekomme ich den am besten her? Ist ein L293 auch für "größere" Motoren geeignet, falls ich damit später mal was in der Dimension eines Scheibenwischermotors ansteuern will?
>(ein Motor ausgebaut aus einem Drucker, ich glaube nicht dass das ein
Schrittmotor ist)
@Richard : ich glaube schon ! (wieviel Anschlüsse hat denn der Motor ?)
Richard Schlitz schrieb: > Der eine hat 2 und der andere 4 Der mit 2 Anschlüssen ist klar, brauchen wir nicht drüber reden. Der andere hat 2 Wicklungen. Den kann man aber auch mit einem ganzen L293 ansteuern. Für den ersten braucht man nur eins der beiden Anschlusspaare. mfg.
Hallo! Also ich würde gerne nur den nicht-Schrittmotor ansteuern (erstmal zum einarbeiten in die Usb Interface-Software usw. , später dann wenns geht 3 dieser nicht-Schrittmotoren). Deshalb auch gleich die nächsten Fragen: Ist es möglich mit dem L293 bis zu 3 Motoren anzusteuern? Brauche ich für das L293 extra Software (muss ich das extra Programmieren, oder regelt das das USB Interface? Kann man die Motoren auch direkt an das USB Interface anschließen, ohne den L293? Ist es möglich die Motoren, die an dem L293 angeschlossen sind, mit einem Externen Akku / Netzteil zu versorgen (bis zu 12V? ) Das Arduino - Board sieht gut aus, nicht zu kompliziert. Ich denke mit der Programmiersprache werde ich zurechtkommen. Danke schonmal im Vorraus!
Richard Schlitz schrieb: > Ist es möglich mit dem L293 bis zu 3 Motoren anzusteuern? Der L293 hat 4 Ausgänge zum Anschluss von max. 4 Motoren(eine Richtung). Für Rechts-Linkslauf brauchst du 2 dieser Ausgänge und für einen bipolaren Stepper alle vier. Die Anschlüsse sind im Datenblatt genau beschrieben. Richard Schlitz schrieb: > Brauche ich für das L293 extra Software (muss ich das extra > Programmieren, oder regelt das das USB Interface? Dafür sollten Beispiele beim Arduino dabei sein. Richard Schlitz schrieb: > Kann man die Motoren auch direkt an das USB Interface anschließen, ohne > den L293 Nein Richard Schlitz schrieb: > Ist es möglich die Motoren, die an dem L293 angeschlossen sind, mit > einem Externen Akku / Netzteil zu versorgen (bis zu 12V? ) Ja mfg.
Thomas Eckmann schrieb: > Lass dich nicht verrückt machen. Das funktioniert hundertprozentig so, > wie du das haben willst. Warum hörst DU nicht auf, hier zu trollen? Deine Aussagen sind (nicht nur in diesem Topic) meist schwammig und bei genauerem Hinsehen nicht korrekt. Ich frage mich, wie lange es noch dauert bis du mit deinem "Laden" auf Grundeis gefahren bist. Wie ein seriöser Entwickler benimmst du dich jedenfalls nicht! Zieh dir deine Beiträge doch selber mal rein, am informativsten sind noch diese: Thomas Eckmann schrieb: > Die Anschlüsse sind im Datenblatt genau beschrieben. Thomas Eckmann schrieb: > Dafür sollten Beispiele beim Arduino dabei sein. Obwohl du hier auch nur schwammig auf Datenblätter und Beispiele verweist. Was soll der Müll?
Richard Schlitz schrieb: > Brauche ich für das L293 extra Software (muss ich das extra > Programmieren, oder regelt das das USB Interface? Hier ist ein kleines Projekt für den Einstieg: http://itp.nyu.edu/physcomp/Labs/DCMotorControl Der Arduino ist kein USB-Interface, sondern ein komplettes Mikrocontrollersystem mit einem USB-Interface, das selbständig den Motor steuert. Vom PC bekommt er nur die Anweisungen wie schnell und wie herum er drehen soll. mfg.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.