Inhaltsverzeichnis:

Prothesenarm, der mit einem Myosensor arbeitet - Gunook
Prothesenarm, der mit einem Myosensor arbeitet - Gunook

Video: Prothesenarm, der mit einem Myosensor arbeitet - Gunook

Video: Prothesenarm, der mit einem Myosensor arbeitet - Gunook
Video: [2K] Вся правда о бионических руках 2024, November
Anonim
Image
Image

Dieses Projekt ist die Entwicklung einer Armprothese für Amputierte. Das Ziel dieses Projektes ist die Schaffung einer erschwinglichen Armprothese für Menschen, die sich keine professionelle Armlehne leisten können.

Da sich dieses Projekt noch in der Prototyping-Phase befindet, kann es immer besser sein, da es derzeit nur die Handfläche öffnen und schließen kann, um Dinge zu greifen! Nichtsdestotrotz handelt es sich um eine DIY-Armprothese, die zu Hause oder in einem lokalen Fab-Labor hergestellt werden kann.

Schritt 1: Benötigte Materialien, Werkzeuge und Maschinen

Maschinen:

  1. 3D Drucker
  2. Laserschneider
  3. Desktop-CNC-Maschine

Werkzeuge:

  1. Angelleine
  2. 3mm Filament
  3. Bohren
  4. Sekundenkleber
  5. Lochzange
  6. Multimeter
  7. Lötstation
  8. Bearbeitbares Wachs
  9. Silikonfür Formen

Materialien:

  1. Kupferplatte
  2. 1x ATMEGA328P-AU
  3. 1x 16MHz Quarz
  4. 1x 10k Widerstand
  5. 2x 22pF Kondensatoren
  6. 1x 10uF Kondensator
  7. 1x 1uF Kondensator
  8. 1x 0.1uF Kondensator
  9. 1x Myosensor
  10. 5x Mikro-Servomotoren
  11. 1x Arduino UNO

Software:

  1. Arduino-IDE
  2. Fusion360
  3. Cura
  4. Adler
  5. GIMP

Schritt 2: 2D- und 3D-Design

2D- und 3D-Design
2D- und 3D-Design
2D- und 3D-Design
2D- und 3D-Design
2D- und 3D-Design
2D- und 3D-Design

3D-Design

Der erste Schritt bestand darin, die Finger, die Handfläche und den Unterarm des Prothesenarms unter Berücksichtigung der Elektronik zu entwerfen, die in den Prothesenarm gehen würde. Um ehrlich zu sein, habe ich als Basis das Open-Source-Projekt inmoov verwendet und von dort aus angefangen.

Die Handfläche ist ziemlich schwierig zu gestalten, da die Finger unterschiedliche Verhältnisse haben sollten. So:

Finger: Ich habe die Finger aus dem inmoov-Projekt heruntergeladen.

Palme:

  1. Ich habe zuerst das Layout der Handfläche skizziert und extrudiert.
  2. Dann habe ich mit Skizzen, dem Schnittbefehl und dem Verrundungsbefehl Löcher für die Verbindungen von Finger und Unterarm gemacht.
  3. Danach musste ich Schläuche herstellen, um die Angelschnüre einführen zu können, damit ich die Finger über die Motoren steuern kann.
  4. Zuletzt mussten noch Löcher in die Handinnenfläche eingebracht werden, damit die Handinnenfläche beim Ziehen der Angelschnur geschlossen werden konnte.

Unterarm:

  1. In verschiedenen Ebenen habe ich zwei Skizzen erstellt und den Ellipse-Befehl verwendet. Ich habe den Loft-Befehl danach verwendet, um die gewünschte Form zu erstellen.
  2. Danach wurde der Shell-Befehl verwendet, um es hohl zu machen und der Split-Befehl, um es in zwei Hälften zu schneiden, damit ich darin entwerfen kann und für die beste Zugänglichkeit, wenn ich meine Elektronik im Inneren montiere.
  3. Eine Skizze wurde auch in der Nähe des Handgelenks erstellt, extrudiert und mit dem Hauptunterarm verbunden, damit er mit der Handfläche verbunden werden kann.
  4. Da ich die Sichtbarkeit für das Design im Unterarm hatte, erstellte ich eine Skizze in den Abmessungen der fünf Motoren, die ich verwenden würde, einen für jeden Finger, und meiner Leiterplatte (Leiterplatte), die ich verwenden würde. Ich habe sie dann extrudiert, bis sie die gewünschte Höhe erreicht haben und die unnötigen Teile auf der Rückseite des Zylinders mit Rücktaste gelöscht.
  5. Schließlich wurden Öffnungen für Bolzen so gestaltet, dass sie in der Gesamtkonstruktion nicht so sichtbar sind, damit der Unterarm mit ähnlichen Befehlen wie oben geschlossen werden kann.

Als ich das Design fertigstellte, wählte ich jeden Körper aus und lud ihn als.stl-Datei herunter und druckte sie separat in 3D.

2D-Design

Da ich wollte, dass meine Angelschnüre getrennt werden, während sie von den Motoren betrieben werden, beschloss ich, Führungsschlitze für sie zu machen. Dafür musste ich nicht wirklich etwas Neues entwerfen, sondern die kleinere Ellipse verwenden, wenn ich den Loft-Befehl verwendet habe, um den Unterarm zu erstellen.

Ich habe seine Skizze als.dxf-Datei exportiert, nachdem ich den Laserschneider verwendet habe. Nachdem ich meine gewünschte Form hatte, bohrte ich Löcher von 0,8 mm in den Schlitz, den ich für notwendig hielt.

Schritt 3: 3D-Druck

3d Drucken
3d Drucken
3d Drucken
3d Drucken
3d Drucken
3d Drucken
3d Drucken
3d Drucken

Nach dem Exportieren jeder stl-Datei habe ich Cura verwendet, um den.gcode der verschiedenen Teile der Finger, der Handfläche und des Unterarms zu generieren. Die verwendeten Einstellungen sind auf den obigen Bildern dargestellt. Das Material der 3D-gedruckten Teile ist PLA.

Schritt 4: Formen und Gießen

Formen und Gießen
Formen und Gießen
Formen und Gießen
Formen und Gießen
Formen und Gießen
Formen und Gießen

Der Zweck des Gießens der Handfläche besteht darin, dass der Prothesenarm einen stärkeren Griff hat, da PLA rutschig sein könnte.

3D-Design

  1. Unter Verwendung der bereits vorhandenen Skizze der Handfläche habe ich versucht, unsere Handfläche nachzuahmen, indem ich mit dem Bogenbefehl eine Art Kreis darauf entwarf.
  2. Danach habe ich sie in unterschiedlichen Höhen extrudiert und den Verrundungsbefehl verwendet, um die Kanten der inneren "Kreise" zu glätten.
  3. Dann habe ich eine Schachtel mit den gleichen Abmessungen wie mein bearbeitbares Wachs entworfen und das Negativ meines Designs mit dem Schnitt im Befehl Kombinieren dort platziert.

CAM-Prozess

Nachdem ich das Design mit der Desktop-CNC-Maschine zum Fräsen bereit hatte, musste ich den Gcode dafür generieren. In meinem Fall benutzte ich die Roland MDX-40 CNC-Maschine!

  1. Zuerst trat ich in die CAM-Umgebung von Fusion360 ein.
  2. Dann habe ich im Setup-Menü ein "neues Setup" ausgewählt.
  3. Ich wählte die richtigen Parameter (siehe Bilder) und drückte ok.
  4. Als nächstes wählte ich im 3D-Menü adaptives Clearing und wählte die richtigen Parameter aus, nachdem ich das von mir verwendete Werkzeug wie in den Bildern gezeigt eingefügt hatte.
  5. Zuletzt habe ich mich für das adaptive Clearing entschieden und auf den Postprozess geklickt. Ich stellte sicher, dass es für die Roland-Maschine mdx-40 war und klickte auf ok, um den gcode zu erhalten.
  6. Danach habe ich den Wachsblock nach meinem Entwurf mit der Maschine gefräst.

Gießen des Siliziums

  1. Zuerst habe ich die beiden Silikonlösungen sorgfältig gemischt, um keine Luftblasen zu verursachen, gemäß dem Datenblatt (Link auf den Materialien), unter Berücksichtigung des Mischungsverhältnisses, der Topfzeit und der Entformungszeit.
  2. Dann habe ich es vom tiefsten Punkt in meine Form gegossen, wobei darauf geachtet wurde, dass der Kontaktpunkt konstant blieb und der Durchmesser der gegossenen Lösung so dünn wie möglich war, um Luftblasen zu vermeiden.
  3. Nachdem ich das Silikon in meine Form gegossen hatte, musste ich sicherstellen, dass keine Luftblasen drin waren, also habe ich die Form mit einem Bohrer mit einem schrägen Nagel zittert.
  4. Schließlich habe ich, da ich es in meinem Design vergessen hatte, Löcher in mein Silikon gestanzt, nachdem es fertig war, mit der Lochzange, so dass sie mit den Löchern auf der Oberfläche der Handfläche übereinstimmen.

Schritt 5: Elektronikdesign und -produktion

Elektronikdesign und -produktion
Elektronikdesign und -produktion
Elektronikdesign und -produktion
Elektronikdesign und -produktion
Elektronikdesign und -produktion
Elektronikdesign und -produktion

Um mein Board zu entwerfen und zu verstehen, was in den Pins des Mikrocontrollers vor sich geht, musste ich das Datenblatt davon lesen. Als Basisplatine habe ich das Micro-Satshakit verwendet und es dann entsprechend den Anforderungen meines Systems modifiziert.

Da Satshakit ein DIY-Board auf Arduino-Basis ist, konnte ich es entsprechend meiner Suche nach Verbindungen meiner Teile mit dem Arduino modifizieren. Der Myosensor wird also über einen GND-Pin, einen VCC-Pin und einen analogen Pin mit dem Arduino verbunden. Während ein Servomotor einen GND-Pin, einen VCC-Pin und einen PWM-Pin verwendet. Also musste ich insgesamt sechs GND- und VCC-Pins unter Berücksichtigung der Stromversorgung des Boards freilegen, einen analogen und fünf PWM-Pins. Außerdem musste ich berücksichtigen, um die Pins für die Programmierung der Platine freizulegen (das sind MISO, MOSI, SCK, RST, VCC und GND).

Die Schritte die ich unternommen habe waren:

  1. Zuerst habe ich die Eagle-Dateien des Micro-Satshakit heruntergeladen.
  2. Als nächstes habe ich das Micro-Satshakit mit Eagle nach meinen Bedürfnissen modifiziert. Eine Anleitung zur Verwendung von Eagle finden Sie hier und hier.
  3. Nachdem ich mein Board gerootet hatte, habe ich es als PNG-Datei exportiert und den internen und externen Pfad mit GIMP vorbereitet. Mehr dazu, wie das geht, finden Sie hier.

Nachdem die internen und externen Pfade meines Boards als-p.webp

Zuletzt habe ich alles, was ich brauchte, gemäß meinem Adler-Board gelötet. Das Bild des Schaltplans und der gelöteten Platine finden Sie oben.

Der Grund für die Herstellung meiner eigenen Leiterplatte anstelle der Verwendung eines Arduino UNO ist der Platz, den ich einspare, wenn ich meine eigene Leiterplatte verwende.

Schritt 6: Montage

Montage
Montage
Montage
Montage
Montage
Montage

Also, nachdem die Finger gedruckt wurden:

  1. Ich musste die Innenlöcher mit einem Bohrer mit 3,5 mm Durchmesser und die äußeren Löcher mit einem Bohrer mit 3 mm Durchmesser bohren. Innenlöcher bedeutet das Teil, das, wenn die Teile verbunden sind, von innen und außen ist, das Teil, das bei Verbindung von außen ist.
  2. Danach musste ich den ersten mit dem zweiten Finger und den dritten mit dem vierten mit Sekundenkleber kleben.
  3. Danach habe ich die Teile 1+2 mit 3+4 mit 5 durch die kleinen Löcher mit einem Filament mit 3mm Durchmesser verbunden.
  4. Zuletzt waren die Finger bereit, mit der Handfläche und dann mit dem Unterarm zusammengebaut zu werden.

Es war also an der Zeit, die Angelschnur durch die Finger zu führen.

Eine Linie ging von der Rückseite des Fingers durch das Rohr am Finger-Handflächen-Anschluss und zum Unterarm und die andere Linie ging von der Vorderseite des Fingers zum Loch an der Innenseite der Handfläche und zum Unterarm

Ein besonderer Hinweis ist, die Angelschnur durch ein Stück Holz zu führen, das ein Loch mit dem Durchmesser davon hat, und einen Knoten zu machen. Andernfalls kann es beim Ziehen der Leine den Finger hinuntergehen, was mir passiert ist, egal wie viele Knoten ich gemacht habe.

  • Nachdem die Angelschnur durch die Finger geführt wurde, sollten die Handfläche und der Unterarm durch einige 3D-gedruckte Bots-Bolzen verbunden werden.
  • Ich führte die Linien erneut durch den lasergeschnittenen Lochschlitz, um sie zu trennen, und verband sie dann mit den Servomotoren.
  • Das Anbringen der Angelschnur an der richtigen Position des Servos ist etwas schwierig. Aber was ich tat, war, die extremen Positionen des Fingers zu nehmen und ihn mit der extremen Position des Servos zu verbinden.
  • Nachdem ich die richtigen Positionen gefunden hatte, bohrte ich Löcher in die speziellen Schlitze für die Servos und schraubte die Servos an den richtigen Stellen an, wobei darauf geachtet wurde, dass zwei der Servos leicht über den anderen standen, sonst würden sie während ihres Betriebs kollidieren.

Schritt 7: Programmierung

Programmierung
Programmierung

Vor dem Schreiben des Programms musste ich das modifizierte Micro-Satshakit programmieren lassen. Dazu musste ich die folgenden Schritte ausführen:

  1. Verbinden Sie das Arduino Uno mit dem PC.
  2. Wählen Sie unter Tools den richtigen Port und das Arduino Uno Board aus.
  3. Suchen und öffnen Sie unter > Datei > Beispiele die Skizze "ArduinoISP".
  4. Laden Sie die Skizze zum Arduino hoch.
  5. Trennen Sie das Arduino vom PC.
  6. Verbinden Sie die Platine mit dem Arduino gemäß dem Schaltplan im Bild.
  7. Verbinden Sie den Arduino mit dem PC.
  8. Wählen Sie das Board "Arduino/Genuino Uno" und den Programmierer "Arduino as ISP".
  9. Klicken Sie auf >Tools >Bootloader brennen.
  10. Nachdem der Bootloader erfolgreich durchgeführt wurde, können wir unser Programm schreiben:

// einschließlich der Bibliothek, die ich für die Servomotoren verwendet habe

#include #include SoftwareSerial mySerial(7, 8); #define MYO_PIN A0 int sensorValue; Schwebespannung; // meinem Servo einen Namen geben VarSpeedServo servo1; VarSpeedServo-Servo2; VarSpeedServo-Servo3; VarSpeedServo-Servo4; VarSpeedServo-Servo5; #define PINKY 5 #define PINKY_PIN 10 #define RINGFINGER 4 #define RINGFINGER_PIN 9 #define MIDDLE 3 #define MIDDLE_PIN 3 #define INDEX 2 #define INDEX_PIN 5 #define THUMB 1 #define THUMB_PIN 6 void setup(){ pinMode, INPUT_. P); // der Pin, an dem ich meinen Motor befestigt habe servo1.attach (THUMB_PIN); servo2.attach (INDEX_PIN); servo3.attach (MITTE_PIN); servo4.attach (RINGFINGER_PIN); servo5.attach (PINKY_PIN); defaultPosition(DAUMEN, 40); defaultPosition(INDEX, 40); defaultPosition(MITTE, 40); defaultPosition(RINGFINGER, 40); defaultPosition(PINKY, 40); mySerial.begin(9600); mySerial.print("Initialisierung…"); aufrechtzuerhalten. Void Schleife () { sensorValue = analogRead (A0); Spannung = SensorWert * (5,0 / 1023.0); mySerial.println(Spannung); Verzögerung (100); Wenn (Spannung > 1) {closePosition (PINKY, 60); closePosition(RINGFINGER, 60); closePosition (MITTE, 60); closePosition(INDEX, 60); closePosition(DAUMEN, 60); aufrechtzuerhalten. Sonst { openPosition (PINKY, 60); openPosition(RINGFIGER, 60); offene Position (MITTE, 60); openPosition(INDEX, 60); openPosition(DAUMEN, 60); aufrechtzuerhalten. aufrechtzuerhalten. Void defaultPosition (uint8_t finger, uint8_t _speed) { if (finger == PINKY) servo5.write (90, _speed, true); sonst if (finger == RINGFINGER) servo4.write (70, _speed, true); sonst if (finger == MITTE) servo3.write (20, _speed, true); sonst if (finger ==INDEX) servo2.write (20, _speed, true); sonst if (finger == THUMB) servo1.write (20, _speed, true); aufrechtzuerhalten. Void closePosition (uint8_t finger, uint8_t _speed) { if (finger == PINKY) servo5.write (180, _speed, true); sonst if (finger == RINGFINGER) servo4.write (180, _speed, true); sonst if (finger == MITTE) servo3.write (180, _speed, true); sonst if (finger == INDEX) servo2.write (180, _speed, true); sonst if (finger == THUMB) servo1.attach (180, _speed, true); aufrechtzuerhalten. Void openPosition (uint8_t finger, uint8_t _speed) { if (finger == PINKY) servo5.write (0, _speed, true); sonst if (finger == RINGFINGER) servo4.write (0, _speed, true); sonst if (finger == MITTE) servo3.write (0, _speed, true); sonst if (finger == INDEX) servo2.write (0, _speed, true); sonst if (finger == THUMB) servo1.write (0, _speed, true); } // Nachdem wir das Programm geschrieben haben, laden wir es mit > Sketch > Upload mit dem Programmer auf das Board hoch // Jetzt können Sie Ihr Micro-Satshakit von Ihrem Arduino trennen und über die Powerbank mit Strom versorgen // Und voila !! Sie haben eine Armprothese

Empfohlen: