PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servos per PC steuern!



MrMue
06.02.2004, 19:27
Hallo!

Ich bin ganz neuen in Eurer wirklich Klasse Community.

Ich möchte mit dem PC einen Roboterarm steuern. Der soll aus mehreren Servos (aus dem Modellbau) bestehen. Was ich also suche ist eine Möglichkeit mit dem PC 4-8 Servos direkt zu steuern. Ich möchte dafür nicht extra eine C-Control anschaffen.

Der Rechner dafür hat Windows 95 oder Dos-Umgebung. Also nicht die Beschränkungen mit der Schnittstelle.

Der SD20 gefällt mir sehr sehr gut nur leider braucht dieser ja den I²C-Bus. Kann man das vielleicht SOftwareseitig emulieren? Sorry für die vielen Fragen, bin da totaler Neuling.

Netten Gruß
Carsten

Kjion
06.02.2004, 19:34
Direkt ( beispielsweise per Druckerport ) geht nicht, da Windows kein Echtzeitbetriebssystem ist und so das notwendige Timing nicht eingehalten werden kann.

Der SD20 ist da schon besser geeignet. I2C lässt sich auf jeden Fall emulieren. Es gibt im Netz bestimmt auch Programme dazu.

MfG Kjion

PS:

Ich entwickle gerade einen Baustein, der im Prinzip das selbe kann wie der SD20 nur nicht so viele Servos ansteuert, dafür aber auch per RS232 funktioniert. siehe : https://www.roboternetz.de/phpBB2/viewtopic.php?t=466

MrMue
06.02.2004, 19:55
Hey Kijon,

das ging ja irre schnell mit der Antwort. Leider habe ich Softwaremäßig noch nix im Netz gefunden.

In den von Dir gelinkten Thread habe ich schon reingeschaut. Da gefällt mir das Modul von Luk-As richtig gut. Aber das wird wohl nicht käuflich zu erwerben sein, denke ich.

Was soll bei Deinem Modul anders sein? Ist da bereits was verfügbar? Fragen über Fragen, die sich schlimm auf eine Antwort freuen. ;)

Netten Gruß
Carsten

Minifriese
06.02.2004, 22:22
Hallo zusammen,

Sach ma, Kjion, weisst du zufaellig, ob das mit dem "nicht echtzeitfaehig" auch fuer Linux gilt?

Und was mich brennend interessiert: Wie steuerst du fuer deinen Servotreiber vom PC aus den RS232-Port an? Du benutzt doch bestimmt C oder C++, oder? Ich habs da irgendwie nie geschafft, irgendwas ueber den seriellen Port rauszuschieben, parallel war dagegen kein Problem. Ist das der gleiche outp-Befehl? Und funktioniert dein Baustein auch unter XP? Wie man da die daemliche Windows-Sperre fuer Hardwarezugriffe umgeht, hab ich noch nicht rausbekommen...

Nils

Kjion
07.02.2004, 09:45
@MrMue

Was soll bei Deinem Modul anders sein?
Es ging darum das der Chip kleiner sein sollte ( nur 20 PDIP, statt 28 PDIP ). Ist allerdings noch nicht ganz fertig.
Ich glaube es gibt noch einen käuflichen Chip der die Ansteuerung über RS232 zulässt : FT639 ( ich glaub zumindestest das er sich so schreibt ;) )

@Minifriese
Mit Linux kenne ich mich eigentlich nicht aus. Es gibt aber ein EchtzeitLinux. Für alle anderen Versionen gilt das gleiche wie für Windows.


Wie steuerst du fuer deinen Servotreiber vom PC aus den RS232-Port an?
Ich verwende dafür Delphi. Es gibt einige gute ComPort Treiber für Delphi im Internet. Damit ist das relativ einfach.


Ist das der gleiche outp-Befehl?
keine Ahnung ;) Mit dem Parallelport hab ich noch nie was gemacht...


Und funktioniert dein Baustein auch unter XP?
Warum sollte er das nicht ?? Es kommt ja nur auf das Programm auf dem PC an das die Daten sendet. Wenn das unter XP läuft, dann funktioniert der Rest auch. Ich benutzte allerdings kein WinXP von daher hatte ich damit noch nie Probleme ;)

MfG Kjion

MrMue
07.02.2004, 11:15
Hoi Hoi!

Das ist ja bis hierher alles ganz spannend. Aber wie nun weiter. So richtig zu einem Ergebnis für mich sind wir ja noch nicht gekommen.

Ich muß also warten, bis Du Deine Entwicklung fertig hast, oder?
Oder fällt jemanden eine Software-Lösung ein um den SD20 direkt vom Rechner zu steuern?
BTW: Die Sache mit dem
nur 20 PDIP, statt 28 PDIP sagt mit nicht viel, bezieht sich doch aber sicher auf die Baugröße des Moduls, oder?


Netten Gruß
Carsten

Joerg
07.02.2004, 11:22
Hallo Carsten,


Ich muß also warten, bis Du Deine Entwicklung fertig hast, oder?
Oder fällt jemanden eine Software-Lösung ein um den SD20 direkt vom Rechner zu steuern?

So ne richtig gute Lösung gibts bislang dafür noch nicht. Es läuft halt alles darauf hinaus, dass man entweder am PC ein Interface installiert (Elektor, ELV) was den COMport oder auch LPT in I2C umsetzt und neben dem SD20 noch für andere Zwecke gebraucht werden kann oder das am PC über die V.24 ein Controller (C-Control, AVR o.ä.) dranhängt, der die Umsetzung mit erledigt.

Viele Grüße
Jörg

Kjion
07.02.2004, 11:27
Stimmt, bezieht sich auf die Anzahl der Pins und damit die Größe...

Schau mal hier :
https://www.roboternetz.de/phpBB2/viewtopic.php?t=356

Da gings auch um den FT639. Den sollte man seriell ansteuern können. Leider ist er aber sehr teuer... außerdem ist er nicht so sehr gut verfügbar ...


Ich muß also warten, bis Du Deine Entwicklung fertig hast, oder?

Die serielle Ansteuerung sollte heute Abend fertig sein ;) I2C könnte noch ein bißchen dauern, da ich das erst per Software emulieren muss...


Oder fällt jemanden eine Software-Lösung ein um den SD20 direkt vom Rechner zu steuern?

Welche Programmiersoftware hast du denn zu Verfügung ?? Es sollten sich eigentlich die Steuerleitungen der Seriellen Schnittstelle einzeln setzten bzw. löschen lassen. Damit müsste man eigentlich eine I2C Schnittstelle hinbekommen. Fertige Software habe ich allerdings keine, vielleicht kennt ja irgendjemand anderes hier was in der Richtung ??

MfG Kjion

MrMue
07.02.2004, 11:41
Lach mich jetzt nicht aus, aber das einzige was ich programmiermäßig noch so ein bißchen kann, ist mein Schul-Turbo-Pascal. Außerdem (aber das hilft hier sicher gleich null) PHP für meine Website.

Hey aber da kann man sich doch überall wieder reinfinden. Wie war das doch gleich mit Delphi ist das nicht so eine Art "visual pascal"?

Netten Gruß
Carsten

MrMue
07.02.2004, 11:47
Sorry die Antwort von Jörg hatte ich noch garnicht gesehen.
Was ist das, was es da von ELV gibt? Hast Du nen genauen Link? Oder nen Preis.

Tut mir leid wenn ich noch so der Noob bin. Aber irgendwie fangen doch alle mal an, oder?

Eine Grundsatzfrage noch: Macht es Sinn für einen Roboterarm ModellbauServos zu verwenden?


Netten Gruß
Carsten

Joerg
07.02.2004, 12:17
Die Bestellnr. bei ELV ist 68-232-11
Habe das Teil aber noch nicht ausprobiert, kenne auch keinen der das hat. Alternativ kannste das Teil aus der Elektor nehmen: http://home.welfen-netz.de/IngoGerlach/i2c_ser/i2c_seriell.html
Die hat den Vorteil, das es vom gleichen Autor passende Libs für Win und Linux gibt. Auch scheint das Portproblem von WinNT/Win2K/WinXP mitlerweile gelöst zu sein, was bei der ELV-Lösung wohl nicht der Fall ist.


Eine Grundsatzfrage noch: Macht es Sinn für einen Roboterarm ModellbauServos zu verwenden?


Warum nicht, es kommt drauf an, welche Kraft benötigt wird. Ab einer bestimmten Baugröße kommen dann wohl eher Schrittmotoren zum Einsatz.

Viele Grüße
Jörg

MrMue
07.02.2004, 12:25
Hallo Jörg,

durch Google bin ich auch schon auf den Link von Dir gestoßen. Der Knackpunkt ist nur, wenn ich mir das anschaue, dann wird mir schon schwindelig. Ich hab keine Ahnung, was die ganzen Bauteile so bedeuten.

Ich hab ja auch Luk-As noch angemailt wegen seinem Interface aber noch keine weitere Antwort bekommen.

Mir wäre es halt am liebsten (die Ahnungslosigkeit ist schuld) wenn ich etwas mehr oder minder fertiges finden könnte. Hab auch weder nen Oszi noch sonstiges HiTech Equipment. Bin halt nen normaler Modellbauer. :)


Netten Gruß
Carsten

Joerg
07.02.2004, 13:12
Hi Carsten,


durch Google bin ich auch schon auf den Link von Dir gestoßen. Der Knackpunkt ist nur, wenn ich mir das anschaue, dann wird mir schon schwindelig. Ich hab keine Ahnung, was die ganzen Bauteile so bedeuten.


naja sind eigentlich nur Pegelwandler. Die Hardware ist aber nur das eine. Weiterhin muss das I2C Protokoll von der Software emuliert werden, da für die I2C-Leitungen nicht die Datenleitungen der V.24 sondern die Handshakeleitungen herangezogen werden. Hier ist die meiste Vorarbeit durch Einsatz der Libs aber bereits getan.


Mir wäre es halt am liebsten (die Ahnungslosigkeit ist schuld) wenn ich etwas mehr oder minder fertiges finden könnte.


Kann ich verstehen, der Einsatz eines Servocontrollers (FT639, Kijon) direkt an die serielle Schnittstelle wäre für dich da sicher vorteilhafter.

Viele Grüße
Jörg

MrMue
07.02.2004, 14:01
Was kann man mit dem I²C-Bus noch so alles anfangen?
Der ServoController ist für die Steuerung von "nur" 5 Servos ganz schön teuer, wie ich finde.

Was kosten denn so die Bauteile aus der Schaltung (I²C-Interface)? Könnte man dann darüber auch schon wieder Sensor-Informationen an den PC zurückgeben?

Wer kann mir sowas löten?
Netten Gruß
Carsten

Joerg
07.02.2004, 17:14
Hi Carsten,


Was kann man mit dem I²C-Bus noch so alles anfangen?

Der I2C Bus wurde ursprünglich von Phillips für die Unterhaltungsindustrie entwickelt und bietet z.B. auch für Datenkommunikation auf mobilen Robotern ein paar Vorteile: z.B. einfach, ausreichende Reichweite und Datenrate, Busfähigkeit, relativ störsicher.....
So gibt es mittlerweile Sensorik und Aktorik, die direkt über I2C angeschlossen werden kann (siehe z.B. http://www.robot-electronics.co.uk ).

Die Busteilnehmer erhalten eine unikate Adresse (teilweise auch durch die verwendeten Standard-Phillips-ICs vorgegeben) und können mit einem Master kommunizieren. Dabei findet immer eine Übertragung vom Master zum Slave (oder umgekehrt) statt. Der Master bestimmt bei der Übertragung jedoch immer (auch bei Leseoperationen) den Takt. Eine Übertragung von Slave zu Slave ist nicht vorgesehen.
Es gibt zwar auch Multimasterimplementationen, doch sind diese recht kompliziert und eher kaum verbreitet.
Bei einem PC-Interface übernimmt der PC immer die Rolle des Masters. Slave-Implementationen des PCs sind zwar theoretisch auch möglich aber wegen der Komplexität (Slave ist komplexer als Master) eher nicht sinnvoll.


Der ServoController ist für die Steuerung von "nur" 5 Servos ganz schön teuer, wie ich finde.

Naja, aber man spart halt den ganzen I2C-Overhead, der allerdings Sinn macht, wenn man den Bus noch für andere Aufgaben mitnutzen kann.


Was kosten denn so die Bauteile aus der Schaltung (I²C-Interface)? Könnte man dann darüber auch schon wieder Sensor-Informationen an den PC zurückgeben?


Die Sachen aus der Elektor gibt es bei Geist-Electronic:


010605-1XPK
Serielles I²C-Interface
Die serielle Variante zum parallelen
I²C-Interface aus Elektor Heft 10/2000.
Bauteile nach Liste inklusive X-Platine,
Disk und Gehäuse € 23,95
Einzelpreise:
010605-11BT: Nur Bauteile € 7,60
010 045-1X: X-Platine € 5,90
010 045-11X: Disk m. DownLoad € 7,50
010605-5G: Gehäuse 2000+ZB € 3,40


Billiger kommt man, wenn man sich die Teile bei einem Versender, wie z.B. Reichelt bestellt. Die Platine müsste man sich dann aber auch irgendwie machen (lassen) oder man baut das ganze auf Lochraster auf.


Wer kann mir sowas löten?

Das Interface auf der Platine ist auch für einen Newcomer relativ schnell aufgebaut.

Viele Grüße
Jörg

MrMue
07.02.2004, 17:23
Vielen herzlichen Dank für Deine umfangreiche Antwort. Die paarundzwanzig Euro ist mir die Sache schon wert, aber dann hab ich ja quasi noch keine Anbindung an dieServos. Richtig?

Wenn ich wirklich von null selber anfangen muß, mir den ganzen Kram bestellen und selber zusammen löten, wo ich nicht mal weiß wo ich anfangen soll, schaff ich nie den Einstieg. Ich kann nichts testen. Keinen Oszi, keine Elektroniker im Bekanntenkreis; hab grad mal nen Multimeter.

Na egal. Dennoch vielen Dank für Eure Mühen.
Vielleicht findet sich noch jemand.


MrMue
10.02.2004, 13:29
Gibt es wirklich niemanden, der mir so ein I²C Interface für die serielle Schnittstelle löten kann?

Frank
10.02.2004, 13:40
Hier ist ne I2C-Adapter für den PC Parallelport

http://www.elektronik-kompendium.de/public/borchers/i2c/softhard.htm

Eine sehr einfache Schaltung!

Gruß Frank

Hessibaby
10.02.2004, 14:54
Hallo MrMue,
beim Elektor.de gibt´s eine Servoansteuerung für den USB-Anschluß -war glaube ich in Heft 12/03 oder 01/04. Die fertigen Teile kann man meines Wissens nach bei Geist-Elektronik bestellen.

Gruß Hartmut

MrMue
10.02.2004, 16:15
Danke Hartmut!

Aber USB ist nicht in meinem Sinne. Ich will nur jetzt erstmal den PC nutzen und mich später dann vielleicht auch mal an einen Mikroprozessor ran trauen. Da ist es doch sicher sinnvoller die RS232 Schnittstelle oder I²C als Bus zu nutzen, oder?

Leider bekomme ich von Luk-As keine Antwort.
Netten Gruß
Carsten