Hallo. Und zwar habe ich mit einen Spielzeugroboterarm gekauft, den ich irgendwann mal per Bildverarbeitung regeln will und damit z.B. Legosteine sortieren will. (ziemlich ungenau, aber erstmal egal) Das ganze soll mit Labview gesteuert werden. Der Mikrocontroller soll dabei nur die IC L293D mit PWM ansteuern, weil mir da nichts besseres einfällt. Der Rest der Logik soll dann Labview übernehmen. Der Roboterarm hat 5 Gleichstrommotren. Ich habe mir folgendes überlegt. RS232-Schnittstelle. AtmelMega32 IC L293D Gleichstormmotor so war mal mein Grundgedanke. Es steht noch keine Schaltung oder so, nur die Idee. Ist es sinnvoll? Jetzt habe ich noch ne Frage: Der Roborter arm ist schon USB tauglich, und wir über ein Programm am PC gesteuert. Theoretisch könnte ich mit Labview direkt die schon bestehende Steuerung ansprechen, allerdings habe ich absolut gar keine Plan, was für Befehle ich schicken müsste. Kennt sich da jmd. aus? Habe mal einen USB-Logg angehängt. Kann mir dazu jmd. was sagen, oder nen Tipp geben, in welchem Forum ich da nachfragen kann?
> Und zwar habe ich mit einen Spielzeugroboterarm gekauft, den ich > irgendwann mal per Bildverarbeitung regeln will und damit z.B. Was die Menscheit alles so braucht.... > Der Mikrocontroller soll dabei nur die IC L293D mit PWM ansteuern, > weil mir da nichts besseres einfällt. Das wuerde gehen.... > Der Rest der Logik soll dann Labview übernehmen. ..aber das ist Unsinn. Du brauchst eine Rueckmeldung der Motore ueber ihre Drehzahl und Position. Und zwar im Microcontroller damit der beides regeln kann. Dann kannst du dem von mir aus mit Labview mitteilen wo er hinfahren soll. > Ist es sinnvoll? Nein. > Der Roborter arm ist schon USB tauglich, und wir über ein Programm > am PC gesteuert. Dann haben die Motoren Encoder? Oder eine andere Rueckmeldung? (Servos) Ist es reproduzierbar moeglich eine Position wiederholt anzufahren? Olaf
Hi Olaf, Olaf schrieb: >> Der Roborter arm ist schon USB tauglich, und wir über ein Programm > >> am PC gesteuert. > > > > Dann haben die Motoren Encoder? Oder eine andere Rueckmeldung? (Servos) > > Ist es reproduzierbar moeglich eine Position wiederholt anzufahren? Es sind Spielzeuggleichstrommotoren, wie zum Beispiel in Carrera-Rennautos. Dadurch ist es nicht wirklich möglich eine Position verlässlich wiederholt anzufahren. Es gibt eine Steuerung die dem Motor einen Impuls schickt und in eine bestimmte Anzahl von Umdrehungen in eine Richtung drehen lässt, aber immer mit einer gewissen Toleranz. Deshalb dachte ich an eine Bildverarbeitung die mit Labview die Positionierung übernehmen soll. Grüße Stephan
> Deshalb dachte ich an eine Bildverarbeitung die mit Labview die > Positionierung übernehmen soll. Naja, immerhin theoretisch waer das wohl moeglich. Aber in der Praxis wird das wohl sehr nahe an unmoeglich sein. Deine Kamera muesste ja dann die Information ueber Position und Geschwindigkeit liefern. Ueberleg mal wie es ist wenn du das Spielzeug von Hand steuerst: 1. Du hast zwei Kameras in deiner Ruebe eingebaut. Die brauchst du auch am Rechner. (mindestens) 2. Dein Gehirn ist fuer solche Aufgaben deutlich leistungsfaehiger, lernfaehig und kennt bessere Algorthmen. Trotzdem musst du vermutlich erst eine Weile damit spielen bis du es kannst. 3. Du kannst raten und in die Zukunft sehen. Wenn ein Teil gerade fuer deine Augen nicht sichtbar ist dann weisst du automatisch wo es sich befindet weil Gehirn vorrausetzt das sich eine bestimmte Bewegung fortsetzt. All das musst du in einer Software umsetzen. Und die muss noch moeglichst schnell sein weil jede Zeitverzoergerung deine Regelung schwieriger macht. Mit anderen Worten es waere VIEL einfacher eine Rueckmeldung von den Motoren zu haben. Pruef mal ob du da nicht Encoder aus einer alten Maus dranbasteln kannst. Vielleicht kuckt die Achse des Motors ja hinten etwas raus. Oder ob man an einem Zahnrad des Getriebes einen Aufkleber mit einem Code (Graycode?) aufkleben kann und das dann abnimmt. Olaf
>Und zwar habe ich mit einen Spielzeugroboterarm gekauft,
Welchen?
nach der Bedienungsanleitung wird der Arm wohl nur über verschiedene Laufzeiten gesteuert. Also ziemlich ungenau. Da ist es am besten die Motore durch Schrittmotore zu ersetzen, obwohl man dann auch jeweils einen Referenzpunkt braucht Axel
oder beim Einsatz von Schrittmotoren den Strom nicht so groß einstellen und dann die maximal Anzahl von Schritten in die mech. Endlage fahren und glauben, dass man da angekommen ist. Axel
Also wenn es nur um die Endlage geht kann ich 5 Taster anbringen, die die Endlage bzw. den Nullpunkt bestimmen. Das sollte das kleinste Problem sein. wären dann am mC 5 Eingänge mehr... Schrittmotoren einbauen ist halt schlecht, da es für die Motoren vorgesehen Plätze gibt. Wenn dann sollten sie ungefähr Baugleich oder kleiner sein. Hast du da einen Vorschlag?
Ich glaub du wirst zehnmal schneller fertig wenn du dir deinen eigenen Arm baust. Da musst du nich auf den Platz achten, usw
Pearl verkauft doch eh nur Humbuk, wirf es in die Tonne und mach was sinnvolles!
> Ich glaub du wirst zehnmal schneller fertig wenn du dir deinen eigenen > Arm baust. Da waer ich mal nicht so sicher. Es hat schon einen gewissen Vorteil wenn man eine Menge Mechanik uebernehmen kann. Ich wuerde aber keine Schrittmotore einbauen. Die passen von ihrer Bauform normalerweise nicht dahin wo man vorher normale Motore verwendet hat. Ausserdem haben sie sonst auch nur Nachteile. Sie haben nur den Vorteil einfacher ansteuerbar zu sein. Und bevor man etwas anderes einbaut erstmal rechnen. Wieviel Kraft hat der Motor, wieviel braucht man. Was ist seine Drehzahl. Spaetestens wenn man das vorhandene Getriebe am Motor aus konstruktionsgruenden drin lassen muss dann wird man wohl feststellen das der Roboter sich mit Schrittmotor im Zeitlupentempo bewegt. Es wird wirklich viel einfacher sein an die vorhandene Mechanik eine Rueckmeldung fuer die Position anzubringen. Zwei Moeglichkeiten habe ich ja schon genannt. Eine dritte waere es ein Poti anzubringen. (gerne auch 10Gang :-) Ausserdem bringen sortierte Legosteine die Menschheit nicht weiter. Aber wenn man an so einem Arm einen Encoder angebracht hat und das ganze Regelungstechnisch im Griff hat, dann hat man selber was gelernt. Olaf p.s Wenn man sich so einen Arm an seinen Schreibtisch schraubt damit er einen den Tee umruehrt, ist man dann ein Nerd? Oder gar schon Otaku?
Einfach mal den Wertstoffhof Deines Vertrauens aufsuchen und von dort 5-10 alte Drucker und 5 Scanner mitnehmen und ausschlachten. Die kleinen Schrittmotore haben nicht so viel Drehmoment, dass man sie nicht einfach in die mech. Endlage fahren kann. Dann hat man eine definierte Ausgangsposition. Schrittmotore brauchen dann natürlich den passenden Treiber, der L293D ist das nur bedingt geeignet. Kommt darauf an, welch Material recycelt werden kann. Axel
Stephan B. schrieb: > Der Roboterarm hat 5 Gleichstrommotren. Das bedeutet 5 Freiheitsgrade, die Du ansteuern musst um in einem 3 dimensionalen Raum einen beliebigen Punkt zu erreichen. Und das noch über (Stereo!?) Kameras per Echtzeit-Videoverarbeitung regeln! Allein dafür schon viel Spass beim Rechnen und Programmieren! Bevor Du weiter über Details nachdenkst solltest Du darüber nachdenken was das an Aufwand und notwendige Kenntnisse bedeutet. Dafür könnte man locker einige Doktor und zig Masterarbeiten vergeben. Sehr sportlich
> Einfach mal den Wertstoffhof Deines Vertrauens aufsuchen und von dort > 5-10 alte Drucker und 5 Scanner mitnehmen und ausschlachten. Das Problem bei dieser Verfahrensweise ist das man dann schnell eine Fraese und eine Drehbank haben will um Teile anzupassen. Wenn man das nicht will und kann dann ist Pollinrecycling schon eine gute Methode. > Die kleinen Schrittmotore haben nicht so viel Drehmoment, dass man > sie nicht einfach in die mech. Endlage fahren kann. Drehmoment ist da sowieso kein Problem. Man kann schliesslich das Drehmoment der Motore in der Lehrfahrt beliebig reduzieren. > Schrittmotore brauchen dann natürlich den passenden Treiber, > der L293D ist das nur bedingt geeignet. Der waere vielleicht sogar noch geeignet. Man muesste nur einen Stromregler davorpacken. Also L6506+L293E. > Dafür könnte man locker einige Doktor und zig Masterarbeiten vergeben. Ich sag doch theoretisch moeglich, nur praktisch schwierig. :-) Olaf
Hi, habe mir noch Gedankten gemacht. Mit Stereobildverarbeitung wäre es wahrscheinlich zu aufwendig. Gehen wir mal davon weg. Also brauchen wir Rückmeldungen der Motoren über die Drehzahl um diese zu regeln und der Arme um die Position festzustellen. Schließen wir optisch mal aus. Dann könnte ich mir vorstellen, die Drehzahl über einen Hallsensor aufzunehmen, wobei ich mir da noch anschauen müsste wo ich diesen unterbringe und was die Sensoren triggert. (Zähnräder sind aus Kunststoff) Die Lage könnte man über Potis feststellen. Oder auch über die Hallsensoren berechnen. Endlage =0 (einen Taster für die Endlage) und dann die Impulse zählen. Das würde das ganze Projekt doch deutlich vereinfachen? Die Bildverarbeitung müsste in diesem Fall nur noch die xy-Koordinaten des Objekts erkennen und dem Arm sagen: Bewege dich dorthin. Dann hat man einen Ist-Soll-Abgleich.
Boah, ich bin noch voll fertig von der Pearl Homepage....
Stephan schrieb: > Also brauchen wir Rückmeldungen der Motoren über die Drehzahl um diese > zu regeln und der Arme um die Position festzustellen. Falscher Denkansatz. Du willst nicht die Drehzahl des Motors regeln, sondern die Armposition. Also sollte natürlich auch die Armposition erfasst werden und nicht die Motordrehzahl. Programmmäßig kann mans dann so umsetzen, dass der Motor fährt, bis die gewünschte Armposition erreicht ist. Dafür lassen sich am besten Potis in die Drehgelenke einbauen, dann hast du Absolutinformationen über die Position. :-)
oder halt wie schon oben geschrieben, Schrittmotore einsetzen und die lange genung in die mech. Endlage fahren bis diese sicher angefahren wurde und von dort die Schritte zählen. Dann braucht man keine zusätzliche Mechanik an den Arm bauen. Da dieser recht klein ist, wird das schon schwierig. Z.B. eine geeignete Einbauposition für das Poti am Zangengreifer zu finden. Des Weiteren müssen dann Analogwerte verarbeitet werden, birgt für einen Anfänger auch einige Probleme da einen verläßlichen Wert heraus zu bekommen. Axel
> Die Bildverarbeitung müsste in diesem Fall nur noch die xy-Koordinaten > des Objekts erkennen und dem Arm sagen: Bewege dich dorthin. Du denkst falsch! Halte doch einfach mal ein Auge zu und versuch dann etwas kompliziertes mit deinen Haenden zu machen. Geht das? Doch eher schlecht oder? Und dabei spielt dein Gehirn unfaehr. Es weiss naemlich wie gross die Dinge sind die du siehst weil du sie kennst. Dein Computer ist nicht so schlau. Vergiss die Kamera! > Dann könnte ich mir vorstellen, die Drehzahl über einen Hallsensor > aufzunehmen, wobei ich mir da noch anschauen müsste wo ich diesen > unterbringe und was die Sensoren triggert. (Zähnräder sind aus > Kunststoff) Ob du Hallsensoren oder Lichtschranken verwendest ist erstmal egal. Oder besser gesagt es haengt von deinen mechanischen Moeglichkeiten und Platzverhaeltnissen ab. Als erstes ueberlege dir mal welche Wiederholgenauigkeit benoetigt dein Arm. Reichen 5mm? 1mm? 0.1? Es bringt aber nichts mehr zu verlangen als deine Mechanik kann. Wenn du das festgelegt hast dann rechnest du mal zurueck wievel Grad das an einem Gelenk sind, wieviele Unterteilungen du am Ausgang oder Eingang eines Getriebes brauchst. Danach kannst du dir Gedanken machen wo und wie du einen Encoder anbringen kannst. Dann noch etwas grundsaetzliches. Eigentlich koennte dir die Drehzahl egal sein, du willst letztlich nur die Position regeln. Trotzdem ist es aber eine gute Idee die Drehzahl auch zu regeln weil man so den Regler einfacher hinbekommt. Ausserdem kannst du so sicherstellen das die Maximalgeschwindigkeit am Encoder unter deiner Abtastfrequenz bleibt. Und es ist doch auch schoen wenn man die Geschwindigkeit einstellen kann. Die Aufnahme der Position ist total einfach. Deutlich schwieriger ist es sie zu regeln. Das nur mal als Anmerkung. .-) Eine andere Moeglichkeit waere es Potis anzubringen. Die koenntest du dann mit einem AD-Wandler auslesen und genauso regeln. Einfaecher waere es vermutlich einen analogen Regler mit Potis aufzubauen. Also so wie in Servos. Vielleicht kann man sogar die Elektronik eines Servos ausschlachten und an den Motor klemmen. Die Genauigkeit davon wird zwar nicht so hoch sein wie bei der Encoderloesung, aber vermutlich einem Pollinprodukt angemessen. Die Schrittmotorloesung ist von der Ansteuerung her am einfachsten. Dafuer von der Mechanik am schwierigsten. Es haengt dann halt sehr davon ab was du fuer Motore bekommst und wie sie ans Getriebe passen. Olaf
5 Zahnräder (für die Poti-Achsen), 5 Potis (5-10kOhm), 5 Haltewinkel für die Potis, 10 Schrauben und 5 mal Servoelektronik (selber bauen oder kaufen), etwas feilen und bohren - fertig ist die mechanische Seite der Steuerung. Blackbird
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.