Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Elektrotechnik: Mehrere Elektromotoren per USB ansteuern
mo#
myCSharp.de - Member

Avatar #avatar-3131.jpg


Dabei seit:
Beiträge: 187
Herkunft: Baden

Themenstarter:

Elektrotechnik: Mehrere Elektromotoren per USB ansteuern

beantworten | zitieren | melden

Hallo Zusammen,
ich hab ein kleines Bastelprojekt und will in diesem Zusammenhang über USB ein bzw. mehrere E-Motoren/Servos mittels eines kleinen C#-Programms steuern.

Jetzt fehlt mir aber das elektrotechnische Fachwissen wie man so etwas ansteuert. Gibt es da fertige Platinen welche mir die Signalumsetzung USB -> Motor vornehmen? Und wie kann ich den Motor extern (nicht per USB) mit Strom versorgen (Relais?)?
Ist auch eine Umkehrung der Laufrichtung der Motoren möglich?

Hoffe hier sind auch ein paar Löter unterwegs die mir ein bisschen weiterhelfen können.
Vielen Dank.
private Nachricht | Beiträge des Benutzers
Lennart
myCSharp.de - Member



Dabei seit:
Beiträge: 416
Herkunft: Bawü

beantworten | zitieren | melden

Zitat von mo#
Gibt es da fertige Platinen welche mir die Signalumsetzung USB -> Motor vornehmen?
Dafür gibts entsprechende Motorkarten, hängt von den Motoren ab welche Karte da in Frage kommt. (z.B. hab ich mal folgende verwendet: 3 Kanal Schrittmotorkarte)
Zitat von mo#
Und wie kann ich den Motor extern (nicht per USB) mit Strom versorgen (Relais?)?
Per in die Karte integrierte Endstufe.
Zitat von mo#
Ist auch eine Umkehrung der Laufrichtung der Motoren möglich?
Mit Sicherheit.
Zitat von mo#
Hoffe hier sind auch ein paar Löter unterwegs die mir ein bisschen weiterhelfen können.
Hab zwar selbst noch nicht viel gelötet aber im Studium mal nen Repman per Schrittmotorkarte angesteuert.
private Nachricht | Beiträge des Benutzers
Lenny
myCSharp.de - Member



Dabei seit:
Beiträge: 95

beantworten | zitieren | melden

Interessant wäre zudem zu erfahren was für Motoren du exact ansteuern möchtest ?
(Schrittmotoren, Getriebemotoren, Servos) und welche Ströme diese benötigen.
private Nachricht | Beiträge des Benutzers
Jdam
myCSharp.de - Member



Dabei seit:
Beiträge: 257

beantworten | zitieren | melden

Hi,
also der normale Aufbau einer Motorsteuerung sieht inetwa folgendermaßen aus: http://sine.ni.com/cms/images/devzone/tut/ce36be30693.gif
Man sieht eine klare Schichtentrennung von der Anwendung/MotionControl/Drive und dem Motor selbst. Möchtest du mit deinem Programm eine bestimmte Position anfahren, muss diese Position dann vom MotionControl mit der aktuellen verglichen werden und daraus resultierend wird der Motor angesteuert. Das erfordert allerdings schon etwas mehr Logik (und Euro) als einfach nur vor und zurück und natürlich Motoren, die rückmelden.
Was du aber in jedem Fall brauchst ist das Drive. Um dir dazu was sagen zu können ist aber, wie von Lenny gesagt, sind aber ein paar mehr Daten nötig. Als Beispiel sei dir mal Maxon (www.maxonmotor.de) genant, die haben sowas im Angebot.
Wie die Umsetzung von USB funktioniert weis ich leider auch nicht. Auf der Arbeit benutze ich Hardware von National Instruments. Die bieten zum Beispiel MotionControl-PCI-Karten an, die dann auch massig Features haben, wie Koordinierung mehrerer Achsen zur dreidimensionale Bewegung etc. Dazu bräuchtest du allerdings die LabView IDE (mit der sich auch .Net Assemblies für die Steuerung integrieren lassen) und mehr als tausend Euro. Das kommt aber auf deine genauen Anforderungen an. Wenn du nur vor und zurück fahren möchtest, reicht im einfachsten Fall ein Digitaler Ausgang, den du dann per code High oder Low schaltest und damit das Drive steuerst. Ich hab zwar jetzt keinen im Kopf, aber Google kennt sicherlich ein USB Digital Ausgang
private Nachricht | Beiträge des Benutzers
zero_x
myCSharp.de - Member

Avatar #avatar-2567.gif


Dabei seit:
Beiträge: 1.044
Herkunft: Koblenz

beantworten | zitieren | melden

Hallo mo#,

ich persönlich hatte mit dem Thema nicht so viel am Hut. Das schonmal vorab. So wie ich das sehe, ist das in C# ohne weiters nicht möglich, den USB-Port anzusteuern. Möglich ist es bestimmt. Dann würde es aber in Richtung Treiberprogrammierung gehen. In C# bzw. .NET ist das eine nicht als so gute Idee. Eine Alternative wäre hier der LPT-Port. Dazu habe ich hier ein Tutorial gefunden Mit C# ein LCD ansteuern.

zero_x
zero_x | myCSharp.de - gemeinsam mehr erreichen

Für längere Zeit inaktiv.
private Nachricht | Beiträge des Benutzers
Scavanger
myCSharp.de - Member

Avatar #avatar-3209.jpg


Dabei seit:
Beiträge: 309

beantworten | zitieren | melden

Am "einfachsten" aber praktikabelsten (und relativ günstig zu realisieren) wäre einen Mikrocontroller der per serieller Schnittstelle Befehle entgegen nimmt und dann entsprechend die Servos/Motor ansteuert. Per Serial/USB Konversten geht das auch per USB. Auf C# und Mikrocontroller Seite kannst du einfach die Befehle seriell durch die Gegend schicken. Solange das nicht in annähernd Echtzeit passieren muss ist das auch ausreichend schnell.

Mit den Atmel Controllern wäre das relativ einfach zu realisieren, sofern du mit einem Lötkolben umgehen kannst. ;)
Die Programmierung des Controllers wäre dann aber in C (ohne #)

using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}
private Nachricht | Beiträge des Benutzers
Stipo
myCSharp.de - Member

Avatar #avatar-2966.gif


Dabei seit:
Beiträge: 699
Herkunft: Lörrach

beantworten | zitieren | melden

Hallo,
Zitat
Jetzt fehlt mir aber das elektrotechnische Fachwissen wie man so etwas ansteuert.
Ich denke ohne konkretes Elektronik Fachwissen, wirst du mit deiner Frage in einem reinen Programmierforum nicht weiter kommen.
Bei Conrad oder ELV gibt es schon diverse fertige Platinen. Wobei ich empfinde, das die meisten davon nur mehr als Grundlage dienen können, dann aber wieder durch eigene elektronische Schaltungen erweitert und oder umgebaut werden müssen. Also "Die" perfekte Platine wirst Du wohl eher nicht finden.

Um effektiv was zu basteln wirst Du aber wohl um einen Atmel nicht herum kommen. Damit ist man zumindest mal am flexibelsten. Nur dann sollte man eben auch ein bisschen Elektronik beherschen, und zumindest so sachen wie "Phasenabschnitt" kennen ( würde da schon reichen um einen 24V Gleichstrommotor zu regeln).

Aber allgemein ist das ein Fachbereich, den man nicht unterschätzen sollte. Wenn Du eine hohe Frustgrenze hast, ist Elektronik ein schönes Fachgebiet, wo man sich gut austoben kann. Aber man wird am anfang sehr häufig rückschläge haben, die auch durchaus mal teuer werden können ( Atmel geschrottet usw :-) )
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Stipo am .
private Nachricht | Beiträge des Benutzers