Tabla de contenido:

Brazo protésico trabajando con un myosensor: 8 pasos
Brazo protésico trabajando con un myosensor: 8 pasos

Video: Brazo protésico trabajando con un myosensor: 8 pasos

Video: Brazo protésico trabajando con un myosensor: 8 pasos
Video: Gest un impresionante dispositivo para controlar todo con la mano 2024, Noviembre
Anonim
Image
Image

Este proyecto es el desarrollo de una prótesis de brazo para personas amputadas. El objetivo de este proyecto es la creación de una prótesis de brazo asequible para personas que no pueden pagar una prótesis profesional.

Como este proyecto aún se encuentra en la fase de creación de prototipos, siempre puede ser mejor, ya que por ahora solo puede abrir y cerrar la palma para poder agarrar cosas. Sin embargo, es una prótesis de brazo de bricolaje que se puede hacer en casa o en un fabuloso laboratorio local.

Paso 1: Materiales, herramientas y máquinas necesarios

Máquinas:

  1. impresora 3d
  2. Cortador láser
  3. Máquina CNC de escritorio

Instrumentos:

  1. Sedal
  2. Filamento de 3 mm
  3. Taladro
  4. Super pegamento
  5. Alicates para agujeros
  6. Multimetro
  7. Estación de soldadura
  8. Cera mecanizable
  9. Silicona para moldes

Materiales:

  1. Lámina de cobre
  2. 1x ATMEGA328P-AU
  3. 1x cristal de 16 MHz
  4. 1x resistencia de 10k
  5. Condensadores de 2x 22pF
  6. Condensador 1x 10uF
  7. Condensador 1x 1uF
  8. Condensador 1x 0.1uF
  9. 1x Myosensor
  10. 5x micro servomotores
  11. 1x Arduino UNO

Software:

  1. IDE de Arduino
  2. Fusion360
  3. Cura
  4. Águila
  5. CAÑUTILLO

Paso 2: Diseño 2D y 3D

Diseño 2D y 3D
Diseño 2D y 3D
Diseño 2D y 3D
Diseño 2D y 3D
Diseño 2D y 3D
Diseño 2D y 3D

Diseño 3D

El primer paso fue diseñar los dedos, la palma y el antebrazo del brazo protésico teniendo en cuenta la electrónica que iría en el brazo protésico. Para ser honesto, utilicé como base el proyecto inmoov de código abierto y comencé desde allí.

La palma es una parte bastante difícil de diseñar, ya que los dedos deben tener diferentes proporciones entre ellos. Entonces:

Dedos: descargué los dedos del proyecto inmoov.

Palma:

  1. Primero dibujé el diseño de la palma y lo extruí.
  2. Luego hice agujeros para las conexiones del dedo y el antebrazo usando bocetos, el comando de corte y el comando de empalme.
  3. Después de eso, tuve que hacer tubos para poder pasar las líneas de pesca y poder controlar los dedos a través de los motores.
  4. Por último, se tuvieron que agregar agujeros dentro de la palma para que el cierre de la palma fuera posible cuando se tiraba del hilo de pescar.

Antebrazo:

  1. En diferentes planos, creé dos bocetos y usé el comando elipse. Usé el comando loft después para crear la forma deseada.
  2. Después, el comando shell se usó para hacerlo hueco y el comando split para cortarlo por la mitad para poder diseñar en él y para la mejor accesibilidad para cuando esté montando mis dispositivos electrónicos en el interior.
  3. También se hizo un boceto cerca de la muñeca, extruido y unido con el antebrazo principal para que pueda conectar con la palma.
  4. Teniendo la visibilidad para diseñar dentro del antebrazo, creé un boceto en las dimensiones de los cinco motores que estaría usando, uno para cada dedo, y mi PCB (placa de circuito impreso) que estaría usando. Luego los extruí hasta que alcanzaron la altura deseada y eliminé las partes innecesarias en la parte posterior del cilindro usando el retroceso.
  5. Por último, se diseñaron aberturas para pernos, de una manera que no son tan visibles en el diseño general, para que el antebrazo pueda cerrarse usando comandos similares a los anteriores.

Terminando el diseño, seleccioné cada cuerpo y lo descargué como un archivo.stl y los imprimí en 3D por separado.

Diseño 2D

Como quería que mis líneas de pesca estuvieran separadas mientras estaban siendo operadas por los motores, decidí hacerles ranuras de guía. Para esto, realmente no tuve que diseñar nada nuevo, pero usé la elipse más pequeña para cuando usé el comando loft para crear el antebrazo.

Exporté su boceto como un archivo.dxf después de usar el cortador láser. Una vez que obtuve la forma deseada, perforé orificios de 0,8 mm dentro de la ranura que encontré necesarios.

Paso 3: Impresión 3D

Impresión 3d
Impresión 3d
Impresión 3d
Impresión 3d
Impresión 3d
Impresión 3d
Impresión 3d
Impresión 3d

Después de exportar cada archivo stl, usé Cura para generar el.gcode de las diferentes partes de los dedos, la palma y el antebrazo. Los ajustes utilizados se ilustran en las imágenes de arriba. El material de las piezas impresas en 3D es PLA.

Paso 4: moldeado y fundición

Moldeado y fundición
Moldeado y fundición
Moldeado y fundición
Moldeado y fundición
Moldeado y fundición
Moldeado y fundición

El propósito del yeso de la palma es que el brazo protésico tenga un agarre más fuerte ya que el PLA podría ser resbaladizo.

Diseño 3D

  1. Usando el boceto preexistente de la palma, traté de imitar nuestra palma diseñando una especie de círculos usando el comando arco.
  2. Después, los extruí a diferentes alturas y usé el comando de empalme para suavizar los bordes de los "círculos" internos.
  3. Luego, diseñé una caja con las mismas dimensiones que mi cera mecanizable y coloqué el negativo de mi diseño usando el corte en el comando Combinar.

Proceso CAM

Después de tener el diseño listo para ser fresado usando la máquina CNC de escritorio, tuve que generar el gcode para eso. En mi caso, ¡estaba usando la máquina CNC Roland MDX-40!

  1. Primero, entré al entorno CAM de Fusion360.
  2. Luego, seleccioné una "nueva configuración" en el menú de configuración.
  3. Elegí los parámetros correctos (ver imágenes) y presioné ok.
  4. A continuación, en el menú 3D, elegí el borrado adaptativo y seleccioné los parámetros correctos después de insertar la herramienta que utilicé como se muestra en las imágenes.
  5. Por último, elegí la compensación adaptativa e hice clic en el proceso de publicación. Me aseguré de que fuera para la máquina roland mdx-40 e hice clic en Aceptar para obtener el gcode.
  6. Después de eso, fresé el bloque de cera de acuerdo con mi diseño usando la máquina.

Fundiendo el silicio

  1. Primero, mezclé las dos soluciones de silicio con cuidado para no causar burbujas de aire, siguiendo la hoja de datos (enlace que se encuentra en los materiales), teniendo en cuenta la proporción de mezcla, la vida útil y el tiempo de desmoldeo.
  2. Luego, lo vertí en mi molde desde el punto más bajo asegurándome de que el punto de contacto se mantuviera constante y el diámetro de la solución vertida fuera lo más delgado posible, para evitar burbujas de aire.
  3. Después de colocar la silicona en mi molde, tuve que asegurarme de que no hubiera burbujas de aire en el interior, así que hice temblar el molde con un taladro con un clavo oblicuo.
  4. Por último, como me olvidé de hacerlo en mi diseño, hice agujeros en mi silicona después de que estuvo lista, usando los alicates para agujeros, de manera que coincidieran con los agujeros que estaban en la superficie de la palma.

Paso 5: Diseño y producción de electrónica

Diseño y producción de electrónica
Diseño y producción de electrónica
Diseño y producción de electrónica
Diseño y producción de electrónica
Diseño y producción de electrónica
Diseño y producción de electrónica

Para diseñar mi placa y entender qué está pasando en los pines del microcontrolador, tuve que leer la hoja de datos de la misma. Como PCB base, utilicé el micro satshakit y luego lo modifiqué según las necesidades de mi sistema.

Como satshakit es una placa de bricolaje basada en arduino, podría modificarla de acuerdo con mis búsquedas de conexiones de mis partes con el arduino. Entonces, el myosensor se conecta al arduino usando un pin GND, un pin VCC y un pin analógico. Considerando que, un servomotor usa un pin GND, un pin VCC y un pin PWM. Entonces, tuve que exponer en total seis pines GND y VCC teniendo en cuenta la alimentación de la placa, uno analógico y cinco pines PWM. Además, tuve que tomar en consideración exponer los pines para la programación de la placa (que son MISO, MOSI, SCK, RST, VCC y GND).

Los pasos que tomé fueron:

  1. Primero, descargué los archivos eagle del micro-satshakit.
  2. A continuación, modifiqué el micro-satshakit de acuerdo con mis necesidades usando Eagle. Puede encontrar una guía sobre cómo usar Eagle aquí y aquí.
  3. Después de rootear mi tablero, lo exporté como un archivo-p.webp" />

Luego de tener las rutas internas y externas de mi placa como png, es momento de generar el gcode de las mismas para poder fresarlo en la máquina cnc de escritorio roland mdx-40. Para la generación del.gcode utilicé módulos fab. Las configuraciones que deben establecerse en los módulos fab y se encuentran aquí.

Por último, soldé todo lo que necesitaba según mi tablero de águila. La imagen del esquema y la placa soldada se puede encontrar arriba.

La razón para hacer mi propia placa PCB en lugar de usar un Arduino UNO es el espacio que estoy ahorrando cuando uso mi propia placa.

Paso 6: Montaje

Montaje
Montaje
Montaje
Montaje
Montaje
Montaje

Entonces, después de que se imprimieron los dedos:

  1. Tuve que perforar los agujeros interiores con un taladro de 3,5 mm de diámetro y los agujeros exteriores con un taladro de 3 mm de diámetro. Agujeros interiores significa la parte que cuando las partes están conectadas es desde el agujero interior y exterior, la parte que cuando está conectada es desde el exterior.
  2. Después tuve que pegar con superpegamento al primero con el segundo dedo y al tercero con el cuarto.
  3. Después de eso, conecté las partes 1 + 2 con 3 + 4 con 5 a través de los pequeños orificios usando un filamento con un diámetro de 3 mm.
  4. Por último, los dedos estaban listos para ensamblarse con la palma y luego con el antebrazo.

Entonces, llegó el momento de pasar el hilo de pescar entre los dedos.

Una línea iba desde la parte posterior del dedo a través del tubo en el conector dedo-palma y hasta el antebrazo y la otra línea iba desde la parte frontal del dedo hasta el orificio en el interior de la palma y el antebrazo

Una nota especial es pasar el hilo de pescar a través de un trozo de madera que tenga un agujero con el diámetro del mismo y hacer un nudo. De lo contrario, cuando se tira de la línea, puede bajar por el dedo, lo que me sucedió sin importar cuántos nudos hice.

  • Después de que el hilo de pescar se pasa a través de los dedos, la palma y el antebrazo deben estar conectados por algunos pernos de bots impresos en 3D,
  • Pasé las líneas nuevamente a través de la ranura del orificio cortado con láser para separarlas y luego las conecté a los servomotores.
  • Colocar el hilo de pescar en la posición correcta del servo es un poco desafiante. Pero lo que hice fue tomar las posiciones extremas del dedo y conectarlo a la posición extrema del servo.
  • Después de encontrar las posiciones correctas, taladré agujeros en las ranuras especiales para los servos y atornillé los servos en los lugares correctos asegurándome de que dos de los servos estuvieran ligeramente elevados de los demás, de lo contrario chocarían durante su funcionamiento.

Paso 7: programación

Programación
Programación

Antes de escribir el programa, tuve que hacer que el micro-satshakit modificado se pudiera programar. Para hacer eso, tuve que seguir los pasos a continuación:

  1. Conecte el Arduino Uno a la PC.
  2. Seleccione el puerto correcto y la placa Arduino Uno en herramientas.
  3. En> Archivo> Ejemplos, busque y abra el boceto "ArduinoISP".
  4. Sube el boceto al Arduino.
  5. Desconecta el Arduino de la pc.
  6. Conecte la placa con el Arduino siguiendo el esquema de la imagen.
  7. Conecta el Arduino a la pc.
  8. Seleccione la placa "Arduino / Genuino Uno" y el programador "Arduino como ISP".
  9. Haga clic en> Herramientas> Grabar cargador de arranque.
  10. Una vez que el gestor de arranque se haya realizado correctamente, podemos escribir nuestro programa:

// incluida la biblioteca que utilicé para los servomotores

#include #include SoftwareSerial mySerial (7, 8); #define MYO_PIN A0 int sensorValue; voltaje de flotación; // asignar un nombre a mi 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 pin THUMB_PIN); // el pin que conecté a mi motor servo1.attach (THUMB_PIN); servo2.attach (INDEX_PIN); servo3.attach (MIDDLE_PIN); servo4.attach (RINGFINGER_PIN); servo5.attach (PINKY_PIN); defaultPosition (THUMB, 40); defaultPosition (INDICE, 40); defaultPosition (MIDDLE, 40); defaultPosition (RINGFINGER, 40); defaultPosition (ROSA, 40); mySerial.begin (9600); mySerial.print ("Inicializando …"); } bucle vacío () {sensorValue = analogRead (A0); voltaje = sensorValue * (5.0 / 1023.0); mySerial.println (voltaje); retraso (100); if (voltaje> 1) {closePosition (ROSA, 60); closePosition (RINGFINGER, 60); closePosition (MIDDLE, 60); closePosition (INDICE, 60); closePosition (PULGAR, 60); } else {openPosition (ROSA, 60); openPosition (RINGFIGER, 60); openPosition (MEDIO, 60); openPosition (INDICE, 60); openPosition (PULGAR, 60); }} void defaultPosition (uint8_t dedo, uint8_t _speed) {if (dedo == PINKY) servo5.write (90, _speed, true); else if (dedo == RINGFINGER) servo4.write (70, _speed, true); else if (dedo == MIDDLE) servo3.write (20, _speed, true); else if (dedo == INDICE) servo2.write (20, _speed, true); else if (dedo == THUMB) servo1.write (20, _speed, true); } void closePosition (uint8_t dedo, uint8_t _speed) {if (dedo == PINKY) servo5.write (180, _speed, true); else if (dedo == RINGFINGER) servo4.write (180, _speed, true); else if (dedo == MIDDLE) servo3.write (180, _speed, true); else if (dedo == INDICE) servo2.write (180, _speed, true); else if (dedo == THUMB) servo1.attach (180, _speed, true); } void openPosition (uint8_t dedo, uint8_t _speed) {if (dedo == PINKY) servo5.write (0, _speed, true); else if (dedo == RINGFINGER) servo4.write (0, _speed, true); else if (dedo == MIDDLE) servo3.write (0, _speed, true); else if (dedo == INDICE) servo2.write (0, _speed, true); else if (dedo == THUMB) servo1.write (0, _speed, true); } // Después de escribir el programa, lo subimos al tablero mediante> Sketch> Cargar usando Programmer // Ahora puedes desconectar tu micro satshakit de tu arduino y alimentarlo a través del banco de energía // ¡¡Y listo !! Tienes un brazo protésico

Recomendado: