USB zur Motorsteurung verwenden

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

Hubsi

Betreff: USB zur Motorsteurung verwenden

BeitragSo, Jul 09, 2017 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Seid gegrüßt.

Ich möchte einen Scheibenhebermotor vom Auto zweckentfremdet über ein Blitzprogrämmelchen steuern (links und rechts drehend). Jetzt hab ich eine allwissende Suchmaschine beauftragt entsprechende Hardware zu finden und schon gehen meine Probleme los Smile

Vorweg noch ein paar Infos, ich bin elektronisch ein absoluter Vollnoob und brauche da eine fertig zusammengelötete Lösung. Mit meinen Versuchen habe ich bislang nur Bauteile verheizt Confused Maximale Stromstärke sind 30 Ampere die abgegriffen werden. Im Internet gibt es, soweit ich das richtig verstanden habe, Stecker die ich in den USB-Anschluss stecke und auf der anderen Seite einen RS232 habe, der Treiber simuliert dann einen COM-Port. Diese Schnittstelle kann ich dann wohl mit Blitz steuern (Port.dll).

So, was ich jetzt brauche ist eine ? Endtsufe ? die ich mittels COM-Port (oder gerne auch direkt per USB) entsprechend aus und einschalten kann. Die Funktionsweise stelle ich mir in meinem jugendlichen Leichtsinn etwa so vor:

Pin TXD ist aus - Pin DTR an - Motor dreht rechts
Pin TXD ist an - Pin DTR an - Motor dreht links
Pin DTR aus - Motor aus

Zu erwähnen sei vielleicht noch das der Motor Rampe fahren soll, sprich er wird ziemlich zackig ein und ausgeschaltet, womit Relais nicht Frage kommen, von der Umschaltung der Drehrichtung abgesehen, das passiert schlimmstenfalls alle 5 Sekunden und der Motor ist im Stillstand, also ohne Last.



Ich weiß das ich mit der Frage hier nicht vollumfänglich richtig bin, in einem großen Elektronikforum konnte oder wollte mir jedoch keiner helfen. Man hatte mir nur die wildesten Fachbegriffe um die Ohren gehauen um sich schlussendlich in einer internen Streiterei zu verlieren. Vielleicht hat hier jemand das nötige Wissen oder einen Link zur Hardware und mag mir weiterhelfen Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

DAK

BeitragMo, Jul 10, 2017 8:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kann verstehen, dass du zu der Frage in einem Elektronikforum keine sinnvolle Antwort kriegst. Elektroniker sind laut meinen Erfahrungen eher perfektionistisch und machen ungern Pfusch.

Deine Anfrage hingegen ist ein Bisschen ein unsauberes Gebastel, weil man das normalerweise anderst macht.

Als Erstes müsste man wissen, um was für eine Art Motor es sich da handelt. Ist der Motor Brushed (Ansteuerung durch 2 Kabel) oder Brushless (3 Kabel) oder gar ein Stepper-Motor?

Bei 30A kannst du eine Stromversorgung über USB knicken, da brauchst du was Externes.

Die USB zu RS323-Stecker gibt es, musst nur aufpassen, dass es ein echter COM-Port ist, und nicht ein Mausadapter, die machen nämlich nur RS232 zu USB-HID, das scheint also am Computer nicht als COM-Port auf, sondern als USB-Maus.

Ich tät eher einen Atmega/Arduino verwenden, die können nämlich über die V-USB-Library auch USB reden. Ist etwas mehr Aufwand (vor Allem, weil du dazu C lernen musst), aber die sicherere und flexiblere Lösung (wenn du mal mehr machen willst als nur einen Motor steuern).

Für die Ansteuerung des Motors selbst kannst du einen für deinen Motor passenden ESC verwenden. Die kosten so zwischen 10 und 30 Euro. Denen gibst du Strom sowie ein PWM-Signal und sie drehen deinen Motor. Wenn es sich in beide Richtungen drehen können soll, dann brauchst du einen reversiblen ESC, wie er z.B. für ferngesteuerte Autos verwendet wird.

Das PWM-Signal, dass du dann produzieren musst schaut so aus:
Du beginnst mit LOW und ziehst das Signal dann zwischen 1 und 2 ms auf HIGH. Dann ziehst du es auf LOW und hällst es so lange auf LOW, bis inklusive dem HIGH-Teil 20ms vergangen sind. Die Länge des HIGH-Teiles gibt an, wie du den Motor ansteuern willst. 1ms ist Vollgas Rückwärts, 1.5ms ist Stillstand und 2ms ist Vollgas vorwärts. Alles dazwischen ist irgendwas dazwischen (z.B. 1.75ms ist Halbgas Vorwärts).

Wenn du die Lösung mit dem RS232-Port machst, dann brauchstbrauchst natürlich eine externe Stromversorgung für den ESC und damit den Motor. Der ESC hat insgesamt 7 (brushed Motor) oder 8 (brushless Motor) Kabeln. 2 (brushed) oder 3 (brushless) davon gehen an den Motor, 2 davon gehen an die Stromversorgung. Die restlichen 3 (bzw. wenn du ein Modell ohne BEC hast, nur 2) sind Ground, PWM und 5V (wenn du kein BEC hast, dann fällt der 5V-Pin weg). Verbinde nur Ground und PWM an den RS232-Port, auf keinen Fall verbinde den 5V-Port! (BEC ist also optional).

Die Externe Stromversorgung kannst du entweder per Akku oder per Netzteil machen. In beiden Fällen musst du drauf achten, dass Motor, ESC und Stromversorgung für die gleiche Spannung (Volt) gemacht sind. Wenn du weniger Spannung in der Stromversorgung hast, als der Motor hat, dann ist das ok, er ist dann nur langsamer und schwächer. Gibst du mehr Spannung an den Motor als drauf steht, dann brennt er durch. Der ESC gibt eine Minimal- und eine Maximalspannung an, die sind strikt einzuhalten.
Von der Stromstärke (Ampere) her gilt: der Motor sollte bei Volllast (=blockierter Motor bei Vollgas) weniger Strom ziehen als der ESC maximal hergeben kann (ruhig mit einem komfortablen Abstand) und die Stromversorgung sollte noch ein bisschen mehr hergeben.

Einen 30A-ESC findet man schnell. Ein 30A-Netzteil hingegen ist schon deutlich teurer. Einen LiPo-Akku (nicht LiIon nehmen, die geben eine zu geringe Stromstärke dafür) der 30A hergibt findet man leicht, allerdings brauchst du dann auch ein Ladegerät dafür.

Alles in Allem kannst du die folgenden Preise erwarten:
USB auf RS232: ein paar Euro
30A-ESC: €10-30
30A-Netzteil: gute Frage, ich hab ein paar letztens gekriegt, die rund das können für ~€70, könnte man aber auch billiger finden
LiPo-Akku: je nach Spezifikation (Spannung und Kapazität) €5-50
LiPo-Ladegerät: die ganz miesen fangen bei €15 an, können aber nur bis zu 3-Zellen-Akkus laden und das langsam

Jetzt ist die Frage, ob du dir nicht einen besseren Motor leisten willst, der etwas sinnvoller in deine Anwendung passt. Die kosten nämlich gar nicht so viel, und dann hast du nicht so einen widerlichen alten und ineffizienten Scheibenwischer-Motor. Da gibts schon ganz gute Brushless-Motoren für unter €15. Und wenn du nicht so viel Leistung brauchst, dann reichen auch Motoren, die nur 5A oder so ziehen, dann wird dein Netzteil deutlich billiger.

Alles in Allem ist der Motor wahrscheinlich das billigste Bauteil in der Kette und macht dir wesentlich weniger Probleme, wenn du ihn durch was Sinnvolles ersetzt.

Weiterführende Themen, in die du dich einlesen solltest:
Brushless- vs Brushed-Motoren
ESC
Wie man mit LiPos umgeht, ohne dass sie in die Luft fliegen
Atmega / Arduino


Edit: Mir kommts grad, das wird alles nicht funktionieren. In Blitz haben sowohl die Befehle MilliSecs() als auch Delay() eine Genauigkeit von 1 ms. Das ist viel zu wenig, wenn du PWM-Signale zwischen 1ms und 2ms timen möchtest. Da bräuchtest du allermindestens eine Auflösung von 0.1ms.
Auch die USB -> RS232-Lösung wird nicht funktionieren. RS232 hat zwar als höchste Taktrate 115200 Herz, was gut ausreichen täte, allerdings nur in dem hardwarebeschleunigten Character- oder Line-Mode, nicht beim Bitbangen (=Bits einzeln an und aus schalten). Dazu kommt, dass USB auch eine eigene Latenz mitbringt, die das Ganze hierfür leider untauglich machen wird.
Dazu kommt, dass du kein Realtime OS hast. Das heißt, auf deinem Computer rennt mehr als ein Programm gleichzeitig und der Scheduler bestimmt, weilches Programm wann dran kommt. Wenn du z.B. schreibst Delay(10), dann heißt das nicht, dass dein Programm GENAU 10ms schläft, sondern MINDESTENS 10ms. Im Hintergrund gibt der Scheduler die CPU an einen anderen Prozess ab, und erst, wenn der einen guten Pausepunkt erreicht hat, dann gibt er die CPU wieder einem Programm. Das heißt, das kann auch mal erst nach 12ms passieren. Normal ist das egal, aber bei sowas hier bricht dir das komplett das Genick.
Es gibt Realtime-Betriebssysteme, die auf einem Desktop laufen können (z.B. ein paar spezielle Varianten von Linux), aber da wirst du Blitz nicht zum Laufen kriegen.

Ich würde dir stark empfehlen, das Ganze mit einem AtMega oder Arduino zu machen, da hast du diese Probleme alle nicht.
Sollte eine Kommunikation mit dem PC wirklich nötig sein, kannst du das entweder über V-USB (etwas komplizierter) oder über dein USB-RS232-Dongle (sehr einfach) machen.

Viel Spaß bei dem Projekt!
Gewinner der 6. und der 68. BlitzCodeCompo

Hubsi

BeitragMo, Jul 10, 2017 9:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Das das gebastel ist ist mir bewusst, vielleicht stell ich mir das auch zu einfach vor. Der Motor ist brushed. Gedanke war das die Elektronik die 12 Volt vom COM nimmt, den Transistor durchschaltet und der Motor von einer Autobatterie versorgt wird. Sinnvoll oder nicht sei dahingestellt Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

DAK

BeitragMo, Jul 10, 2017 10:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht prinzipiell auch, aber gut wird's nicht gehen.

Zuerst brauchst du mal einen Transistor, der die Leistung aushält. Sowas gibt's schon, aber nicht bei Conrad oder was ähnlich erreichbarem.

Wenn du was anderes als Vollgas willst, dann wirst du auch hier ein PWM-Signal brauchen, mit dem du den Motor regulierst. Mit der niedrigen Frequenz, die du aus dem Blitz ziehen kannst, wird der Motor einerseits brummen wie Sau (man nimmt üblicherweise PWM-Frequenzen von deutlich über 20khz, damit die Motoren nicht im hörbaren Bereich brummen), andererseits wird er wahrscheinlich auch ziemlich ruckeln und sich nicht sauber ansteuern lassen.

Die Kombo Blitz und USB-RS232-Dongle wird da nicht sonderlich toll gehen.

Probieren kannst du es natürlich gerne, toll wirds nur nicht.

Was willst du mit dem denn überhaupt machen?
Gewinner der 6. und der 68. BlitzCodeCompo

Hubsi

BeitragMo, Jul 10, 2017 11:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Motor sitzt auf dem Schlitten einer Linearführung und treibt ein Zahnrad an. Dieses greift in eine Zahnstange und so fährt das hin und her. Erstmal für eine recht spezielle Bohrmaschine und wenn das funktioniert noch für ein weiteres Gerät. Wie gesagt, sinnig oder nicht, es geht mehr ums "ich will's machen" Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

BladeRunner

Moderator

BeitragMo, Jul 10, 2017 11:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Klingt spannend, ich fänd's cool wenn daraus ein bebildertes Worklog entstehen würde Smile
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

DAK

BeitragMo, Jul 10, 2017 19:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Klingt nach einem coolen Ding!

Ausprobieren kannst du es natürlich und grob funktionieren tät es wahrscheinlich.

Wenn du es aber gut haben willst, dann gib die €5 für einen Atmega/Arduino aus, damit geht es wesentlich einfacher und die Steuerung würde deutlich genauer funktionieren.
Gewinner der 6. und der 68. BlitzCodeCompo

Holzchopf

Meisterpacker

BeitragMo, Jul 10, 2017 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Für verschiedene Motoren gibt es ja schon Shields (das sind so Aufsteck-Dinger) für den Arduino. Keine Lötkenntnisse nötig.

Brauchst denn einen so starken Motor oder willst du nur aus Gründen der "Abfallverwertung" den Scheibenhebermotor nehmen?
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Hubsi

BeitragMi, Jul 12, 2017 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Motor muss stark genug sein eine Gewindestange M14 (2200mm Länge, 2200 Gramm Gewicht) zu drehen mit ca. 1000 U/min. Das Wägelchen was damit bewegt wird samt Aufbauten hat ca. 12 kg. Das ist jetzt großzügig geschätzt. Bisweilen wird es von Hand geschoben und das geht leichtgängig. Von Bedeutung könnte dann höchstens noch die Reibung der Stange in der Mutter sein. Beim arbeiten mit der Maschine entsteht aber eher grobkörniger Schmutz ohne "Sichtkontakt" zu bewegten Teilen. Von daher brauche ich da mit Fett nicht sparen. Je drehmomentärmer der Motor ist, desto höher muß dann nur seine Drehzahl sein. Entsprechend würde ich das ganze dann untersetzen. Der Scheibenhebermotor ist nach näherem Studium jetzt aus dem Rennen. Die Welle des Ankers ist samt Lagerung in das Plastegehäuse eingegossen, das macht ein zerstörungsfreies zerlegen nicht möglich. Aber egal, wäre tatsächlich nur Schrottverwertung gewesen, weil er halt gerade da ist Smile
Ob der Motor beim Rampe fahren brummt, schnarcht oder ein Lied singt ist völlig irrelevant, btw. Very Happy

Edit: Hab eine neue mechanische Lösung erdacht und die Geschichte mit den Transistoren ist gestorben (oder indirekt tot, dazu brauche ich Eure Hilfe). Ist es möglich mit dem COM-Port ein Relais zu schalten das einen Scheibenwischermotor (auch aus Schrottverwertung Smile ) versorgen kann? Oder reichen da die 10 mA des Ports nicht?
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Midimaster

BeitragDo, Jul 13, 2017 10:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Geht es denn um genaue Positionen, an die der Schlitten mit dem Motor gebracht werden soll, oder um regelbare Geschwindigkeit?
Schreit 30A*12V = 360W nicht eher nach einem 220V 3-Phasenmotor mit Frequenzumrichter?
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Hubsi

BeitragDo, Jul 13, 2017 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Es geht um Positionierung. Und es soll sich auch in einem finanziell sinnvollen Rahmen bewegen. Die Maschine an sich funktioniert ja, die Steuerung über ein eigenes Programm ist mehr das Tüpfelchen auf dem i Smile
Die Relais sind jetzt angedacht da ich das noch verstehen und zusammenlöten kann. Einfach um mal zu einem Erfolgserlebniss zu kommen und Kinderkrankheiten der Mechanik ausräumen zu können. Wenn die mechanische Seite funktioniert, bin ich gerne bereit jemanden zu bezahlen der mir eine Endstufe zusammenschwartet. Wenn ich das Relais nicht mit dem Com-Port schalten kann mach ich's derweil eben per Taster im Handbetrieb.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group