Table des matières:

Bras prothétique fonctionnant avec un myocapteur : 8 étapes
Bras prothétique fonctionnant avec un myocapteur : 8 étapes

Vidéo: Bras prothétique fonctionnant avec un myocapteur : 8 étapes

Vidéo: Bras prothétique fonctionnant avec un myocapteur : 8 étapes
Vidéo: Bras bioniques : les prothèses du futur 3/5 - Le Magazine de la Santé 2024, Novembre
Anonim
Image
Image

Ce projet est le développement d'un bras prothétique pour les personnes amputées. L'objectif de ce projet est la création d'un bras prothétique abordable pour les personnes qui n'ont pas les moyens d'en acheter un professionnel.

Comme ce projet est encore en phase de prototypage, ça peut toujours être mieux car pour l'instant il ne peut qu'ouvrir et fermer la paume pour pouvoir saisir des trucs ! Néanmoins, il s'agit d'un bras prothétique DIY qui peut être réalisé à la maison ou dans un fab lab local.

Étape 1: Matériaux, outils et machines nécessaires

Machines:

  1. Imprimante 3D
  2. Découpeur laser
  3. Machine CNC de bureau

Outils:

  1. Fil de pêche
  2. Filament de 3 mm
  3. Percer
  4. Super colle
  5. Pince à trous
  6. Multimètre
  7. Poste de soudure
  8. Cire usinable
  9. Moules en silicone

Matériaux:

  1. Feuille de cuivre
  2. 1x ATMEGA328P-AU
  3. 1x cristal 16MHz
  4. 1x résistance 10k
  5. 2x condensateurs 22pF
  6. 1x condensateur 10uF
  7. 1x condensateur 1uF
  8. 1x condensateur 0.1uF
  9. 1x myocapteur
  10. 5x micro servomoteurs
  11. 1x Arduino UNO

Logiciel:

  1. IDE Arduino
  2. Fusion360
  3. Cura
  4. Aigle
  5. GIMP

Étape 2: Conception 2D et 3D

Conception 2D et 3D
Conception 2D et 3D
Conception 2D et 3D
Conception 2D et 3D
Conception 2D et 3D
Conception 2D et 3D

Conception 3D

La première étape consistait à concevoir les doigts, la paume et l'avant-bras du bras prothétique en tenant compte de l'électronique qui irait dans le bras prothétique. Pour être honnête, j'ai utilisé comme base le projet open source inmoov et je suis parti de là.

La paume est une partie assez difficile à concevoir car les doigts doivent avoir des rapports différents entre eux. Donc:

Fingers: j'ai téléchargé les doigts du projet inmoov.

Paume:

  1. J'ai d'abord esquissé la disposition de la paume et l'ai extrudée.
  2. Ensuite, j'ai fait des trous pour les connexions du doigt et de l'avant-bras à l'aide de croquis, de la commande de coupe et de la commande de congé.
  3. Après, j'ai dû fabriquer des tubes pour pouvoir passer les lignes de pêche afin de pouvoir contrôler les doigts via les moteurs.
  4. Enfin, des trous ont dû être ajoutés à l'intérieur de la paume pour que la fermeture de la paume soit possible lorsque la ligne de pêche était tirée.

Avant bras:

  1. Dans différents plans, j'ai créé deux esquisses et utilisé la commande ellipse. J'ai utilisé la commande loft après pour créer la forme souhaitée.
  2. Après, la commande shell a été utilisée pour le rendre creux et la commande split pour le couper en deux afin que je puisse y concevoir et pour la meilleure accessibilité lorsque je monte mon électronique à l'intérieur.
  3. Un croquis a également été réalisé près du poignet, extrudé et joint à l'avant-bras principal afin qu'il puisse se connecter à la paume.
  4. Ayant la visibilité nécessaire pour concevoir à l'intérieur de l'avant-bras, j'ai créé un croquis dans les dimensions des cinq moteurs que j'utiliserais, un pour chaque doigt, et mon PCB (circuit imprimé) que j'utiliserais. Je les ai ensuite extrudés jusqu'à ce qu'ils atteignent la hauteur souhaitée et j'ai supprimé les parties inutiles à l'arrière du cylindre à l'aide d'un retour arrière.
  5. Enfin, des ouvertures pour les boulons ont été conçues, d'une manière moins visible sur la conception globale, pour que l'avant-bras puisse être fermé à l'aide de commandes similaires à celles ci-dessus.

En terminant le design, j'ai sélectionné chaque corps et je l'ai téléchargé sous forme de fichier.stl et je les ai imprimés en 3D séparément.

Conception 2D

Comme je voulais que mes lignes de pêche soient séparées pendant qu'elles sont actionnées par les moteurs, j'ai décidé de leur faire des fentes de guidage. Pour cela, je n'ai pas vraiment eu à concevoir quoi que ce soit de nouveau, mais j'ai utilisé la plus petite ellipse lorsque j'ai utilisé la commande loft pour créer l'avant-bras.

J'ai exporté son croquis sous forme de fichier.dxf après avoir utilisé le découpeur laser. Après avoir obtenu la forme souhaitée, j'ai percé des trous de 0,8 mm à l'intérieur de la fente que j'ai trouvées nécessaires.

Étape 3: Impression 3D

impression en 3D
impression en 3D
impression en 3D
impression en 3D
impression en 3D
impression en 3D
impression en 3D
impression en 3D

Après avoir exporté chaque fichier stl, j'ai utilisé Cura pour générer le.gcode des différentes parties des doigts, de la paume et de l'avant-bras. Les réglages utilisés sont illustrés sur les photos ci-dessus. Le matériau des pièces imprimées en 3D est du PLA.

Étape 4: Moulage et moulage

Moulage et moulage
Moulage et moulage
Moulage et moulage
Moulage et moulage
Moulage et moulage
Moulage et moulage

Le but du moulage de la paume est que le bras prothétique ait une meilleure adhérence car le PLA pourrait être glissant.

Conception 3D

  1. En utilisant le croquis préexistant de la paume, j'ai essayé d'imiter notre paume en lui dessinant des sortes de cercles à l'aide de la commande arc.
  2. Après, je les ai extrudés à différentes hauteurs et j'ai utilisé la commande de congé pour lisser les bords des "cercles" intérieurs.
  3. Ensuite, j'ai conçu une boîte aux mêmes dimensions que ma cire usinable et j'y ai mis le négatif de mon dessin en utilisant la coupe dans la commande combiner.

Processus de FAO

Après avoir préparé le design à fraiser à l'aide de la machine CNC de bureau, j'ai dû générer le gcode pour cela. Dans mon cas, j'utilisais la machine CNC Roland MDX-40 !

  1. Tout d'abord, je suis entré dans l'environnement CAM de Fusion360.
  2. Ensuite, j'ai sélectionné une "nouvelle configuration" dans le menu de configuration.
  3. J'ai choisi les bons paramètres (voir photos) et j'ai appuyé sur ok.
  4. Ensuite, dans le menu 3D, j'ai choisi l'effacement adaptatif et sélectionné les bons paramètres après avoir inséré l'outil que j'ai utilisé comme indiqué sur les images.
  5. Enfin, j'ai choisi la compensation adaptative et cliqué sur le post-processus. Je me suis assuré que c'était pour la machine roland mdx-40 et j'ai cliqué sur ok afin d'obtenir le gcode.
  6. Après cela, j'ai fraisé le bloc de cire selon ma conception à l'aide de la machine.

Couler le silicium

  1. Tout d'abord, j'ai mélangé les deux solutions de silicium avec soin pour ne pas provoquer de bulles d'air, en suivant la fiche technique (lien trouvé sur les matériaux), en tenant compte du rapport de mélange, du pot life et du temps de démoulage.
  2. Ensuite, je l'ai versé dans mon moule par le point le plus bas en veillant à ce que le point de contact reste constant et que le diamètre de la solution versée soit le plus fin possible, afin d'éviter les bulles d'air.
  3. Après avoir coulé le silicone dans mon moule, je devais m'assurer qu'il n'y avait pas de bulles d'air à l'intérieur, alors j'ai fait trembler le moule à l'aide d'une perceuse avec un clou oblique.
  4. Enfin, comme j'ai oublié de le faire dans ma conception, j'ai percé des trous dans mon silicium une fois qu'il était prêt, à l'aide de la pince à trous, de manière à ce qu'ils correspondent aux trous qui se trouvaient à la surface de la paume.

Étape 5: Conception et production électroniques

Conception et production électronique
Conception et production électronique
Conception et production électronique
Conception et production électronique
Conception et production électronique
Conception et production électronique

Afin de concevoir ma carte et de comprendre ce qui se passe dans les broches du microcontrôleur, j'ai dû lire la fiche technique de celle-ci. Comme PCB de base, j'ai utilisé le micro satshakit puis je l'ai modifié en fonction des besoins de mon système.

Comme satshakit est une carte DIY basée sur l'arduino, je pourrais la modifier en fonction de mes recherches de connexions de mes pièces avec l'arduino. Ainsi, le myocapteur se connecte à l'arduino à l'aide d'une broche GND, d'une broche VCC et d'une broche analogique. Alors qu'un servomoteur utilise une broche GND, une broche VCC et une broche PWM. J'ai donc dû exposer au total six broches GND et VCC en tenant compte de l'alimentation de la carte, une broche analogique et cinq broches PWM. Aussi, j'ai dû prendre en considération pour exposer les broches pour la programmation de la carte (qui sont MISO, MOSI, SCK, RST, VCC et GND).

Les mesures que j'ai prises étaient:

  1. Tout d'abord, j'ai téléchargé les fichiers eagle du micro-satshakit.
  2. Ensuite, j'ai modifié le micro-satshakit selon mes besoins en utilisant Eagle. Un guide sur la façon d'utiliser Eagle peut être trouvé ici et ici.
  3. Après avoir rooté ma carte, je l'ai exportée en tant que fichier-p.webp" />

Après avoir eu les chemins internes et externes de ma carte en png, il est temps de générer le gcode de ceux-ci afin de pouvoir le fraiser dans la machine cnc de bureau roland mdx-40. Pour la génération du.gcode j'ai utilisé des modules fab. Les paramètres qui doivent être définis dans les modules fab et se trouvent ici.

Enfin, j'ai soudé tout ce dont j'avais besoin selon ma planche aigle. La photo du schéma et de la carte soudée se trouve ci-dessus.

La raison pour laquelle j'ai créé ma propre carte PCB au lieu d'utiliser un Arduino UNO est l'espace que j'économise lorsque j'utilise ma propre carte.

Étape 6: Assemblage

Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée

Donc, après que les doigts aient été imprimés:

  1. J'ai dû percer les trous intérieurs avec une perceuse de 3,5 mm de diamètre et les trous extérieurs avec une perceuse de 3 mm de diamètre. Trous intérieurs signifiant la partie qui, lorsque les pièces sont connectées, provient du trou intérieur et extérieur, la partie qui, lorsqu'elle est connectée, provient de l'extérieur.
  2. Après cela, j'ai dû coller le premier avec le deuxième doigt et le troisième avec le quatrième.
  3. Après cela, j'ai connecté les pièces 1+2 avec 3+4 avec 5 à travers les petits trous à l'aide d'un filament de 3 mm de diamètre.
  4. Enfin, les doigts étaient prêts à être assemblés avec la paume puis avec l'avant-bras.

Il était donc temps de passer la ligne de pêche entre les doigts.

Une ligne allait de l'arrière du doigt à travers le tuyau sur le connecteur doigt-paume et à l'avant-bras et l'autre ligne allait de l'avant du doigt au trou à l'intérieur de la paume et à l'avant-bras

Une note spéciale est de passer la ligne de pêche à travers un morceau de bois qui a un trou avec le diamètre de celui-ci et de faire un nœud. Sinon lorsque la ligne est tirée, elle risque de descendre le doigt, ce qui m'est arrivé peu importe le nombre de nœuds que j'ai fait.

  • Une fois la ligne de pêche passée entre les doigts, la paume et l'avant-bras doivent être reliés par des boulons de robots imprimés en 3D,
  • J'ai passé à nouveau les lignes à travers la fente du trou découpé au laser pour les séparer, puis les ai connectées aux servomoteurs.
  • Fixer la ligne de pêche à la bonne position du servo est un peu difficile. Mais, ce que j'ai fait, c'est de prendre les positions extrêmes du doigt et de le connecter à la position extrême du servo.
  • Après avoir trouvé les bonnes positions, j'ai percé des trous dans les fentes spéciales pour les servos et vissé les servos aux bons endroits en veillant à ce que deux des servos soient légèrement surélevés par rapport aux autres, sinon ils entreraient en collision pendant leur fonctionnement.

Étape 7: Programmation

La programmation
La programmation

Avant d'écrire le programme, j'ai dû faire en sorte que le micro-satshakit modifié puisse être programmé. Pour ce faire, j'ai dû suivre les étapes ci-dessous:

  1. Connectez l'Arduino Uno au PC.
  2. Sélectionnez le bon port et la carte Arduino Uno sous Outils.
  3. Sous > Fichier > Exemples, recherchez et ouvrez le croquis "ArduinoISP".
  4. Téléchargez le croquis sur l'Arduino.
  5. Déconnectez l'Arduino du PC.
  6. Connectez la carte avec l'Arduino en suivant le schéma de l'image.
  7. Connectez l'Arduino au PC.
  8. Sélectionnez la carte "Arduino/Genuino Uno" et le programmeur "Arduino as ISP".
  9. Cliquez sur > Outils > Graver le chargeur de démarrage.
  10. Une fois le bootloader terminé, nous pouvons écrire notre programme:

//y compris la bibliothèque que j'ai utilisée pour les servomoteurs

#include #include SoftwareSerial mySerial (7, 8); #define MYO_PIN A0 int sensorValue; tension d'entretien; //donner un nom à mon servo VarSpeedServo servo1; VarSpeedServo servo2; VarSpeedServo servo3; VarSpeedServo servo4; Servo VarSpeedServo5; #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,(MYO_PIN); //la broche à laquelle j'ai attaché mon servomoteur1.attach(THUMB_PIN); servo2.attach(INDEX_PIN); servo3.attach(MIDDLE_PIN); servo4.attach(RINGFINGER_PIN); servo5.attach(PINKY_PIN); defaultPosition(POUCE, 40); defaultPosition(INDEX, 40); defaultPosition(MIDDLE, 40); defaultPosition(RINGFINGER, 40); defaultPosition(PINKY, 40); mySerial.begin(9600); mySerial.print("Initialisation…"); } void loop(){ sensorValue = analogRead(A0); tension = sensorValue * (5,0 / 1023,0); mySerial.println(tension); retard (100); if (tension > 1){ closePosition(PINKY, 60); closePosition(RINGFINGER, 60); closePosition(MIDI, 60); closePosition(INDEX, 60); closePosition(POUCE, 60); } else{ openPosition(PINKY, 60); openPosition(RINGFIGER, 60); openPosition(MIDDLE, 60); openPosition(INDEX, 60); openPosition(POUCE, 60); } } void defaultPosition(uint8_t finger, uint8_t _speed){ if(finger == PINKY) servo5.write(90, _speed, true); else if(finger == RINGFINGER) servo4.write(70, _speed, true); else if(finger == MIDDLE) servo3.write(20, _speed, true); else if(finger ==INDEX) servo2.write(20, _speed, true); else if(finger == THUMB) servo1.write(20, _speed, true); } void closePosition(uint8_t finger, uint8_t _speed){ if(finger == PINKY) servo5.write(180, _speed, true); else if(finger == RINGFINGER) servo4.write(180, _speed, true); else if(finger == MIDDLE) servo3.write(180, _speed, true); else if(finger == INDEX) servo2.write(180, _speed, true); else if(finger == THUMB) servo1.attach(180, _speed, true); } void openPosition(uint8_t finger, uint8_t _speed){ if(finger == PINKY) servo5.write(0, _speed, true); else if(finger == RINGFINGER) servo4.write(0, _speed, true); else if(finger == MIDDLE) servo3.write(0, _speed, true); else if(finger == INDEX) servo2.write(0, _speed, true); else if(finger == THUMB) servo1.write(0, _speed, true); } //Après avoir écrit le programme, nous le téléchargeons sur la carte par>Sketch>Télécharger à l'aide du programmeur //Maintenant, vous pouvez débrancher votre micro satshakit de votre arduino et l'alimenter via la banque d'alimentation //Et voila !! Vous avez un bras prothétique

Conseillé: