mikrocontroller.net

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


Autor: Dennis Hotop (gimmelgrumm)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hp M. (nachtmix)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Axel R. (axelr) Flattr this
Datum:
Angehängte Dateien:

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

StromTuner

StromTuner

: Bearbeitet durch User
Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht 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??

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Axel R. schrieb:
> BEDIEN Knöppe?
https://www.conrad.de/de/velleman-roboterarm-bausa...

So verstehe ich es zumindest. So primitiv habe ich vor 40 Jahren einen 
Kran gebaut. Aber der hatte immerhin Kreuzknüppel :-)

Autor: Dennis Hotop (gimmelgrumm)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann schau dir eine der üblichen Relaiskarten für den Arduino an:
Ebay-Artikel Nr. 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.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht 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
PinMode(13,OUTPUT); // an Pin 13 ist auch eine LED
DigitalWrite(13,HIGH);
ein Relais anziehen lassen und damit den Schalter schliessen. Um den 
Schalter wieder auszuschalten benutzt man
DigitalWrite(13,LOW);
Siehe
https://www.arduino.cc/en/Reference/DigitalWrite

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.