Taula de continguts:

Braç protèsic que treballa amb un miosensor: 8 passos
Braç protèsic que treballa amb un miosensor: 8 passos

Vídeo: Braç protèsic que treballa amb un miosensor: 8 passos

Vídeo: Braç protèsic que treballa amb un miosensor: 8 passos
Vídeo: Carlos Briones | Perseverance y el pasado habitable de Marte. 2024, De novembre
Anonim
Image
Image

Aquest projecte consisteix en el desenvolupament d’un braç protètic per a persones amputades. L’objectiu d’aquest projecte és la creació d’un braç protètic assequible per a persones que no es poden permetre un professional.

Com que aquest projecte encara està en fase de prototipatge, sempre pot ser millor, ja que ara per ara només pot obrir i tancar la palma per poder agafar coses. Tot i això, es tracta d’un braç protètic de bricolatge que es pot fer a casa o en un fab fabril local.

Pas 1: materials, eines i màquines necessàries

Màquines:

  1. Impressora 3D
  2. Tallador làser
  3. Màquina CNC d'escriptori

Eines:

  1. Línia de pesca
  2. Filament de 3 mm
  3. Trepant
  4. Superglue
  5. Alicates de forat
  6. Multímetre
  7. Estació de soldadura
  8. Cera mecanitzable
  9. Motlles de silicona

Materials:

  1. Full de coure
  2. 1x ATMEGA328P-AU
  3. Cristall de 1 x 16 MHz
  4. 1x resistència de 10k
  5. Condensadors de 2x 22pF
  6. 1x condensador 10uF
  7. Condensador 1x 1uF
  8. 1x condensador 0,1uF
  9. 1x Miosensor
  10. Micro servomotors 5x
  11. 1x Arduino UNO

Programari:

  1. IDE Arduino
  2. Fusion360
  3. Cura
  4. àguila
  5. GIMP

Pas 2: Disseny 2D i 3D

Disseny en 2D i 3D
Disseny en 2D i 3D
Disseny en 2D i 3D
Disseny en 2D i 3D
Disseny en 2D i 3D
Disseny en 2D i 3D

Disseny 3D

El primer pas va ser dissenyar els dits, el palmell i l'avantbraç del braç protètic tenint en compte l'electrònica que aniria al braç protètic. Per ser sincer, vaig utilitzar com a base el projecte inmoov de codi obert i vaig començar a partir d’aquí.

El palmell és una part força difícil de dissenyar, ja que els dits han de tenir relacions diferents entre ells. Tan:

Dits: vaig descarregar els dits del projecte inmoov.

Palma:

  1. Primer vaig esbossar la disposició de la palma i la vaig extruir.
  2. Després vaig fer forats per a les connexions del dit i l'avantbraç mitjançant esbossos, l'ordre de tallar i l'ordre de filet.
  3. Després d’això, vaig haver de fer tubs perquè pogués passar les línies de pesca per poder controlar els dits a través dels motors.
  4. Per últim, s’havien d’afegir forats a l’interior de la palma perquè el tancament de la palma fos possible quan es tirava la línia de pesca.

Avantbraç:

  1. En diferents plans, he creat dos esbossos i he utilitzat l'ordre el·lipse. He utilitzat l'ordre loft després per crear la forma desitjada.
  2. Després, es va utilitzar l'ordre shell per fer-lo buit i l'ordre split per tallar-lo per la meitat, de manera que pugui dissenyar-lo i obtenir la millor accessibilitat per a quan estigui muntant l'electrònica a l'interior.
  3. També es va fer un esbós a prop del canell, extruït i unit amb l'avantbraç principal perquè es pogués connectar amb el palmell.
  4. Tenint la visibilitat de dissenyar a l'interior de l'avantbraç, vaig crear un esbós sobre les dimensions dels cinc motors que utilitzaria, un per cada dit, i el meu PCB (placa de circuit imprès) que utilitzaria. Després els he extruït fins que han assolit l’alçada desitjable i he esborrat les parts innecessàries de la part posterior del cilindre mitjançant el retrocés.
  5. Finalment, es van dissenyar obertures per a cargols, de manera que no resultessin tan visibles en el disseny general, perquè l’avantbraç es pogués tancar mitjançant ordres similars a les anteriors.

En acabar el disseny, vaig seleccionar cada cos i el vaig descarregar com a fitxer.stl i els vaig imprimir 3D per separat.

Disseny 2D

Com que volia que les meves línies de pesca estiguessin separades mentre funcionaven pels motors, vaig decidir fer-los ranures de guia. Per a això, realment no vaig haver de dissenyar res de nou, sinó utilitzar l’el·lipse més petita per a quan vaig utilitzar l’ordre loft per crear l’avantbraç.

Vaig exportar el seu esbós com a fitxer.dxf després d'utilitzar el tallador làser. Després d’haver tingut la forma desitjada, he forat forats de 0,8 mm a l’interior de la ranura que he trobat necessària.

Pas 3: impressió 3D

Impressió 3D
Impressió 3D
Impressió 3D
Impressió 3D
Impressió 3D
Impressió 3D
Impressió 3D
Impressió 3D

Després d’exportar cada fitxer stl, he utilitzat Cura per generar el codi.g de les diferents parts dels dits, la palma i l’avantbraç. Els paràmetres utilitzats es mostren a les imatges anteriors. El material de les peces impreses en 3D és PLA.

Pas 4: Emmotllament i fosa

Emmotllament i fosa
Emmotllament i fosa
Emmotllament i fosa
Emmotllament i fosa
Emmotllament i fosa
Emmotllament i fosa

L’objectiu de la colada de la palma és que el braç protètic tingui una adherència més forta, ja que el PLA podria ser relliscós.

Disseny 3D

  1. Amb l’esbós preexistent de la palma, vaig intentar imitar la nostra palma dissenyant-hi una mena de cercles mitjançant la comanda arc.
  2. Després, els vaig extruir a diferents altures i vaig utilitzar la comanda de filet per suavitzar les vores dels "cercles" interiors.
  3. Després, vaig dissenyar una caixa amb les mateixes dimensions que la meva cera mecanitzable i hi vaig posar el negatiu del meu disseny fent servir el tall de la comanda de combinació.

Procés CAM

Després de tenir el disseny a punt per fresar amb la màquina CNC d'escriptori, vaig haver de generar el gcode per a això. En el meu cas, feia servir la màquina CNC Roland MDX-40.

  1. Primer, vaig entrar a l’entorn CAM de Fusion360.
  2. A continuació, he seleccionat una "configuració nova" al menú de configuració.
  3. He triat els paràmetres adequats (vegeu les imatges) i he premut bé.
  4. A continuació, al menú 3D, vaig triar la compensació adaptativa i vaig seleccionar els paràmetres adequats després d’inserir l’eina que vaig utilitzar tal com es mostra a les imatges.
  5. Per últim, vaig triar la compensació adaptativa i vaig fer clic al procés de publicació. Em vaig assegurar que era per a la màquina roland mdx-40 i vaig fer clic a D'acord per obtenir el gcode.
  6. Després d'això, he fresat el bloc de cera segons el meu disseny amb la màquina.

Fosa del silici

  1. En primer lloc, vaig barrejar amb cura les dues solucions de silici per no provocar bombolles d’aire, seguint el full de dades (enllaç que es troba als materials), tenint en compte la relació de mescla, la vida útil de l’olla i el temps de desemmotllament.
  2. Després, l’he abocat al motlle des del punt més baix assegurant-me que el punt de contacte es manté constant i que el diàmetre de la solució vessada sigui el més prim possible, per evitar bombolles d’aire.
  3. Després de llançar el silici al meu motlle, m’havia d’assegurar que no hi haguessin bombolles d’aire, així que vaig tremolar el motlle amb un trepant amb un clau oblic.
  4. Per últim, ja que m’oblidava de fer-ho en el meu disseny, vaig perforar forats al silici després que estigués a punt, amb les alicates de forat, de manera que coincidissin amb els forats que hi havia a la superfície de la palma.

Pas 5: Disseny i producció electrònica

Disseny i producció electrònica
Disseny i producció electrònica
Disseny i producció electrònica
Disseny i producció electrònica
Disseny i producció electrònica
Disseny i producció electrònica

Per tal de dissenyar la meva placa i entendre què passa als pins del microcontrolador, vaig haver de llegir-ne la fitxa tècnica. Com a PCB base, vaig utilitzar el micro satshakit i després el vaig modificar segons les necessitats del meu sistema.

Com que satshakit és una placa basada en arduino de bricolatge, podria modificar-la d'acord amb les meves cerques de connexions de les meves peces amb l'arduino. Per tant, el miosensor es connecta a l’arduino mitjançant un pin GND, un pin VCC i un pin analògic. Mentre que, un servomotor utilitza un pin GND, un pin VCC i un pin PWM. Per tant, vaig haver d’exposar en total sis pins GND i VCC tenint en compte l’alimentació de la placa, un analògic i cinc pins PWM. A més, vaig haver de tenir en compte per exposar els pins per a la programació de la placa (que són MISO, MOSI, SCK, RST, VCC i GND).

Els passos que vaig fer van ser:

  1. Primer, he descarregat els fitxers àguila del micro-satshakit.
  2. A continuació, vaig modificar el micro-satshakit segons les meves necessitats mitjançant Eagle. Aquí i aquí es pot trobar una guia sobre com utilitzar Eagle.
  3. Després d’arrelar el meu tauler, el vaig exportar com a fitxer-p.webp" />

Després de tenir els camins interns i externs del meu tauler com a PNG, és hora de generar-ne el gcode per poder fresar-lo a la màquina cnc d'escriptori roland mdx-40. Per a la generació del.gcode he utilitzat mòduls fab. Els paràmetres que s'han d'establir als mòduls fab i es poden trobar aquí.

Per últim, he soldat tot el que necessitava segons el meu tauler d’àguila. La imatge de l’esquema i del tauler soldat es pot trobar més amunt.

La raó per crear la meva pròpia placa PCB en lloc d’utilitzar un Arduino UNO és l’espai que estalvio quan faig servir la meva pròpia placa.

Pas 6: Muntatge

muntatge
muntatge
muntatge
muntatge
muntatge
muntatge

Així, després d’imprimir els dits:

  1. Vaig haver de perforar els forats interiors amb un trepant de 3,5 mm de diàmetre i els forats exteriors amb un trepant de 3 mm de diàmetre. Forats interiors que significa la part que quan les parts estan connectades és del forat interior i exterior, la part que quan està connectada és de l’exterior.
  2. Després d'això vaig haver de superpegar a primer amb el segon dit i el tercer amb el quart.
  3. Després, vaig connectar les parts 1 + 2 amb 3 + 4 amb 5 a través dels forats fent servir un filament de 3 mm de diàmetre.
  4. Per últim, els dits estaven preparats per muntar-se amb el palmell i després amb l’avantbraç.

Per tant, era el moment de passar la línia de pesca pels dits.

Una línia anava des de la part posterior del dit a través de la canonada del connector dit-palma fins a l'avantbraç i l'altra línia anava des del costat frontal del dit fins al forat de l'interior del palmell i fins a l'avantbraç

Una nota especial és passar la línia de pesca per un tros de fusta que té un forat amb el seu diàmetre i fer un nus. En cas contrari, quan es tira la línia, pot baixar pel dit, cosa que em va passar per molts nus que fes.

  • Després de passar la línia de pesca pels dits, el palmell i l'avantbraç haurien de connectar-se mitjançant uns cargols de bots impresos en 3D,
  • Vaig tornar a passar les línies per la ranura del forat tallat per làser per separar-les i després les vaig connectar als servomotors.
  • Fixar la línia de pesca a la posició correcta del servo és una mica difícil. Però el que vaig fer va ser prendre les posicions extremes del dit i connectar-lo a la posició extrema del servo.
  • Després de trobar les posicions correctes, he forat les ranures especials per als servos i he cargolat els servos als llocs adequats assegurant-me que dos dels servos estiguessin lleugerament elevats dels altres, en cas contrari xocarien durant el seu funcionament.

Pas 7: Programació

Programació
Programació

Abans d’escriure el programa, havia de fer que el micro-satshakit modificat es pogués programar. Per fer-ho, havia de seguir els passos següents:

  1. Connecteu l'Arduino Uno al PC.
  2. Seleccioneu el port adequat i la placa Arduino Uno a sota d'eines.
  3. A> Fitxer> Exemples, cerqueu i obriu l'esbós "ArduinoISP".
  4. Pengeu l'esbós a l'Arduino.
  5. Desconnecteu l'Arduino del PC.
  6. Connecteu la placa amb l'Arduino seguint l'esquema de la imatge.
  7. Connecteu l'Arduino al PC.
  8. Seleccioneu la placa "Arduino / Genuino Uno" i el programador "Arduino com a ISP".
  9. Feu clic a> Eines> Grava el carregador d'arrencada.
  10. Un cop finalitzat el carregador d’arrencada, podem escriure el nostre programa:

// inclosa la biblioteca que he utilitzat per als servomotors

#include #include SoftwareSerial mySerial (7, 8); #define MYO_PIN A0 int sensorValue; tensió flotant; // nomenar un nom al meu servo 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 (MYO); // el pin que he connectat el motor servo1.attach (THUMB_PIN); servo2.attach (INDEX_PIN); servo3.attach (PIN_MITJÀ); servo4.attach (RINGFINGER_PIN); servo5.attach (PINKY_PIN); defaultPosition (GRUIX, 40); defaultPosition (INDEX, 40); defaultPosition (MITJÀ, 40); defaultPosition (RINGFINGER, 40); defaultPosition (ROSA, 40); mySerial.begin (9600); mySerial.print ("Inicialitzant …"); } bucle buit () {sensorValue = analogRead (A0); voltatge = sensorValue * (5.0 / 1023.0); mySerial.println (voltatge); retard (100); if (voltatge> 1) {closePosition (PINKY, 60); closePosition (RINGFINGER, 60); closePosition (MITJÀ, 60); closePosition (ÍNDEX, 60); closePosition (POIX, 60); } else {openPosition (PINKY, 60); openPosition (RINGFIGER, 60); openPosition (MITJÀ, 60); openPosition (ÍNDEX, 60); openPosition (POIX, 60); }} void defaultPosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (90, _speed, true); else if (dit == RINGFINGER) servo4.write (70, _speed, true); else if (dit == MITJÀ) servo3.write (20, _speed, true); else if (dit == ÍNDEX) servo2.write (20, _speed, true); else if (dit == GRUIX) servo1.write (20, _speed, true); } void closePosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (180, _speed, true); else if (dit == RINGFINGER) servo4.write (180, _speed, true); else if (dit == MITJÀ) servo3.write (180, _speed, true); else if (dit == ÍNDEX) 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 (dit == RINGFINGER) servo4.write (0, _speed, true); else if (dit == MITJÀ) servo3.write (0, _speed, true); else if (dit == ÍNDEX) servo2.write (0, _speed, true); else if (finger == THUMB) servo1.write (0, _speed, true); } // Després d’escriure el programa, el penjem al tauler mitjançant> Sketch> Upload mitjançant Programador // Ara podeu desenganxar el vostre micro satshakit del vostre arduino i alimentar-lo mitjançant el banc d’energia // I voilà !! Tens un braç protètic

Recomanat: