Projekt: mechanische Hand, verbindung zweier Arduino UNO's?!

Hallo liebe Community,

am besten schildere ich erstmal mein Problem…
Ich besitze zwei Arduino UNOs [R3].
Für den Bau einer mechanischen Hand als Schulprojekt, benutze ich fünf Servomotoren, die
die Finger ansteuern.
Ich benutze ebenfalls fünf Potentiometer, die ein manuelles Ansteuern der Finger ermöglichen,
sowie einen Näherungssensor, der die Finger beim annäheren eines Gegenstandes automatisch schließen lässt.
Ein Schalter soll es mir ermöglichen, zwischen der manuellen und der automatischen Fingeransteuerung zu wechseln.

Nun zum Problem:
Um die fünf Potentionmeter, sowie die fünf Servos mit genügend Strom zu versorgen, benötige ich
den Strom meines zweiten Arduinos.
Ich dachte nun daran die zwei Arduino UNOs miteinander zu verbinden, sodass nicht nur die 5V externe Stromversorgung nutzbar ist, sondern auch eine Kommunikation beider Arduinos möglich ist.
Theoretisch wäre es möglich nur die externe Stromversorgung des einen Arduinos zu nutzen, da die freien Slots auf einem Arduino ausreichen würden, doch um Bonuspunkte abzustauben :smiley: wäre eine Kommunikation beider Arduinos erforderlich,
die beide Arduinos miteinander verbindet, und ca. die Hälfte der Potentiometer und die Hälfte der Servos auf den einen Arduino gesteckt wird, und die andere Hälfte der Poti und Servos auf den anderen Arduino.
Nun möchte ich wissen, wie eine solche Ansteuerung mittels Steckverbindung möglich ist?, (insofern es überhaupt möglich ist)
und die Programmierung und Einstellung, die dafür nötig sind, um beide Arduinos über einen Sketch laufen zu lassen.

Danke schonmal im voraus. :slight_smile:

hi,

am schönsten wäre es, einer der unos als "eingabegerät", also master zu nutzen, der dem anderen (slave) befiehlt, was er mit den fingern machen soll. die verbindung bei geräten, die nahe beieinander sind, ist meist per I²C realisiert. dazu gibt es beim arduino eine schöne library mit beispielen für master und slave. findest Du unter datei > beispiele > communication > wire. schau in den playground unter wire oder I²C, dort findest Du erklärungen und wie es verbunden wird.

gruß stefan

PS.: aber vergiß nicht, was Wolowitz passiert ist. VORSICHT !

könntest du von dem projekt mal bilder machen? klingt sehr interessant.

Also du könntest das mit i2c machen oder Sofern du die entfernter hast auch mit Seriell

Lyamdris:
Nun zum Problem:
Um die fünf Potentionmeter, sowie die fünf Servos mit genügend Strom zu versorgen, benötige ich
den Strom meines zweiten Arduinos.
Ich dachte nun daran die zwei Arduino UNOs miteinander zu verbinden, sodass nicht nur die 5V externe Stromversorgung nutzbar ist, sondern auch eine Kommunikation beider Arduinos möglich ist.
Theoretisch wäre es möglich nur die externe Stromversorgung des einen Arduinos zu nutzen, da die freien Slots auf einem Arduino ausreichen würden, doch um Bonuspunkte abzustauben :smiley: wäre eine Kommunikation beider Arduinos erforderlich,
die beide Arduinos miteinander verbindet, und ca. die Hälfte der Potentiometer und die Hälfte der Servos auf den einen Arduino gesteckt wird, und die andere Hälfte der Poti und Servos auf den anderen Arduino.

:roll_eyes:
Die wollst die beiden Spannungsregler der Arduinos zusammenlegen damit ausreichen Strom zur Verfügung steht? Das ist nichts. Genauso wie du die Servos nicht über die Arduinos treiben solltest.

Lyamdris:
Nun möchte ich wissen, wie eine solche Ansteuerung mittels Steckverbindung möglich ist?, (insofern es überhaupt möglich ist)
und die Programmierung und Einstellung, die dafür nötig sind, um beide Arduinos über einen Sketch laufen zu lassen.

Selberschreiben tust du aber deinen Sketch, oder? Wenn man Bonuspunkte, bzw. generell Punkte haben möchte, muss man schon einiges an Eigeninititive kommen. Das Netz ist voll mit Tutorials.

Wie ich das Projekt verwirklichen würde, damit es auch enstprechend vorzeigbar ist.

Arduino Master, sendet wie der andere Stefan bereits sagte, die Signale. Hier werden die Potis angeschlossen. Eine Frage stellt sich, welche Arduinos kommen zu Einsatz? Mit dem Uno würde die I2C (Analog Input 4 und 5) wegfallen, da diese für 2 Potis benötigt werden. Wenn ihr einen USB Serial Adapter und/oder ein ISR Programmer habt, würde ich euch zu 2 Arduino Pro Mini 5V/328P raten. Kostest original pro Stück <10€. Auf denen befinden sich 7 anstatt 5 verausgeführte Pins, die zur Verarbeitung von Analogen Signalen dienen. Hier kann dann A4/A5 problemlos für I2C genommen werden. Solange ihr kein Kabel durch einen Klassenraum legen wollt, sonder auf wenige Meter konzentriert, reicht I2C aus.
Die Arduinos kannst du zusammenbestromen, würde aber selber eher aufteilen. Wenn ihr aufteilt, müsst ihr zum Arduino Slave nur eine 3 polige Leitung rüberlegen (SDA, SCL, GND). Ansonsten wären es 4. Jedoch sollten das zusammenlegen von Kommunikation und Stromversorgungsleitung vermieden werden.

So weiter.

Der Arduino Slave, welcher sich an der Hand befindet, wird nun mit den Servos und dem Sensor ausgestattet. Wenn ihr nur ein Netzgerät am Slave verwenden wollt, dann macht eine Stromschiene für 5V. Auf die legt ihr das Netzgerät auf. Von da legt ihr eine Leitung zum Arduino (5V +GND) und zu jedem Sensor (5V + GND). Zum Arduino kommt somit von den Servos je nur noch eine Litze. Achtung, wenn ihr programmiert, bzw. USB Anschließt, sollte das Netzgerät aus sein.

Alternative Lösung. 7-12V Netz an den PowerJack vom Arduino. Jedoch müsst ihr dass mit einem Y-Kabel/Stecker machen. Denn die Servos brauchen eine eigene Versorgung, die nicht von den 5V des Arduino kommt. Hier kommt dann ein StepDown Wandler zum Einsatz, der auf 5V geregelt wird.

Gruß Stefan

Wenn man nicht gleichzeitig am PC hängen muss, ist wie schon gesagt auch eine serielle Verbindung über TX und RX möglich.

Schon richtig ;) Ob Rx/Tx oder I2C, das Programm ändert sich dadurch nur bedingt im Arduino. Wenn aber noch keine Hardware gekauft wurde, wäre aber vorab bereits Engpässe zu vermeiden.

Hallo,
danke für die schnellen Antworten,
ich nutze eine RX-TX Verbindung (siehe Anhang_1),
und habe als Beispiel erstmal die Werteübergabe vom Poti zum Servo getestet.
Nun habe ich aber folgendes Problem mit dem Programmteil (siehe Anhang_2 und Anhang_3)
Wisst ihr, was ich dagegen machen kann?
Liegt das Problem am Programm?

Anhang_1.jpg

Hast du dabei die Verbindung zwischen den Controllern getrennt? Der USB Anschluss hängt auch an TX/RX! Das kommt sich in die Quere wenn man gleichzeitig am PC und einem anderen Gerät hängt.

Wenn du I²C als Schnittstelle benutzt, sind das die Pins A4 und A5, nicht RX/TX! Sonst gilt immer: Wenn du neuen Code drauflädst, die Verbindungen an Pins 0 und 1 (RX/TX) trennen, sonst kann es zu Konflikten kommen.

Außerdem: Du musst natürlich auf dem Slave-Arduino die Servo-Lib hinzufügen und mit Servo.write() statt digitalWrite() arbeiten, sonst klappt das nicht ;)