Inhaltsverzeichnis:

RoboGlove - Gunook
RoboGlove - Gunook

Video: RoboGlove - Gunook

Video: RoboGlove - Gunook
Video: Syrebo™ soft hand rehabilitation robotic gloves for stroke patients 2024, Juli
Anonim
RoboGlove
RoboGlove

Wir sind eine Gruppe von Studierenden der ULB, Université Libre de Bruxelles. Unser Projekt besteht in der Entwicklung eines Roboterhandschuhs, der eine Greifkraft erzeugen kann, um Menschen beim Greifen zu helfen.

DER HANDSCHUH

Der Handschuh hat eine Drahtverbindung, die die Finger mit einigen Servomotoren verbindet: Ein Draht ist am Ende des Fingers und am Servo befestigt, so dass beim Drehen des Servos der Draht gezogen und der Finger gebeugt wird. Auf diese Weise können wir durch die Kontrolle des Greifens durch den Benutzer durch einige Drucksensoren in den Extremitäten der Finger die Motoren kontrolliert ansteuern und das Greifen unterstützen, indem wir den Finger proportional zur Drehung der Motoren beugen und also zum Aufrollen der Drähte. Auf diese Weise sollten wir in der Lage sein, entweder schwachen Menschen das Greifen von Gegenständen zu ermöglichen oder auch Menschen unter physiologischen Bedingungen zu helfen, Gegenstände zu greifen und ohne Anstrengung zu halten.

DAS DESIGN

Das Modell wurde entwickelt, um die Handbewegung so frei wie möglich zu machen. Tatsächlich haben wir nur die unbedingt notwendigen Teile in 3D gedruckt, die wir brauchten, um Drähte, Motoren und Finger zu verbinden.

Wir haben auf jedem Finger eine obere Kuppel in PLA gedruckt: Dies ist der Anschlussteil, an dem die Drähte angeschlossen werden müssen und der den darin befestigten Drucksensor schützen muss. Der Drucksensor wird mit Heißkleber zwischen das PLA-Ende und den Handschuh geklebt.

Dann haben wir zwei 3D-gedruckte Ringe pro Finger, die eine Führung für die Drähte darstellen. Der Daumen ist der einzige Finger, der nur einen aufgedruckten Ring hat. Es gibt einen Draht pro Finger, der am Ende der Finger in zwei Hälften gefaltet ist. Die beiden Hälften gehen durch die beiden Führungen des Kuppelteils und in beide Ringe: Sie werden direkt in Löcher gesteckt, die wir in die Außenseite dieser Ringe gemacht haben. Dann werden sie zu einem Rad zusammengefügt, das direkt mit dem Motor verbunden ist. Das Rad wurde entwickelt, um die Drähte umwickeln zu können: Da unser Motor eine nicht vollständige Drehung (unter 180 °) hat, haben wir das Rad so realisiert, dass das Seil um eine Lücke von 6 Zentimetern gezogen wird, das ist der Abstand benötigt, um die Hand vollständig zu schließen.

Wir haben auch zwei Platten gedruckt, um die Servomotoren und das Arduino am Arm zu befestigen. Es sollte besser sein, es mit einem Laserschneider in Holz oder einen starren Kunststoff zu schneiden.

Schritt 1: Einkaufsliste

Einkaufsliste
Einkaufsliste
Einkaufsliste
Einkaufsliste
Einkaufsliste
Einkaufsliste

Handschuh und Drähte:

1 vorhandener Handschuh (muss nähbar sein)

Alte Jeans oder ein anderes festes Tuch

Nylondrähte

Polyethylenschlauch mit niedriger Dichte (Durchmesser: 4 mm Dicke: 1 mm)

Elektronik:

Arduino Uno

1 Batterie 9V + 9V Batteriehalter

1 elektronischer Schalter

1 Veroboard

3 Servomotoren (1 pro Finger)

3 Propeller (im Lieferumfang der Servos enthalten)

4 Batterien AA + 4 AA Batteriehalter

3 Drucksensoren (1 pro Finger)

3 Widerstände 330 Ohm (1 pro Finger)

6 Stromkabel (2 pro Sensoren)

Schrauben, Muttern und Befestigungen:

4 M3 10mm lang (zur Befestigung des Arduino)

2 M2.5 12mm lang (zur Befestigung des 9V Batteriehalters)

6 entsprechende Nüsse

6 M2 10mm lang (2 pro Servo zur Befestigung der Räder an den Servos)

12 kleine Kabelbinder (zur Befestigung der Platten und des Schalters)

7 große Kabelbinder (2 pro Motor und 1 für den 4 AA-Batteriehalter)

Gebrauchte Werkzeuge:

3D-Drucker (Ultimaker 2)

Material zum Nähen

Heißklebepistole

Optional: Laserschneider

Schritt 2: Bereiten Sie die tragbare Struktur vor

Bereiten Sie eine tragbare Struktur vor
Bereiten Sie eine tragbare Struktur vor

Die tragbare Struktur wurde mit einigen Kleidungsstücken hergestellt: In unserem Fall haben wir einen normalen Handschuh für Elektriker und ein Jeanstuch für die Struktur um das Handgelenk verwendet. Sie wurden zusammengenäht.

Das Ziel ist eine flexible tragbare Struktur.

Die Struktur muss stärker sein als ein normaler Wollhandschuh, da er vernäht werden muss.

Wir brauchen eine tragbare Struktur um das Handgelenk, um die Stromquellen und die Aktuatoren zu halten, und wir müssen sie stabil sein, also haben wir uns entschieden, den Verschluss durch Anbringen von Klettbändern (selbstklebenden Bändern) am Handgelenk der Jeans verstellbar zu machen.

Einige Holzstäbchen wurden innen genäht, um die Jeans steifer zu machen.

Schritt 3: Bereiten Sie die Funktionsteile vor

Bereiten Sie die Funktionsteile vor
Bereiten Sie die Funktionsteile vor

Die starren Teile werden durch 3D-Druck in PLA aus den.stl-Dateien in der Beschreibung realisiert:

Fingerring x5 (mit verschiedenen Skalen: 1x Skala 100%, 2x Skala 110%, 2x Skala 120 %);

Finger Extremität x3 (mit verschiedenen Skalen: 1x Skala 100%, 1x Skala 110%, 1x Skala 120 %);

Rad für Motor x3

Für die Fingerteile werden aufgrund der unterschiedlichen Größe jedes Fingers und jeder Phalanx unterschiedliche Skalen benötigt.

Schritt 4: Befestigen Sie die Sensoren an den Extremitäten

Befestigen Sie die Sensoren an den Extremitäten
Befestigen Sie die Sensoren an den Extremitäten

Die Drucksensoren werden zunächst an Kabeldrähte angelötet.

Anschließend werden sie mit einer Klebepistole in die Fingerextremitäten geklebt: eine kleine Menge Klebstoff wird in die Fingerspitze auf die Seite mit den beiden Löchern gegeben, dann wird der Sensor sofort mit dem aktiven (runden) Teil auf die Kleber (lassen Sie die piezoelektrische Seite der Innenseite der Struktur und das Kunststoffteil direkt auf dem Kleber). Die Kabeladern müssen über die Fingeroberseite bis zum Rücken verlaufen, damit die elektrische Verkabelung auf dem Handrücken verläuft.

Schritt 5: Befestigen Sie die 3D-gedruckten Teile am Handschuh

Befestigen Sie die 3D-gedruckten Teile am Handschuh
Befestigen Sie die 3D-gedruckten Teile am Handschuh

Alle starren Teile (Extremitäten, Ringe) müssen zur Fixierung mit dem Handschuh vernäht werden.

Um die Ringe richtig zu platzieren, tragen Sie zuerst den Handschuh und versuchen Sie, die Ringe anzuziehen, einen pro Phalanx, ohne dass sie sich beim Schließen der Hand berühren. Die Ringe am Zeigefinger werden ungefähr 5 mm über dem Fingeransatz und 17 bis 20 mm über dem ersten angebracht. Beim Mittelfinger liegt der erste Ring etwa 8 bis 10 mm über dem Fingeransatz und der zweite etwa 20 mm über dem ersten. Was den Daumen betrifft, ist die erforderliche Präzision sehr gering, da die Gefahr besteht, dass die anderen Ringe nicht beeinträchtigt werden. Versuchen Sie also, ihn auf den getragenen Handschuh aufzutragen, ziehen Sie eine Linie auf dem Handschuh, wo Sie ihn am liebsten haben möchten Ring, damit Sie ihn dann nähen können.

Bezüglich des Nähens ist keine besondere Technik oder Fähigkeit erforderlich. Mit einer Nadel läuft der Nähfaden im Kreis um die Ringe herum und läuft durch die Oberfläche des Handschuhs. Ein Schritt von 3-4 mm zwischen zwei Löchern im Handschuh sorgt bereits für eine ausreichend starke Fixierung, ein sehr dichtes Nähen ist nicht erforderlich.

Die gleiche Technik wird zum Fixieren der Extremitäten angewendet: Die Spitze der Extremität ist löchrig, damit die Nadel leicht passieren kann, sodass nur die kreuzförmigen Formen auf der Oberseite des Fingers an den Handschuh genäht werden müssen.

Dann müssen auch die Polyethylen-Führungen nach folgenden drei Kriterien befestigt werden:

das distale Ende (dem Finger zugewandt) muss in Richtung des Fingers zeigen, um starke Reibungen mit dem Nylondraht zu vermeiden, der in ihn hineingeführt wird;

das distale Ende muss weit genug sein, um das Schließen der Hand nicht zu beeinträchtigen (ca. 3 cm tiefer als der Fingeransatz sind ausreichend, 4 bis 5 cm für den Daumen);

die Schläuche müssen so wenig wie möglich übereinander verlaufen, um das Volumen des gesamten Handschuhs und die Beweglichkeit jedes Schlauchs zu reduzieren

Sie werden mit der gleichen Technik wie oben am Handschuh und am Handgelenk festgenäht.

Um die Gefahr des Durchrutschens durch das Nähen zu vermeiden, wurde zwischen den Schläuchen und den Handschuhen etwas Leim hinzugefügt.

Schritt 6: Bereiten Sie die Räder für die Servos vor

Bereiten Sie die Räder für die Servos vor
Bereiten Sie die Räder für die Servos vor

Für dieses Projekt haben wir speziell entwickelte Räder verwendet, die wir selbst gezeichnet und in 3D gedruckt haben (.stl-Datei in der Beschreibung).

Sobald die Räder gedruckt sind, müssen wir sie durch Verschrauben (M2, 10mm Schrauben) an den Propellern der Servos befestigen. Da die Löcher der Propeller durch das Aufschrauben des M2 kleiner als 2 mm Durchmesser sind, werden keine Muttern benötigt.

Die 3 Propeller können an jedem Servo angebracht werden.

Schritt 7: Befestigen Sie die Motoren am Arm

Befestigen Sie die Motoren am Arm
Befestigen Sie die Motoren am Arm

Dieser Schritt besteht in der Befestigung der Motoren am Arm; Dazu mussten wir eine zusätzliche PLA-Plakette drucken, um eine Unterstützung zu erhalten.

Tatsächlich konnten die Motoren nicht direkt am Arm befestigt werden, da die Räder, die zum Ziehen der Drähte benötigt werden, während der Bewegung durch den Handschuh blockiert werden könnten. Also haben wir in 3D eine PLA-Plakette mit den Maßen 120x150x5 mm gedruckt.

Dann haben wir die Plakette mit einigen Kabelbindern an unserem Handschuh befestigt: Wir haben einfach mit einer Schere Löcher in den Handschuh gebohrt, dann haben wir mit einem Bohrer Löcher in die Plastikplakette gebohrt und alles zusammengefügt. Vier Löcher in der Platte werden in der Mitte des Umfangs benötigt, um die Kabelbinder hindurchzuführen. Sie werden mit einem Bohrer hergestellt. Diese befinden sich im Mittelteil und nicht an den Seiten der Platte, um die Jeans um den Arm schließen zu können, ohne dass die Platte sie blockiert, da die Platte nicht flexibel ist.

Dann werden auch andere Löcher in die Kunststoffplatte gebohrt, um die Motoren zu befestigen. Die Motoren werden mit zwei gekreuzten Kabelbindern befestigt. An ihren Seiten wurde etwas Kleber hinzugefügt, um die Fixierung zu gewährleisten.

Die Motoren müssen so platziert werden, dass sich die Räder nicht gegenseitig stören. So sind in der linken und rechten Handseite getrennt: zwei auf einer Seite, wobei sich die Räder in entgegengesetzte Richtungen drehen und eines auf der anderen Seite.

Schritt 8: Code auf dem Arduino

Code auf dem Arduino
Code auf dem Arduino

Der Code wurde auf einfache Weise entwickelt: um die Motoren zu betätigen oder nicht. Die Servos werden nur betätigt, wenn der Messwert über einem bestimmten Wert liegt (dies wurde durch Versuche und Fehler behoben, da die Empfindlichkeit jedes Sensors nicht genau gleich ist). Es gibt zwei Möglichkeiten der Biegung, niedrig für eine geringe Kraft und vollständig für eine starke Kraft. Sobald der Finger gebogen ist, ist keine Kraft des Benutzers erforderlich, um den Finger in der tatsächlichen Position zu halten. Der Grund für diese Implementierung ist, dass ansonsten erwähnt wurde, dass die Finger ständig eine Kraft auf die Sensoren ausüben müssen und der Handschuh keinen Vorteil bringt. Um die Fingerbeugung zu lösen, muss auf den Drucksensor eine neue Kraft ausgeübt werden, die einen Stoppbefehl wirkt.

Wir können den Code in drei Teile aufteilen:

Sensoren initialisieren:

Zunächst haben wir drei Integer-Variablen initialisiert: Reading1, Reading2, Reading3 für jeden Sensor. Die Sensoren wurden in die analogen Eingänge A0, A2, A4 gesteckt. Jede Variable zum Lesen wird wie folgt eingestellt:

  • read1 wobei der gelesene Wert in den Eingang A0 geschrieben wird,
  • read2 wobei der gelesene Wert in den Eingang A2 geschrieben wird,
  • read3 wo wird der gelesene Wert in den Eingang A4 geschrieben

Zwei Schwellen werden mit dem Finger entsprechend den beiden Betätigungspositionen der Servos festgelegt. Diese Schwellenwerte sind für jeden Finger unterschiedlich, da die ausgeübte Kraft nicht für jeden Finger gleich ist und die Empfindlichkeit der drei Sensoren nicht genau gleich ist.

Motoreninitialisierung:

Drei Variablen char (save1, save2, save3), eine für jeden Motor, werden auf 0 initialisiert. Dann haben wir im Setup die Pins angegeben, an denen wir die Motoren anschließen: Pin 9, Pin 6 und Pin 3 für Servo1, Servo2, Servo3; alle mit dem Wert 0 initialisiert.

Dann werden die Servos über den Befehl servo.write() angesteuert, der in der Lage ist, den als Eingang am Servo empfangenen Winkel zu fixieren. Auch durch Versuche und Irrtümer wurden die zwei guten Winkel gefunden, die erforderlich sind, um den Finger in zwei Positionen zu beugen, die einem kleinen Griff und einem großen Griff entsprechen.

Da ein Motor aufgrund seiner Fixierung in die entgegengesetzte Richtung drehen muss, ist sein Startpunkt nicht Null, sondern der maximale Winkel und verringert sich, wenn eine Kraft aufgebracht wird, um in die entgegengesetzte Richtung drehen zu können.

Verbindung zwischen Sensoren und Motoren:

Die Wahl von save1, save2, save3 und reading1, reading2, reading3 hängt von der Lötung ab. Aber für jeden Finger müssen der Sensor und der dazugehörige Motor die gleiche Nummer haben.

Dann in der Schleife, ob Bedingungen verwendet wurden, um zu testen, ob sich der Finger bereits in einer Biegeposition befindet oder nicht und ob der Druck auf die Sensoren ausgeübt wird oder nicht. Wenn die Sensoren einen Wert zurückgeben, muss eine Kraft aufgebracht werden, aber es sind zwei verschiedene Fälle möglich:

  • Wenn der Finger noch nicht gebeugt ist und dieser von den Sensoren zurückgegebene Wert mit den Schwellenwerten verglichen wird, wird der entsprechende Winkel auf das Servo angewendet.
  • Wenn der Finger bereits gebogen ist, bedeutet dies, dass der Benutzer die Biegung lösen möchte und dann der Startwinkel auf die Servos angewendet wird.

Dies wird für jeden Motor durchgeführt.

Dann haben wir eine Verzögerung von 1000 ms hinzugefügt, um zu vermeiden, dass die Werte der Sensoren zu oft getestet werden. Wenn ein zu kleiner Verzögerungswert angewendet wird, besteht die Gefahr, dass die Hand nach dem Schließen direkt wieder geöffnet wird, falls die Kraft über einen längeren Zeitraum als die Verzögerungszeit ausgeübt wird.

Der gesamte Prozess für einen Sensor ist im obigen Flussdiagramm dargestellt.

DER GESAMTE CODE

#include Servoservo1; Servo-Servo2; Servoservo3; int-Lesung1; int-Lesung2; int-Lesung3; Zeichen speichern1 = 0; // der Servo startet bei Zustand 0, Schlafzustand char save2 = 0; Zeichen speichern3 = 0; Void setup (void) {Serial.begin (9600); servo2.attach(9); // Servo an digitalem Pin 9 servo2.write (160); // Anfangspunkt für Servo servo1.attach (6); // Servo an digitalem Pin 6 servo1.write (0); // Anfangspunkt für Servo servo3.attach (3); // Servo an digitalem Pin 3 servo3.write (0); // Anfangspunkt für Servo

}

Void Schleife (void) {reading1 = analogRead (A0); // an Analog 0 angehängt Reading2 = analogRead (A2); // an Analog 2 angehängt Reading3 = analogRead (A4); // an analog 4. angeschlossen

// if (reading2 >= 0) {Serial.print ("Sensorwert = "); // Beispiel eines Befehls für die Kalibrierung der Schwellenwerte des ersten Sensors

// Serial.println (lesen2); } // sonst {Serial.print ("Sensorwert = "); Serial.println(0); }

if (reading1 > 100 and save1 == 0) {// wenn der Sensor einen hohen Wert erhält und sich nicht im Schlafzustand befindet save1 = 2; aufrechtzuerhalten. // Gehe zu Zustand 2 else if (reading1 > 30 and save1 == 0) {// wenn der Sensor einen mittleren Wert erhält und sich nicht im Schlafzustand befindet save1 = 1; aufrechtzuerhalten

if (save1 == 0) {servo1.write(160); } // sonst loslassen if (save1 == 1) {servo1.write (120); } // mittlerer Ziehwinkel Else {servo1.write (90); } // maximaler Ziehwinkel

if (reading2 > 10 and save2 == 0) {// dasselbe wie Servo 1 save2 = 2; aufrechtzuerhalten. Sonst if (reading2 > 5 und save2 == 0) { save2 = 1; } else if (reading2 > 0) { save2 = 0;}

if (save2 == 0) {servo2.write (0); aufrechtzuerhalten. Sonst if (save2 == 1) {servo2.write (40); aufrechtzuerhalten. Sonst {servo2.write (60); }

if (reading3 > 30 and save3 == 0) {// dasselbe wie Servo 1 save3 = 2; aufrechtzuerhalten. Sonst if (reading3 > 10 und save3 == 0) { save3 = 1; } else if (reading3 > 0) { save3 = 0;}

if (save3 == 0) {servo3.write (0); aufrechtzuerhalten. Sonst if (save3 == 1) {servo3.write (40); aufrechtzuerhalten. Sonst {servo3.write (70); } Verzögerung (1000); } // warte eine Sekunde

Schritt 9: Befestigen Sie das Arduino, die Batterien und das Veroboard am Arm

Befestigen Sie das Arduino, die Batterien und das Veroboard am Arm
Befestigen Sie das Arduino, die Batterien und das Veroboard am Arm
Befestigen Sie das Arduino, die Batterien und das Veroboard am Arm
Befestigen Sie das Arduino, die Batterien und das Veroboard am Arm

Eine weitere Platte wurde in PLA gedruckt, um die Batteriehalter und das Arduino befestigen zu können.

Die Platte hat die Maße: 100x145x5mm.

Es sind vier Löcher zum Anschrauben des Arduino und zwei zum Anschrauben des 9V-Batteriehalters vorhanden. Im 6V-Batteriehalter und in der Platte wurde ein Loch gebohrt, um sie mit einem Kabelbinder aneinander zu befestigen. Etwas Kleber wurde hinzugefügt, um die Fixierung dieses Halters zu gewährleisten. Der Schalter wird mit zwei kleinen Kabelbindern fixiert.

Es gibt auch vier Löcher, die verwendet werden, um die Platte mit Kabelbindern an der Jeans zu befestigen.

Das Veroboard wird wie ein Schild auf das Arduino gelegt.

Schritt 10: Schließen Sie die Elektronik an

Schließen Sie die Elektronik an
Schließen Sie die Elektronik an

Die Schaltung wird wie im obigen Schema beschrieben auf das Veroboard gelötet.

Der Arduino hat eine 9V Batterie als Versorgung und zwischen diesen wird ein Schalter geschaltet um den Arduino ausschalten zu können. Für den Servomotor, der viel Strom benötigt, wird eine 6V Batterie benötigt und der dritte Pin der Servos wird an den angeschlossen Pins 3, 6 und 9, um sie mit PWM zu steuern.

Jeder Sensor ist auf einer Seite mit den 5V des Arduino und auf der anderen Seite mit einem 330 Ohm Widerstand verbunden, der mit Masse und den Pins A0, A2 und A4 verbunden ist, um die Spannung zu messen.

Schritt 11: Fügen Sie die Nylondrähte hinzu

Fügen Sie die Nylondrähte hinzu
Fügen Sie die Nylondrähte hinzu

Die Nylondrähte werden durch beide Löcher am Ende und die Ringe geführt, wie im Bild zu sehen, dann gehen die beiden Hälften des Drahtes in die Polyethylenführung und bleiben bis zum Ende der Führung zum Motor zusammen. Die Länge der Drähte wird an dieser Stelle bestimmt, sie müssen lang genug sein, um einmal das Rad des Servos mit den geraden Fingern zu umkreisen.

Sie werden auf den Rädern mit einem Knoten befestigt, der durch zwei kleine Löcher in den.stl-Dateien verläuft, und mit Heißkleber zur zusätzlichen Stabilisierung.

Schritt 12: Viel Spaß

Es funktioniert wie erwartet.

Beim ersten Impuls beugt er den Finger und beim zweiten lässt er ihn los. Beim Beugen der Finger ist keine Kraft erforderlich.

Trotzdem bleiben drei Probleme:

- Wir müssen darauf achten, einen Impuls kürzer als 1 Sekunde zu machen, um die Servos zu betätigen, sonst werden die Drähte sofort nach dem Ziehen freigegeben, wie in Schritt 8 zum Arduino-Code erklärt.

- Die Kunststoffteile rutschen ein wenig, daher haben wir am Ende etwas Heißkleber hinzugefügt, um die Reibung zu erhöhen.

- Wenn der Finger stark belastet wird, hat der Sensor ständig einen großen Wert und das Servo dreht sich kontinuierlich.