PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Motor für Fingerbewegung?



Unregistriert
04.06.2013, 09:23
Hallo Zusammen,

ich bin ein Doktorand der Neuropsychologe und habe eine vermutlich eher unkonventionelle Frage, hoffe aber dennoch dass ihr mir eventuell helfen könnt. Von Motoren und deren Ansteuerung über den PC verstehe ich leider rein gar nichts.

Für ein Forschungsprojekt würden wir gerne eine möglichst realistische Hand basteln, bei der sich der Zeigefinger - möglichst zeitnah, ohne größere Latenzen - durch einen kleinen Motor hoch und runter bewegen lässt (so, dass damit bspw. eine Maustaste runter gedrückt werden kann). Was die Bewegungsausführung anbelangt, haben wir uns überlegt, dass dies bspw. wie in folgender Grafik illustriert, geschehen könnte: http://www.rehab.research.va.gov/jour/98/35/4/doshif01.gif --> Der Motor müsste sich also (schrittgenau) in eine Bewegung drehen können (Ziehen an der kleinen Schnur/Fingerkontraktion) und danach mit gleicher Schrittweite in die andere Richtung zurückdrehen (Relaxation) können. Und am besten müsste dieser Motor auch noch über ein Notebook (im Idealfall über Matlab) bedient werden können.

Kurzum, meine Frage lautet: Haltet ihr es für möglich so etwas zu konstruieren und falls ja, wie kompliziert wäre die Implementierung? Und was würde ein solcher Motor (bzw. eine solche Konstruktion) kosten?

Über eure Hilfe würde ich mich wirklich sehr freuen.

ranke
04.06.2013, 09:42
Dafür sollte sich ein Modellbau-Servo eignen. Eine Ansteuerung vom PC habe ich selbst noch nicht gemacht, dürfte aber schon vielfach durchgeführt worden sein (siehe z.B.: https://www.roboternetz.de/community/threads/47924-Servos-mit-PC-steuern ) oder google.

Unregistriert
04.06.2013, 10:14
Vielen Dank für Deine schnelle Antwort. Könntest Du oder Jemand vielleicht kurz erläutern, was das genau heißt (welche Bauteile bräuchte ich im Konkreten und wo kriege ich diese?)? Ich verstehe von Motoren und deren Ansteuerung leider recht wenig.

malthy
04.06.2013, 10:57
Hallo!

Wenn man wirklich mit Null Hintergrund anfängt, ist es euer Projekt vermutlich gar nicht mal so trivial. Das Fingerkonzept, wie du es in dem Bild zeigst, ist ja schonmal ganz gut, allerdings auch nicht sehr flexibel. Mit der Konstruktion kannst du den Finger krümmen, irgendwie muss man sich noch um das öffnen kümmern. Wenn das Material selbst etwas "federt" mag eine gewisse Rückstellkraft aus der Struktur selbst resultieren, ansonsten muss man einen zweiten Zug einbauen oder eine Feder. Ich habe irgendwann mal auf die Schnelle so einen Finger mit Plaast (http://www.plaast.de/index.php) gemacht. Das ist ein Kunststoff, der sich bei niedrigen Temperaturen (~60°) modellieren lässt. Im Prinzip wirft man das Granulat in hießes Wasser und kann dann mehr oder weniger beliebige Formen modellieren. Ob das letztlich das Material der Wahl für euch ist weiß ich natürlich auch nicht, zumindest kann man damit mal auf die Schnelle das Konzept umsetzen.

Ich denke, dass der Vorschlag mit dem Servo vernünftig ist. Du kannst dich dazu grob mal hier (http://www.rn-wissen.de/index.php/Servos) informieren. So ein Spielzeug-Servo benötigt ein bestimmtes Signal um ihm die gewünschte Stellung mitzuteilen. Man kann dieses Signal recht einfach mit einem Mikrocontroller erzeugen. Den kann man nun seinerseits wieder recht einfach über eine serielle Schnittstelle an einen PC anschließen. Wenn der entsprechende Laptop nicht über eine solche verfügt, kann man einen seriell-zu-USB Adapter verwenden. Die serielle Schnittstelle ist sehr einfach in Matlab zu verwenden. Sieh dir dazu einfach mal in der Matlab-Doku den Befehl "serial (http://www.mathworks.de/de/help/matlab/ref/serial.html)" an. Aber vorsicht: wirklich genaues Timing ist auf diese Weise nicht zu erreichen. Du solltest im Mittel mit 20 ms Streuung deiner Kommunikation rechnen (soll heißen: der Mikrocontroller sendet präzise mit einem Intervall von zB 100 ms, dann streut das Intervall zwischen den empfangenen Daten um mindestens 20 ms).

Vielleicht ist der Arduino auch etwas für so ein Projekt, damit kenne ich mich aber nicht aus. Das ist ein Stichwort unter dem du ggf auch nochmal suchen kannst. Das Arduino-Konzept ist insbesondere für Einsteiger gedacht.

Das war das was mir mal auf die Schnelle durch den Kopf ging, es gibt sicherlich noch vieles zu ergänzen :-)

Viele Grüße
Malte

P.S.: melde dich doch ruhig hier an, das "unregistriert, Gast" sieht doch etwas blöd aus ;-)

brainybrown
04.06.2013, 14:03
@ Malte: Vielen Dank für Deine ausführliche Antwort für einen Laien.
Also wenn ich das jetzt richtig verstehe, brauche ich, neben der eigentlichen Hand und einigen Kleinteilen, im Wesentlichen drei Bauteile:
- einen Modellbau-Servo Motor
- einen Mikrocontroller
- einen seriell-zu-USB Adapter
Richtig?

Konkret hierzu hätte ich noch folgende Fragen:
- Ich habe in der Tat ein Notebook ohne serielle Schnittstelle. Wenn ich den Mikrocontrollern also nicht direkt an eine serielle Schnittstelle anschließe, sondern so - wie Du sagst - über einen seriell-zu-USB Adapter, wird Matlab denn dann den "künstlich" erzeugten serial port mit serial Befehl überhaupt finden können? --> Falls ja, würde folgender Adapter vermutlich diesen Dienst tun?: http://www.amazon.de/computer-zubeh%C3%B6r/dp/B0030IT780 oder würde(s)t Du/ihr eher zu einem anderen Adapter raten?
- Bei Conrad habe ich jetzt 350 Modellbau-Servo Motoren gefunden (http://www.conrad.de/ce/de/overview/1207063/Modellbau-Servos), und hinsichtlich Mikrocontrollern wusste ich leider nicht ganz genau, in welcher Rubrik ich da genau nachschauen muss(?). Wie finde ich heraus, welcher Modellbau-Servo Motor mit welchem Mikrocontroller kompatibel ist? Gibt es da bestimmte Produktmerkmale auf die ich achten muss? Oder hättest Du/Ihr ggf. konkrete Kaufempfehlungen für einen passenden Motor und einen dazu passen Mikrocontroller, die für meinen Zweck geeignet sein sollten?
Über Deine/eure weitere Hilfe wäre ich euch echt super dankbar.

PS: eine Latenzvariabilität von 20ms wäre durchaus verschmerzbar ;-) das wäre kein Problem... da hatte ich schlimmeres erwartet..
PPS: Die Rückstellkraft würde ich irgendwie durch das Material oder eben durch Federn realsieren.

MisterMou
04.06.2013, 14:30
Es geht auch "ohne" µC ;)
http://www.pololu.com/catalog/product/1350
Einfach an den USB Port, dazu noch ein kleines Netzteil mit 6V und das war`s schon. Die Software gibt´s im Netz oder liegt bei, ist quasi einsteigertauglich ;)

Servos kannst du alles nehmen, was du findest. Alle werden gleich angesteuert, nur die Spannung kann sich unterscheiden (4,8V 6V 7,4V). Das wird über das Netzteil eingestellt oder passend gekauft.

DanielSan
04.06.2013, 14:41
Als Mikrocontroller würde ich euch einen der Arduinos empfehlen. Da ist die Hardware schon fertig ihr müsst keine Platine mehr entwickeln etc. auf vielen ist auch schon ein USB-RS232 konverter integriert. Beispielsweise auf dem Arduino Nano preislich absolut in Ordnung. Das günstiger selbst hinzubekommen dürfte schwer werden.

brainybrown
04.06.2013, 15:36
Okay danke. So wie ich das eben gelesen habe, lassen sich die Arduino Mikrocontroller teilweise auch über Matlab ansteuern (http://www.mathworks.de/hardware-support/arduino-matlab.html) was für meine Zwecke natürlich super wäre - zumal dieses Arduino System eher für Einsteiger zu sein scheint. Allerdings steht bei den Matlab kompatiblen Geräten nur etwas von Arduino Uno, Mega 2560, oder Duemilanove, aber nichts von Nano?! Würde denn der Arduino Uno bspw. meinen Zweck auch erfüllen?

MisterMou
04.06.2013, 15:46
Ich hab das Gefühl, du willst das Rad neu erfinden, oder?
Das Pololu Bord hat intern eine normale serielle Schnittelle, dass sollte doch gelacht sein mit Matlab.

DanielSan
04.06.2013, 15:48
Der Uno wäre absolut Oversized! Das sind aber glaube ich alle Arduinos. ;-) Das schöne ist eben, das die Programmierung relativ simpel ist und der Preis für das was man bekommt sehr nidrieg ist. Die Software die auf dem Uno usw. läuft um ihn mit Matlab anzusprechen, sollte auf den Nano Portierbar sein. Ich würde da allerdings selbst was entwickeln weil in deinem Link "Run control loops at up to 25 Hz (not real time)." angegeben ist. Wenn du da selbst was programmierst wirst du deutlich schneller sein. Vorallem denke ich das es einfacher für dich ist eine eigene Anwendung zu schreiben als eine zu portieren. Die kann nämlich tausend sachen die du nicht benötigst.

Du kannst einem Servo alle 20ms eine neue Position übergeben. Das gilt für standard Servos. Es gibt auch schnellere die kosten dann natürlich auch mehr. ;-)

EDIT: Hab mir gerade mal das Pololuboard angesehen... nimm das! Einfacher und günstiger wirst du wohl nicht zum Ziel kommen.

brainybrown
04.06.2013, 16:39
Okay. Also dann würde ich den Pololu nehmen, plus 6v Netzteil (für den Servo oder für den Pololu?). Fehlt jetzt nur noch ein entsprechender Servo. Hättet Ihr diesbezüglich auch irgendeine Idee?: http://www.conrad.de/ce/de/overview/1207063/Modellbau-Servos ?

Sorry für die vielen blöden Fragen, aber irgendwie muss man ja anfangen.

MisterMou
04.06.2013, 16:45
EDIT: Hab mir gerade mal das Pololuboard angesehen... nimm das! Einfacher und günstiger wirst du wohl nicht zum Ziel kommen.

Sag ich doch :D

Das Netzteil ist für den Servo.
Die Spannung muss zum Servo passen. Und der Strom mindestens dem Blockierstom des Servos entsprechen, das können bis zu 4A oder mehr sein, je nach Größe.
Der Rest hängt von den mechanischen Anforderungen ab.

DanielSan
04.06.2013, 16:54
@MisterMou: ;-)

Ja zur Servo auswahl benötigen wir noch mehr Infos. Wie groß ist der Finger welche Kräfte sind zu erwarten usw. hast du das mal berechnet? Oder irgendwie getestet?
Die Modellcraft Servos kann ich nicht empfehlen. Habe schlechte Erfahrungen was Langlebigkeit, Präzision und Empfindlichkeit angeht gemacht. Da das ein Projekt von ner Hochschule ist würde ich schon zu einem Servo von Hitec, Robbe, Graupner (heissen die noch so? -> insolvent etc.) oder anderen MARKEN greifen.
Beispielsweise
http://www.conrad.de/ce/de/product/209899/Hitec-Standard-Servo-HS-645MG-Doppelt-kugelgelagert-Getriebe-Metall-JR;jsessionid=929D2FBBA1C69B80268A444F64BF1A57.AST PCEN04
das ist doppelt kugelgelagert usw.
Guck auch mal bei anderen anbietern wie dem Himmlischen Höllein oder Hobbyfly oder ähnlich dort sind die Artikel oft günstiger.

brainybrown
04.06.2013, 18:46
Nunja, richtig ausgerechnet habe ich es bisher noch nicht. Aber im Prinzip soll es so sein, dass der Servo genügend Kraft haben sollte, eine herkömmliche Computertaste (50-70 Gramm) runterzudrücken plus den Finger selbst (9-10 cm) selbst zu biegen. Die zwei Fingergelenke wollte ich vermutlich durch sehr leichte Federn realisieren. --> Also vielleicht müssten insgesamt so max. 150 Gramm gezogen werden?
Ob der Motor jetzt 20€ oder 40€ kostet, ist nicht so entscheidend.

ranke
04.06.2013, 20:36
Um eine Computertaste zu drücken genügt auch der 5 Euro Servo.

malthy
04.06.2013, 20:51
Um eine Computertaste zu drücken genügt auch der 5 Euro Servo.

Das wollte ich auch die ganze Zeit schon fragen: Warum eigentlich so ein Aufwand um eine Taste zu drücken? Das kann man technisch sicherlich einfacher lösen als mit dieser Fingerkonstruktion. Schon klar dass es dir/euch offenbar wichtig ist, ich bin nur neugierig warum... :-)

brainybrown
04.06.2013, 21:43
Runtergebrochen, würde ich gerne ein paar Studien zur Rubber Hand Illusion machen:
http://www.focus.de/wissen/natur/wahrnehmung_aid_117715.html
http://www.youtube.com/watch?v=sxwn1w7MJvk
(wer auch an wissenschaftlichen Artikeln zu diesem Thema interessiert ist, möge mir scheiben).

Allerdings unter Bedingungen, wo der Pbd nicht nur somatosensorisch stimuliert wird, sondern auch aktiv einen Finger bewegt... Die Forschungsfrage ist dabei, ob man nicht nur ein Gefühl der Meinigkeit über die Gummihand bekommen kann ("dies ist meine Hand"), wie bisher gezeigt, sondern auch ein Gefühl der Autorschaft über Bewegungen der Gummihand bekommen kann ("Ich bin es, der diesen Finger bewegt").

malthy
04.06.2013, 23:33
[...] sondern auch aktiv einen Finger bewegt

Das wäre das "Training". Und später wird der Finger dann automatisch bewegt und die "Empfindung" dabei beobachtet. Am besten mit einem EEG überm Somatosensorischen Cortex. fMRI geht hier wohl nicht. Das wäre doch mal ne Story, wenn sich da was tut - wenn ...

Klingt doch ganz cool https://www.roboternetz.de/phpBB2/images/smiles/icon_biggrin.gif

ranke
05.06.2013, 06:51
... ein paar Studien zur Rubber Hand Illusion ...

Die Servos sind zwar nicht laut, aber auch nicht vollständig geräuschlos. Ich könnte mir vorstellen dass das mechanische Summen beim Verfahren des Servoantriebs die Illusion beeinflußt.
Zur mechanischen Konstruktion vielleicht auch noch eine Anmerkung: baut die Sache mechanisch nicht zu steif. Wenn das Servo einen harten Anschlag überfahren will werden die Kräfte so hoch, dass das Getriebe nicht lang lebt. Etwas Elastizität (z.B. Zug aus Gummischnur) entschärft das Ganze. Viel Erfolg!

oberallgeier
05.06.2013, 07:57
... Wenn das Servo einen harten Anschlag überfahren will werden die Kräfte so hoch ...Da bietet sich ein Stromsensor in der Servoversorgung an, der würdekönnte "Gefühl" in die Sache bringen. Ich habe ja in der letzten Zeit Ströme gemessen in Relation zur Servobelastung, das ist sehr aussagekräftig. Und mic hatte da auch mal etwas gezaubert.

Mir schwebt schon lange vor, leider etwas unten auf meiner to-do-Liste, eine Hand, Mikrotaster unter der Gummikuppe der Fingerspitzen, und WENN der Taster an ist und DAZU der Strom hoch geht, dann weiß ich ungefähr was los ist.

i_make_it
05.06.2013, 08:39
1234567890