Forum: Mikrocontroller und Digitale Elektronik Erweiterung eines Model-Roboterarmes durch eine Multiplexer/Demultiplexer Platine


von Dennis H. (gimmelgrumm)


Lesenswert?

Hallo,
ich bin neu hier im Forum und hoffe hier finden sich nette Leute, die 
mir weiterhelfen können. =)

Ich habe ein Model eines Roboterarmes (Velleman Roboterarm ksr10), der 
durch ein Arduino Board (Arduino Mega2560 Microcontroller ATmega2560 
Board) angesteuert wird und ein festes Programm abläuft. Der Roboterarm 
hat vier Motoren und einen Greifer, deren Kontakte über SUB-D Stecker 
auf das Arduino Board gehen.

Ich möchte nun aber mit dem Arduino jeden der vier Motoren und den 
Greifer in beide Drehrichtungen der Motoren einzeln ansteuern können und 
so jeden Motor in eine beliebige Position fahren. Die Software ist schon 
vorhanden.

Ich habe nun das Problem, dass ich auf dem Arduino nicht genügend Ports 
für alle Drehrichtungen zur verfügung habe. Nun hatte ich mir gedacht, 
dass ich zwischen Arduino und Roboterarm eine Platine stecke, auf der 
Multiplexer und Demultiplexer gelötet sind um die I/O's zu minimieren. 
Leider kenne ich mich mit Multiplexern nicht so gut aus und weiß nicht 
welche Multiplexer ich dafür benutzen kann und wie ich den auf der 
Platine mit Spannung, Masse und natürlich den Ports beschalten muss.

Anschließen würde ich die Platine ebenfalls mit SUB-D Steckern und einen 
Ausgang mit 5V Spannungsversorgung habe ich auch zu verfügung.

Ich hoffe es findet sich Jemand nettes, der mir vielleicht weiterhelfen 
kann. =)

Beste Grüße,
Gimmelgrumm

von Hp M. (nachtmix)


Lesenswert?

Dennis H. schrieb:
> Ich möchte nun aber mit dem Arduino jeden der vier Motoren und den
> Greifer in beide Drehrichtungen der Motoren einzeln ansteuern können und
> so jeden Motor in eine beliebige Position fahren.

Das wird nicht ganz einfach.
Ich habe mir kurz das Datenblatt angesehen und gefunden, dass da nichts 
ausser den Motoren und einer LED vorhanden ist, und diese Teile überdies 
alle einen gemeinsamen Rückleiter benutzen.
Das bedeutet, dass du die Motoren je nach gewünschter Drehrichtung mit 
positiven und negativen Spannungen antreiben musst.
Das bedeutet, abseits der mit dem Multiplexen verbundenen Probleme, 
einigen Aufwand bei der Stromversorgung, und dass du entsprechende 
Endstufen benötigst.

Am schlimmsten aber ist es, dass weder Potis noch Endschalter zur 
Lageerkennung vorhanden zu sein scheinen.
Wie soll ein Programm erkennen, was es tun muss um eine bestimmte 
Position zu erreichen, wenn es die aktuelle Position nicht kennt?
Anstelle "jeden Motor in eine beliebige Position fahren" müsste da 
stehen "in eine undefinierte Position".

Dennis H. schrieb:
> Die Software ist schon
> vorhanden.

Was soll das sein?
Wenn die Software nicht mehr leistet,  als die händisch zu betätigenden 
Taster, kannst du sie auch vergessen.

Nach meiner Einschätzung ist das Teil ein Spielzeug und für einen 
programmgesteuerten Einsatz völlig ungeeignet.

: Bearbeitet durch User
von Axel R. (Gast)


Angehängte Dateien:

Lesenswert?

Ich will jetzt nich schon wieder meckern, aber die Endlagenschalter 
werden in der Anleitung erwähnt. Sind sicher auch vorhanden, oder?

StromTuner

StromTuner

von H.Joachim S. (crazyhorse)


Lesenswert?

Hm, alle Motoren können in beide Richtungen fahren. Macht ja auch keinen 
Sinn, wenn nur eine Drehrichtung möglich wäre...

Was genau willst du eigentlich erreichen? Geschwindigkeitssteuerung? 
Positionssteuerung? Ich habs nicht verstanden. Und wie kann eine 
Software fertig sein für eine noch nicht mal in der Planung befindliche 
Hardware?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Der TE hat ja anscheinend schon einige Funktionen auf den Arduino 
gelegt, ob das mit einer Relaisplatine gelöst wurde oder mit was auch 
sonst, wissen wir aber nicht.
Es wäre also hilfreich, wenn man über das derzeitige Setup etwas mehr 
erfährt.

von H.Joachim S. (crazyhorse)


Lesenswert?

Ach jetzt verstehe ich bisschen was.
Die Schaltung von Axel oben ist eigentlich das gesamte Original, 
gesteuert mit 5 Handumschaltern mit Mittelstellung.

Aber der 2560 hat doch Ports fast ohne Ende??

von Axel R. (Gast)


Lesenswert?

H.Joachim S. schrieb:
> Ach jetzt verstehe ich bisschen was.
> Die Schaltung von Axel oben ist eigentlich das gesamte Original,
> gesteuert mit 5 Handumschaltern mit Mittelstellung.
>
> Aber der 2560 hat doch Ports fast ohne Ende??

Das sind gar keine Endlagenschalter, sondern BEDIEN Knöppe?
Ja - issesdenn - stimmt...


StromTuner

von H.Joachim S. (crazyhorse)


Lesenswert?


von Dennis H. (gimmelgrumm)


Lesenswert?

Hallo,
Danke schon Mal an die ganzen Beiträge.

So, nochmal zum Roboterarm:
Ich kann bereits jeden Motor einzeln ansteuern. Alle Drehrichtungen 
liegen schon auf jeweils einem Pin eines subd Steckers. Ich habe also 
jede Drehrichtung jedes Motors auf einem Pin, insgesamt also 9 Pins, 
also einen 9poligen subd Stecker. Mit einem kleinen Draht kann ich die 
Spannung auf den jeweiligen Eingang legen und dann dreht der jeweilige 
Motor bis die Endlage kommt oder ich den Draht wegnehme, dann bleibt der 
Arm in der Position bis ich wieder einen Motor ansteuere oder den 
Schalter für die Grundstellung betätige. Ich will das jetzt aber über 
Software Schalter auf dem Arduino steuern ohne einen Draht zu benutzen. 
Da der Arduino noch anderes steuern soll, will ich dafür nicht zu viele 
Ports benutzen.
Ich hoffe mein Anliegen ist dadurch klarer geworden.

Beste Grüße und vielen Dank!

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Dann schau dir eine der üblichen Relaiskarten für den Arduino an:
http://www.ebay.de/itm/8-Channel-Kanal-5V-Relais-Relay-Module-Modul-fur-Arduino-DSP-AVR-PIC-ARM-DE-Ship-/320912667367

Davon gibt es dutzende. Das mit den 230V Schaltspannung darf man nicht 
ernst nehmen, aber das brauchst du ja auch nicht. Eine solche Karte kann 
schon mal 4 Motoren in beide Richtungen drehen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Da ich keine Lust habe, die Diskussion per PN fortzusetzen und damit 
andere auszuschliessen:
So eine Relaiskarte wird vom Arduino gesteuert und hat dann 8 
(Um-)schalter, die die bisherigen Taster ersetzen. Somit kann der 
Arduino dann z.B. mit einem
1
PinMode(13,OUTPUT); // an Pin 13 ist auch eine LED
2
DigitalWrite(13,HIGH);
ein Relais anziehen lassen und damit den Schalter schliessen. Um den 
Schalter wieder auszuschalten benutzt man
1
DigitalWrite(13,LOW);
Siehe
https://www.arduino.cc/en/Reference/DigitalWrite

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.