Tabla de contenido:

Serpiente robótica bioinspirada: 16 pasos (con imágenes)
Serpiente robótica bioinspirada: 16 pasos (con imágenes)

Video: Serpiente robótica bioinspirada: 16 pasos (con imágenes)

Video: Serpiente robótica bioinspirada: 16 pasos (con imágenes)
Video: Tema 3: Robótica inspirada en la naturaleza 2024, Mes de julio
Anonim
Image
Image

Me inspiré para comenzar este proyecto después de ver videos de investigación de serpientes robóticas trepadoras de árboles y anguilas robóticas. Este es mi primer intento de construir robots con locomoción serpentina, ¡pero no será el último! Suscríbete a YouTube si quieres ver desarrollos futuros.

A continuación, describo la construcción de 2 serpientes diferentes junto con los archivos para impresión 3D y una discusión sobre el código y los algoritmos para lograr un movimiento similar a una serpiente. Si desea continuar aprendiendo más, después de leer este instructivo, sugeriría leer los enlaces en la sección de referencias en la parte inferior de la página.

Este instructable es técnicamente un 2 en 1, ya que explico cómo hacer 2 versiones diferentes de una serpiente robótica. Si solo está interesado en construir una de las serpientes, ignore las instrucciones para la otra serpiente. Estas 2 serpientes diferentes serán referidas de aquí en adelante usando las siguientes frases indistintamente:

  1. Serpiente de un solo eje, serpiente 1D o serpiente amarilla y negra
  2. Serpiente de doble eje, serpiente 2D o serpiente blanca

Por supuesto, puede imprimir las serpientes en cualquier filamento de color que desee. La única diferencia entre las dos serpientes es que en la serpiente 2D cada motor gira 90 grados con respecto al anterior, mientras que en la serpiente 1D todos los motores están alineados en un solo eje.

Un prólogo final es que si bien cada una de mis serpientes tiene solo 10 servos, es posible hacer las serpientes con más o menos servos. Una cosa a considerar es que con menos servos lograrás un movimiento menos exitoso, y con más servos probablemente tendrás más éxito con el movimiento serpenteante, pero tendrás que considerar el costo, el consumo de corriente (ver comentarios posteriores) y la cantidad de pines. disponible en Arduino. Siéntase libre de modificar la longitud de la serpiente, sin embargo, tenga en cuenta que también deberá modificar el código para tener en cuenta este cambio.

Paso 1: componentes

Esta es una lista de partes para una sola serpiente, si desea hacer ambas serpientes, deberá duplicar el volumen de componentes.

  • 10 servos MG996R *
  • Filamento de impresión 3D de 1,75 mm
  • 10 rodamientos de bolas, número de pieza 608 (rescaté el mío del borde exterior de los fidget spinners Jitterspin)
  • 20 rodamientos de bolas pequeños, número de pieza r188, para las ruedas ** (rescaté el mío de la parte interior de los fidget spinners Jitterspin)
  • 40 tornillos de cabeza Philips 6-32 x 1/2 "(o similar)
  • 8 tornillos más largos (no tengo un número de pieza, pero tienen el mismo diámetro que los tornillos de arriba)
  • Al menos 20 piezas de zipties de 4 pulgadas (depende de usted cuántas desea usar)
  • 5 m de cable rojo y negro de calibre 20 o más grueso ***
  • Alambre estándar de calibre 22
  • 30 pines de cabezal macho (divididos en 10 lotes de 3)
  • Arduino Nano
  • Piezas impresas en 3D (consulte la siguiente sección)
  • Alguna forma de poder (consulte la sección: "Encendido de la serpiente" para obtener más información), personalmente utilicé una fuente de alimentación ATX modificada
  • Condensador electrolítico 1000uF 25V
  • Tubo termorretráctil de varios tamaños, soldadura, pegamento y otras herramientas diversas

* Puede utilizar otros tipos, pero deberá rediseñar los archivos 3D para que se ajusten a sus servos. Además, si intenta usar servos más pequeños como el sg90, es posible que descubra que no son lo suficientemente fuertes (no lo he probado y dependerá de usted experimentar).

** no es necesario usar rodamientos de bolas pequeños para las ruedas, solo tenía muchos por ahí. Alternativamente, puede usar ruedas LEGO u otras ruedas de juguete.

*** Este cable puede tener hasta 10 amperios a través de él, demasiado delgado y la corriente lo derretirá. Para más información, mira esta página.

Paso 2: componentes de impresión 3D

Asamblea de las serpientes
Asamblea de las serpientes

Si está haciendo el estampado de serpiente 1D, estas piezas.

Si está haciendo el estampado de serpiente 2D, estas piezas.

Nota importante: ¡La escala puede estar incorrecta! Diseño mis componentes en Fusion 360 (en unidades mm), exporté el diseño como un archivo.stl al software MakerBot y luego lo imprimí en una impresora Qidi Tech (una versión clonada de MakerBot Replicator 2X). En algún lugar de este flujo de trabajo hay un error y todas mis impresiones salen demasiado pequeñas. No he podido identificar la ubicación del error, pero tengo una solución temporal para escalar cada impresión al tamaño del 106% en el software MakerBot, esto soluciona el problema.

Teniendo en cuenta esto, tenga en cuenta que si imprime los archivos anteriores, es posible que se escalen incorrectamente. Sugiero imprimir solo una pieza y verificar si encaja con su servo MG996R antes de imprimirlos todos.

Si imprime alguno de los archivos, hágamelo saber cuál es el resultado: si la letra es demasiado pequeña, correcta, demasiado grande y en qué porcentaje. Al trabajar juntos como comunidad, podemos solucionar el problema de la ubicación del error utilizando diferentes impresoras 3D y cortadoras.stl. Una vez que se resuelva el problema, actualizaré esta sección y los enlaces anteriores.

Paso 3: Montaje de las serpientes

Asamblea de las serpientes
Asamblea de las serpientes
Asamblea de las serpientes
Asamblea de las serpientes
Asamblea de las serpientes
Asamblea de las serpientes

El proceso de ensamblaje es prácticamente el mismo para ambas versiones de la serpiente. La única diferencia es que en la serpiente 2D cada motor gira 90 grados con respecto al anterior, mientras que en la serpiente 1D todos los motores están alineados en un solo eje.

Comience desatornillando el servo, guarde los tornillos y retire las piezas superior e inferior del marco de plástico negro, ¡y tenga cuidado de no perder ninguno de los engranajes! Deslice el servo en el marco impreso en 3D, orientado como en las imágenes de arriba. Vuelva a colocar la parte superior de la caja del servo y atorníllela en su lugar con cuatro tornillos de 6-32 1/2 . Guarde la parte inferior del marco del servo (en caso de que quiera usarlo nuevamente en proyectos posteriores) y reemplácelo con el 3D caja impresa, la única diferencia es la perilla adicional para que se deslice un rodamiento de bolas. Enrosque el servo nuevamente, repita 10 veces.

IMPORTANTE: Antes de continuar debes cargar el código al Arduino y mover cada servo a 90 grados. Si no lo hace, podría romper uno o más servos y / o los marcos impresos en 3D. Si no está seguro de cómo mover un servo a 90 grados, consulte esta página. Básicamente, conecte el cable rojo del servo a 5V en el Arduino, el cable marrón a GND y el cable amarillo al pin digital 9, luego cargue el código en el enlace.

Ahora que cada servo está a 90 grados, continúe:

Conecte los 10 segmentos insertando la perilla impresa en 3D de una caja de servo en el orificio de una segunda pieza de segmento, luego, con un poco de fuerza, empuje el eje del servo en su orificio (vea las imágenes de arriba y el video para mayor claridad). Si está haciendo la serpiente 1D, todos los segmentos deben estar alineados, si está haciendo la serpiente 2D, cada segmento debe rotarse 90 grados con respecto al segmento anterior. Tenga en cuenta que la cola y el marco de la cabeza son solo la mitad de la longitud de los otros segmentos, conéctelos pero no comente las piezas en forma de pirámide hasta que hayamos terminado el cableado.

Coloque el brazo del servo en forma de X y atorníllelo en su posición. Deslice el rodamiento de bolas sobre la perilla impresa en 3D, esto requerirá apretar suavemente los 2 postes de semicírculo juntos. Dependiendo de la marca de filamento que use y la densidad del relleno, los postes pueden ser demasiado frágiles y quebradizos, no creo que este sea el caso, pero no use fuerza excesiva. Yo personalmente utilicé filamento PLA con un 10% de relleno. Una vez que el rodamiento de bolas está encendido, debe permanecer bloqueado por los voladizos de la perilla.

Paso 4: circuito

Circuito
Circuito
Circuito
Circuito
Circuito
Circuito

El circuito es el mismo para ambas serpientes robóticas. Durante el proceso de cableado, asegúrese de que haya suficiente espacio de cableado para que cada segmento gire por completo, especialmente en la serpiente 2D.

Arriba hay un diagrama de circuito para el cableado con solo 2 servos. Intenté hacer un dibujo de circuito con 10 servos pero estaba demasiado abarrotado. La única diferencia entre esta imagen y la vida real es que necesita cablear 8 servos más en paralelo y conectar los cables de señal PWM a los pines del Arduino Nano.

Al cablear las líneas eléctricas, utilicé una sola pieza de cable de calibre 18 (lo suficientemente grueso como para soportar 10 amperios) como la línea principal de 5 V que recorre la longitud de la serpiente. Usando pelacables, quité una pequeña sección de aislante en 10 intervalos regulares y soldé un trozo corto de cable de cada uno de estos intervalos a un grupo de 3 clavijas de cabezal macho. Repita esto por segunda vez para el cable GND negro de calibre 18 y un segundo pin de cabezal macho. Finalmente suelde un cable más largo al tercer pin del cabezal macho, este pin llevará la señal PWM al servo del Arduino Nano en la cabeza de la serpiente (el cable debe ser lo suficientemente largo para alcanzar, incluso cuando los segmentos se doblan). Conecte el tubo termorretráctil según sea necesario. Conecte los 3 pines del cabezal macho a los 3 pines del cabezal hembra de los cables del servo. Repita 10 veces para cada uno de los 10 servos. En última instancia, lo que esto logra es conectar los servos en paralelo y ejecutar cables de señal PWM al Nano. La razón de los pines de cabezal macho / hembra fue para que pueda desmontar segmentos fácilmente y reemplazar los servos si se rompen sin desoldar todo.

Suelde los cables GND y 5V a una placa de perforación de 3x7 orificios en la cola con un condensador y terminales de tornillo. El propósito del capacitor es eliminar los picos de consumo de corriente causados al iniciar los servos, que pueden restablecer el Arduino Nano (si no tiene un capacitor, probablemente pueda salirse sin él, pero es mejor estar seguro). Recuerde que la patilla larga de los condensadores electrolíticos debe conectarse a la línea de 5V y la patilla más corta a la línea GND. Suelde el cable GND al pin GND del Nano y el cable de 5V al pin de 5V. Tenga en cuenta que si está utilizando un voltaje diferente (consulte la siguiente sección), digamos una batería Lipo con 7,4 V, luego conecte el cable rojo al pin Vin, NO al pin 5V, al hacerlo se destruirá el pin.

Suelde los cables de señal 10 PWM a los pines del Arduino Nano. Conecté el mío en el siguiente orden, puede elegir conectar el suyo de manera diferente, pero recuerde que luego deberá cambiar las líneas servo.attach () en el código. Si no está seguro de lo que estoy hablando, simplemente transfiéralo de la misma manera que lo hice y no tendrá problemas. En orden desde el servo en la cola de la serpiente hasta la cabeza de la serpiente, conecté mis dos serpientes en el siguiente orden. Conexión de los pines de señal a: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.

Use zipties para limpiar el cableado. Antes de continuar, compruebe que todos los segmentos se puedan mover con suficiente espacio para que los cables se muevan sin separarse. Ahora que el cableado está hecho, podemos atornillar las tapas en forma de pirámide de la cabeza y la cola. Tenga en cuenta que la cola tiene un orificio para que salga la correa y la cabeza tiene un orificio para el cable de programación Arduino.

Paso 5: Encender la serpiente

Alimentando a la Serpiente
Alimentando a la Serpiente
Alimentando a la Serpiente
Alimentando a la Serpiente
Alimentando a la Serpiente
Alimentando a la Serpiente

Debido a que los servos están conectados en paralelo, todos obtienen el mismo voltaje, pero la corriente debe sumarse. Al mirar la hoja de datos de los servos MG996r, pueden extraer hasta 900 mA cada uno mientras están en funcionamiento (asumiendo que no se atascan). Por lo tanto, el consumo de corriente total si los 10 servos se mueven al mismo tiempo es 0.9A * 10 = 9A. Como tal, un adaptador de enchufe de pared normal de 5v, 2A no funcionará. Decidí modificar una fuente de alimentación ATX, capaz de 5v a 20A. No voy a explicar cómo hacer esto, ya que ya se ha discutido mucho en Instructables y YouTube. Una búsqueda rápida en línea le mostrará cómo modificar una de estas fuentes de alimentación.

Suponiendo que haya modificado la fuente de alimentación, es simplemente un caso de conectar una correa larga entre la fuente de alimentación y los terminales de tornillo en la serpiente.

Otra opción es utilizar una batería lipo integrada. No he probado esto, así que dependerá de usted diseñar un soporte para las baterías y conectarlas. Tenga en cuenta los voltajes de funcionamiento, el consumo de corriente de los servos y el Arduino (no suelde nada más que 5v a el pin de 5v en el Arduino, vaya al pin Vin si tiene un voltaje más alto).

Paso 6: prueba que todo funciona

Antes de continuar, probemos que todo funciona. Sube este código. Su serpiente debe mover cada servo individualmente entre 0-180 y luego terminar colocándose en línea recta. Si no es así, entonces algo está mal, lo más probable es que el cableado sea incorrecto o que los servos no estuvieran centrados inicialmente a 90 grados como se menciona en la sección "Ensamblaje de las serpientes".

Paso 7: Código

Actualmente no hay un control remoto para la serpiente, todo el movimiento está preprogramado y puedes elegir lo que quieras. Desarrollaré un control remoto en la versión 2, pero si desea controlarlo de forma remota, sugeriría buscar otros tutoriales sobre Instructables y adaptar la serpiente para que sea compatible con bluetooth.

Si está haciendo la serpiente 1D, cargue este código.

Si está haciendo la serpiente 2D, cargue este código.

Te animo a jugar con el código, hacer tus propios cambios y crear nuevos algoritmos. Lea las siguientes secciones para obtener una explicación detallada de cada tipo de locomoción y cómo funciona el código.

Paso 8: Escalas Vs Ruedas

Escalas Vs Ruedas
Escalas Vs Ruedas
Escalas Vs Ruedas
Escalas Vs Ruedas
Escalas Vs Ruedas
Escalas Vs Ruedas
Escalas Vs Ruedas
Escalas Vs Ruedas

Una de las principales formas en que las serpientes pueden avanzar es a través de la forma de sus escamas. Las escalas permiten un movimiento hacia adelante más fácil. Para una explicación más detallada, mire este video a partir de las 3:04 en adelante para ver cómo las escamas ayudan a la serpiente a avanzar. Mirando 3:14 en el mismo video muestra el efecto cuando las serpientes están en una manga, quitando la fricción de las escamas. Como se muestra en mi video de YouTube cuando la serpiente robótica 1D intenta deslizarse sobre la hierba sin escamas, no se mueve hacia adelante ni hacia atrás ya que las fuerzas suman un cero neto. Como tal, necesitamos agregar algunas escalas artificiales a la parte más vulnerable del robot.

La investigación sobre la recreación de la locomoción a través de escalas se realizó en la Universidad de Harvard y se demostró en este video. No pude idear un método similar para mover las escalas hacia arriba y hacia abajo en mi robot y, en su lugar, me conformé con colocar escalas pasivas impresas en 3D en el vientre.

Desafortunadamente, esto resultó ineficaz (ver en mi video de YouTube a las 3:38) ya que las escamas todavía rozaban la superficie de la alfombra en lugar de engancharse en las fibras y aumentar la fricción.

Si desea experimentar con las escalas que hice, puede imprimir los archivos en 3D desde mi GitHub. Si hace el suyo con éxito, hágamelo saber en los comentarios a continuación.

Utilizando un enfoque diferente, intenté usar ruedas hechas de rodamientos de bolas r188 con tubos termorretráctiles en el exterior como 'neumáticos'. Puede imprimir en 3D los ejes de las ruedas de plástico desde los archivos.stl en mi GitHub. Si bien las ruedas no son biológicamente precisas, son análogas a las escalas en que la rotación hacia adelante es fácil, pero el movimiento de lado a lado es significativamente más difícil. Puedes ver el resultado exitoso de las ruedas en mi video de YouTube.

Paso 9: Movimiento deslizante (serpiente de un solo eje)

Primer premio en el concurso Make it Move

Recomendado: