PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einfache Aufgabe, aber wie realisieren?



der_eine
27.08.2007, 08:33
Hallo Jungz und Mädelz,
ich muss ein Gerät entwickeln, das rechnergesteuert (vorzugsweise über COM) eine Platte von der einen (festen) Position in die andere (feste) Position dreht. Ich nehme an, eine mechanische Lösung, an die die Platte einfach gegen fährt, würde auf Dauer dem Motor schaden (oder?). Deswegen wäre meine kurzfristige Idee ein Servo. Was haltet ihr davon?
Ich bin auf diesem Gebiet total unbefleckt, bin also für jeden Hinweis dankbar.
Auch die Rechneranbindung macht mir Sorgen. Ich will das Ganze so einfach wie möglich bauen. Kann ich diese Millisekundenimpulse einfach über einen Pin der seriellen Schnittstelle übertragen? Was bräuchte man dafür?

Hiiiiiiilfe. :oops:

der_eine
27.08.2007, 13:58
Ich bin in meinen Überlegungen soweit vorangekommen:
Man könnte doch sicher die PWM für den Servo über die serielle Schnittstelle durch den PC steuern, wenn man bestimmte Daten fortlaufend sendet. Ist das möglich? Ich habe ausgerechnet, dass man eine Baudrate von 375 einstellen müsste, damit inklusive Startbit und 2 Stopbits bei 5 Bit Paketbreite ein 2 ms langer Impuls entsteht, wenn man 5 Nullen sendet. Den 1 ms Impuls würde man dann mit "00111" erzeugen. Anschließend müsste 20 ms gewartet werden. Ist das überhaupt zu realisieren?
Zur Verkabelung: kann ich einfach den TxD-Ausgang der COM-Schnittstelle mit dem PWM-Eingang des Servos verbinden?

pongi
27.08.2007, 15:56
Verbinde zuerstmal rein gar nichts mit deiner COM-Schnittstelle!!!
Die ist für Datenübertragung konzipiert, schalten kann man damit überhaupt nichts (zumindest nicht in der Größenordnung). Ansonsten besteht die akute Gefahr, dass Du die Schnittstelle, im schlimmeren Fall deinen Motherboard zerstörst.
Wenn Du direkt was schalten möchtest, dann nur über Optokoppler, dann brennen im schlimmsten Falle diese durch.
Warum machst Du es Dir nicht einfach, und nimmst einen uC, der am COM-Schnittstelle hängt, und auf Befehl die Platte bewegt?

squelver
27.08.2007, 16:28
Ich denke, das wäre fürn Anfang mit nem einfachten Getriebemotor (untersetzung) und ein paar Endtastern/ -schaltern im Zusammenspiel mit nem z.B. Mega8-Controller möglich.

Muss die Platte gehoben werden? Sonst evtl nen kleinen Ausleger \:D/

Welche Vorgaben hast du noch? Größe, Gewicht, Format, etca... ?

dundee12
27.08.2007, 16:41
Material wäre interessant.
Wenn es metall ist, würde das mit einem Magneten gehen.

der_eine
27.08.2007, 17:59
Einen µC zu benutzen ist natürlich eine Möglichkeit. Allerdings ist sie für den Fall m.E. schon zu hoch konzipiert. Was mit dem Schalten "in der Größenordnung" gemeint ist, weiß ich nicht. Ich rede nicht von einem riesigen Stellmotor sondern eher von einem Modellbauservo der Fliegengewichtsklasse. Die zu drehende Platte dürfte eigentlich nicht mehr als 50g wiegen. Direkte Vorgaben habe ich keine, ob die Platte aus Metall sein darf, weiß ich leider nicht. Da sie vertikal aufgehängt ist, kann ich mir auch keine geeignete magnetische Lösung vorstellen, zumal Hightech in unmittelbarer Umgebung ist und ich nicht weiß, inwiefern die Felder dort zu vermeiden sind. Ich weiß auch, dass RS-232 zum Schalten eher nicht geeignet ist, und man lieber den Parallelport nehmen sollte. Ich kann allerdings nicht davon ausgehen, dass dieser vorhanden ist, beim COM allerdings schon.
Ich habe eben im Netz gelesen, dass man eventuell die Steuerleitungen (TCR oder so ähnlich) für Schaltaufgaben benutzen kann. Dann müsste ich diese nur noch per Rechner zeitgesteuert setzen können. Weiß einer wie das unter Windows geht? Ein Problem sehe ich allerdings: der PWM Eingang des Servos ist doch meist nur für 5V konzipiert, richtig? Beim COM habe ich im Extremfall aber 30V wenn ich das richtig sehe. Widerstand davor?
Muss ich wirklich galvanisch Entkoppeln? Eigentlich dürften doch von dem PWM Eingang des Servos keine Spannungsspitzen gefährlicher Höhe zu erwarten sein?

Danke erstmal für die bisherigen Antworten. :)

Klingon77
27.08.2007, 18:40
hi,

warum nimmst Du nicht einfach einen Schrittmotor und eine zugehörige Steuerplatine?

Gibt es da nichts "fertiges" zum anschließen und loslegen zu kaufen?

Wenn Dir 200 Schritte pro Umdrehung reichen, könntest Du die leichte Platte sogar direkt auf den Motor setzen.

Gruß, Klingon77

pongi
27.08.2007, 19:46
Was mit dem Schalten "in der Größenordnung" gemeint ist, weiß ich nicht.

Die COM-SChnittstelle wird Dir den nötigen Strom garantiert nicht liefern können. Deshalb ist die Entkopplung und Versorgung über eine andere Quelle notwendig.

Christopher1
27.08.2007, 20:09
Also einfach nen Widerstand dazwischenhängen wird wohl nicht klappen die µC-Lösung wär wohl die einfachste (meiner Meinung nach)

der_eine
27.08.2007, 21:31
Die COM-SChnittstelle wird Dir den nötigen Strom garantiert nicht liefern können. Deshalb ist die Entkopplung und Versorgung über eine andere Quelle notwendig.

Die Leistungsaufnahme wird doch aber nicht über die PWM-Kanal des Servos, oder? Ich hab doch extra noch eine Stromversorgung am Servo.
Bin eben über folgendes gestoßen: http://www.windmeadow.com/node/4.

pongi
27.08.2007, 21:38
Sorry, aus irgendeinem Grund hab ich gedacht, dass Du einen Schrittmotor ansteuern willst...

Die Software bei Deinem Link sollte auf alle Fälle interessant sein. Was Du noch vielleicht bedenken musst, dass Windows nicht real-time funktioniert, es kann also sein, dass Du ein Befehl in einer Software gibst, dieser wird aber nicht sofort abgearbeitet. Daher kann es zu Problemem beim Timing des PWMs kommen.

der_eine
27.08.2007, 21:44
Naja, die Software hilft mir eben nicht viel weiter. Ich hab allerdings was entdeckt mit "EscapeComm".. oder so ähnlich. Naja das Programmieren kann ich eventuell auch wem anders übertragen. Wichtig ist nur, dass das was ich vorhabe auch funktioniert. Also kann ich das so machen, dass ich vor den Steuereingang des Servos einen Widerstand (4,7k?) hänge? Warum auf der Seite eine Diode davor hängt ist mir nicht klar. Bei den hohen Spannungspegeln die es bei RS-232 anscheinend gibt, dürfte die doch gar nichts abfangen.

der_eine
28.08.2007, 08:33
Nachtrag: Habe nach ewiger Suche in der MSDN Library (Hab ich schon erwähnt, dass ich die wie die Pest hasse? Einfach nervig.) folgendes gefunden: http://msdn2.microsoft.com/en-us/library/Aa363254.aspx. Das kann ich doch für meinen Zweck sicher gut verwenden, oder? Wegen der Zeitabhängigkeit: wie genau kann ich die Impulszeit einstellen, wenn ich mit einem Timer prüfe? Weiß ja auch nicht wie empfindlich ein Servo für die PWM ist.

der_eine
29.08.2007, 09:58
Hallo?
Folgende Fragen sind noch ungeklärt:
Wie groß darf der Pegel für dem PWM-Eingang des Servos sein? 5V? Kann ich einen 4,7kOhm Widerstand dazwischen hängen, wie bei http://www.windmeadow.com/node/4? Und was macht dort die Diode?

Pumba
30.08.2007, 18:37
Beim großen C, aber sich er auch wo anders, gibts eine Testplatine für Servos. Wenn Du das Poti davon abbaust und stattdessen einen Schalter einbaust, mit dem Du abwechselt zwei Potis auf die Platine schalten kannst, hast Du doch alles, was Du brauchst.

der_eine
31.08.2007, 08:07
Wenn du mit dem "großen C" CONRAD meinst, dann habe ich dort keine Testplatinen finden können.

Pumba
03.09.2007, 16:53
Wenn du mit dem "großen C" CONRAD meinst, dann habe ich dort keine Testplatinen finden können.

Ja, meinte ich. Habe gerade im neuen Katalog auch keine gefunden. Habe meine aber daher.

Pumba
03.09.2007, 16:56
Hier
http://www.wherzog.de/eflug/servotester.htm
ist ein Bild davon.

Pumba
03.09.2007, 16:58
Und

http://www.conrad.de/Modellbau/servotester_bausatz.sap

hier gibts ihn zu kaufen.

datobbs
04.09.2007, 15:23
du könntest den vorschlag von hier(http://www.windmeadow.com/node/4) schon benutzen,
nur müsstest du das relais und den motor-anschluss in etwa durch die anordnung im anhang ersetzen.(das relais ist ein 2xUMschalt relais)

S1 und S2 sind durch micro-schalter (öffner) zu ersetzten, das sind dann die end-schalter.

wenn du eine rückmeldung willst ob der vorgang abgeschlossen ist, könntest du noch die anderen anschlüsse der endschalter auf 2 pins des com-ports führen und diese programmintern abfragen, die endschalter müssen dann umschalter sein.

über das wissen wie man den com-port steuert und ausliest muss du google bemühen.

gruß datobbs

P.S. du solltest aber von einer batterie absehen, die hat dein motor schnell leergelutscht

der_eine
07.09.2007, 08:37
Welche Möglichkeit gibts noch? Ein 6V-Netzteil nehmen wäre sicher am einfachsten, oder? Ich finde nur bei Conrad nichts richtiges. Möchte für Netzspannung auch nichts offenes nehmen um dann erst ein Gehäuse drumzubauen oder so. Gibts nicht einfach was bezahlbares fertiges mit Netzstecker, das knallhart 6V liefert und gut is? Oder von miraus auch noch zum Umschalten. Ich hab auch Trafos gesehn, die in einem Gehäuse sind, aber ich will das ja einfach nur irgendwo einstecken und den Servo dranhängen und nicht auf eine Platine löten.

@datobbs: Bei deinem Schaltplan sehe ich nicht durch. Warum soll ich auch ein Relais verwenden, wenn der Servo einen TTL-Eingang besitzt? Schalten Relais überhaupt auf die Millisekunde genau (eher noch genauer)? (Hat er doch, oder? Die Datenblätter bei Conrad sind ein Witz...)

datobbs
07.09.2007, 17:54
Conrad 6V/DC Steckernetzteil 200mA (http://www.conrad.de/goto.php?artikel=510005)
Conrad 6V/DC Steckernetzteil 500mA (http://www.conrad.de/goto.php?artikel=510007)

da hast du mich wohl etwas falsch verstanden, das relais sollte nicht den servo schalten (da hast du recht , dazu wäre es viel zu langsam), sondern einen getriebe motor und zwar in beide richtungen, also vorwärts und rückwärts.
ich dachte nur das mit dem getriebe motor wäre vielleicht einfacher.


Hallo?
Folgende Fragen sind noch ungeklärt:
Wie groß darf der Pegel für dem PWM-Eingang des Servos sein? 5V? Kann ich einen 4,7kOhm Widerstand dazwischen hängen, wie bei http://www.windmeadow.com/node/4? Und was macht dort die Diode?

zum comport: der arbeitet mit positiver und negativer spannung, also pin an, 1, "high", +12V gegen GND;pin aus, 0, "low", -12V gegen GND

deswegen die diode, widerstand einfach als strom begrenzung(obwohl der comport meines wissens eh auf 20 mA(hat glaub ich auch einer weiter oben schon erwähnt) begrenzt ist und der B-E übergang ja auch eine diode ist (aber ich weiß nicht wie groß die durchbruch spannung da ist))

ob das mit dem comport direkt hin haut weiß ich nicht, muss man ausprobieren.

gruß datobbs

der_eine
24.09.2007, 16:26
Also Jungz, der Stand ist folgender: ich werde einen Servo mittels des Micro Servoboards von robotikhardware.de ansteuern. Die andere Variante wurde wegen dem gebastelten Charakter abgewählt.
Nun ist das Problem, einen Servo zu finden. Ich hatte zuerst gar nicht so darauf geachtet, aber anscheinend ist der Drehbereich ganz und gar nicht selbstverständlich groß genug. Ich bräuchte ja 180° um von der einen in die andere Position zu drehen.
Dieser (http://www.robonova.de/store/product.php?productid=16148&cat=249&page=1) schien geeignet, ist aber nicht lieferbar.
Allerdings ist bei sehr vielen Angeboten im Netz überhaupt kein Drehbereich angegeben. Und Dokumentation ist irgendwie nie vorhanden.. alles Mist. :-/

der_eine
27.09.2007, 08:49
ding...............

Manf
27.09.2007, 10:33
Da die Begrenzung nicht mechanisch so eng ist kann man es wohl praktisch immer so erreichen:
http://www.madrat.de/html/servo_mit_180o.html

Überblick
Im Prinzip ist das Ganze gar nicht so schwer. Der Servo arbeitet (wie auf der Seite Funktion beschrieben) mit einem Poti zur Ermittlung der Position. Entscheidend für die Servo-Elektronik ist dabei die abgegriffene Spannung, die den erreichten Position entspricht (proportional zur Drehbewegung erhöht oder verringert sich die Spannung am Schleifer des Potis). Jetzt kommt der Trick: Man kann der Elektronik etwas vorgaukeln, in dem man die Spannung am Schleifer “langsamer” steigen bzw. fallen läßt.

Ein Beispiel: Ein 2kOhm Poti erreicht bei einem Drehwinkel von 90° einen Spannungshub von 1V, d.h. bei einer Drehbewegung von 90° ändert sich die Spannung am Schleifer um ein 1V. Wenn man jetzt zwei 1kOhm Widerstände in Reihe mit dem Poti schaltet, veriingert sich der Strom durch das Poti auf die Hälfte und der Spannungshub sinkt auf 0,5V. Die Servo-Elektronik ist aber so eingestellt, das unbedingt 1V erreicht werden sollen, also dreht der Motor solange weiter bis am Poti wieder 1V erreicht werden. Das bedeutet, das der Servo sich jetzt um doppelt so weit drehen muß, bis die Spannung von 1V erreicht wird. Der Servo kann so 180° bewegt werden, ohne die Eingangssignale zu ändern.

der_eine
27.09.2007, 10:58
Den Artikel kenne ich schon, trotzdem danke für deine Antwort.
Das zerlegen des Servos kommt nicht in Frage, da ja schon das direkte ansteuern des PWMs über COM-Steuerleitungen über einen Treiber für zu "gebastelt" empfunden wurde.

Mir ist nicht so recht klar, wieso die meisten Servos, bei denen der Drehbereich angegeben wird, einen so kleinen Drehbereich haben. Ich kann mir genug Aufgaben vorstellen, wo ich damit nicht auskomme. Und warum ist bei unglaublich vielen Servos zum Drehbereich *gar nichts* angegeben?

Manf
27.09.2007, 11:14
Hier ist noch eine Beschreibung.

http://mechatronics.mech.northwestern.edu/design_ref/actuators/servo_motor_intro.html
Es ist wohl allgemein so, dass es eine Mittelstellung bei 1,5ms gibt, dass aber die Steigung des Winkels über der Impulsdauer nicht einheitlich ist.

Meistens kann man die 180° und mehr mit größerer Variation der Impulsdauer erreichen. Im genannten Beispiel sind es 0,8ms, 1,52ms und 2,5ms.
Ein Absolutwert für die Mittelstellung ist bei 180° genutzem Winkel und 270° ansteuerbarem Winkel aber auch willkürlich. Wie gesagt, die Werte sind nicht einheitlich.
Manfred