Robot de cuatro patas controlado por Arduino





Estoy activamente interesado en los robots y recientemente hice un robot bípedo impulsado por Arduino. Después de eso, quise hacer un robot de cuatro patas que imitara a animales como perros o gatos. En este artículo hablaré sobre el diseño y montaje de un robot de cuatro patas.



El objetivo principal de este proyecto era hacer que el sistema fuera lo suficientemente confiable para que durante el experimento con diferentes modos de caminar no tuviera que preocuparme por posibles fallas del equipo. Esto me permitió llevar al robot al límite, dándole pasos complejos y diferentes movimientos. Un objetivo adicional era hacer un prototipo relativamente económico utilizando componentes listos para usar e impresión 3D para la creación rápida de prototipos. Juntos, estos dos objetivos proporcionan una base sólida para varios experimentos y el desarrollo de robots de cuatro patas más especializados con objetivos más específicos: navegación, evitación de obstáculos, adaptación dinámica del movimiento.



























Paso 1: proceso de diseño e información general















Desarrollé el robot en el software gratuito de modelado 3D de Autodesk - Fusion 360. Comencé importando los servomotores alrededor de los cuales dibujé piernas y un torso. Luego diseñé los soportes de sujeción del motor para darles un segundo punto de sujeción, diametralmente opuesto al eje. Los ejes a cada lado del motor le dan resistencia a la estructura y eliminan la posibilidad de torcerse cuando las patas están cargadas. Los cojinetes se insertan en soportes especiales y los pernos se utilizan como eje en los soportes. Después de que los soportes se unen a los ejes con una tuerca, el rodamiento proporciona un punto de pivote seguro en el lado opuesto del servomotor al eje.



Otro objetivo durante el desarrollo fue hacer el modelo lo más compacto posible para aprovechar al máximo el par de los servomotores. Los brazos se dimensionaron para proporcionar la máxima movilidad con una longitud mínima. Si los hiciera demasiado cortos, los soportes chocarían entre sí, lo que reduciría la movilidad. Si se hace demasiado largo, los motores tendrían que aplicar un par innecesario. Por último, pero no menos importante, diseñé la carcasa del robot con accesorios para Arduino y otros componentes electrónicos. He proporcionado soportes adicionales en la parte superior del panel para expandir el proyecto en el futuro. Algún día será posible agregar sensores de distancia, cámaras u otros mecanismos para el robot, por ejemplo, pinzas.



Paso 2: materiales necesarios











Lista de materiales necesarios para crear su propio robot cuadrúpedo con tecnología Arduino. Todos los componentes son comunes y están disponibles.



Electrónica:

  • Arduino Uno x 1.
  • Servomotor Towerpro MG995 x 12.
  • Arduino Sensor Shield (tengo la versión 4, pero recomiendo comprar la versión 5).
  • Cables de conexión, 10 uds.
  • MPU6050 IMU (opcional).
  • Sensor de distancia ultrasónico (opcional).




Componentes:

  • Rodamientos (8x19x7 mm, 12 uds.).
  • Pernos y tuercas M4.
  • Plástico para impresora 3D.
  • Plexiglás 4 mm.




Herramientas

  • impresora 3d.
  • Cortador láser.




La mayor parte de los residuos se gastan en 12 servomotores. Sin embargo, recomiendo no usar motores de plástico baratos, ya que se rompen con demasiada facilidad. Excepto por las herramientas, todo junto me costó $ 60.



Paso 3: componentes impresos















Los componentes del robot tuvieron que desarrollarse especialmente; para ello, aprovechamos las capacidades del diseño digital y CAD. La mayoría de los componentes están impresos en 3D y algunos están cortados de una hoja de plexiglás de 4 mm. Impreso al 40% de cobertura, 2 perímetros, boquilla de 0,4 mm, altura de capa de 0,1 mm con PLA. Algunos de los componentes requieren puntales debido a su forma compleja con partes que sobresalen, pero son accesibles y fáciles de quitar con cortadores de alambre. Puedes elegir el color según tu gusto. A continuación se muestra una lista de componentes y enlaces STL para imprimir, así como dibujos en 2D para el cortador.



Componentes para impresión 3D:

  • Soporte del servomotor femoral x 2.
  • Soporte de espejo del servomotor femoral x 2.
  • Soporte para servomotor de rodilla x 2.
  • Soporte de rodilla del servomotor de espejo x 2.
  • Soporte de cojinete x 2.
  • Soporte de cojinete de espejo x 2.
  • Piernas x 4.
  • Soportes de servomotor x 4.
  • Soportes de cojinetes x 4.
  • Hardware Arduino x 1.
  • Accesorio de sensor de distancia x 1.
  • Sujetadores de esquina x 4.
  • Casquillo de cojinete x 4.
  • Servo lavadora x 24.




Componentes para corte por láser:

  • Panel de montaje de servo x 2.
  • Panel superior x 1.




En total, se deben imprimir 30 piezas, excluidas las diversas lavadoras, y el número total de piezas producidas digitalmente es 33. Imprimí todo en 30 horas.



content.instructables.com/ORIG/FBK/9YPN/KFZEKVED/FBK9YPNKFZEKVED.rar



content.instructables.com/ORIG/FZS/65E0/KFZEKVEE/FZS65E0KFZEKVEE.pdf



Paso 4: preparación de los soportes de rodamientos















Si comienza a ensamblar con ciertos componentes, todo el proceso será más rápido. Puedes empezar con los titulares. Para hacer esto, primero lije los orificios dentro del soporte y luego inserte el rodamiento al ras. Tuve que imprimir en 3D algunas arandelas porque los pernos que venían con los motores eran demasiado largos y golpeaban los motores durante el funcionamiento.



Paso 5: prepare los soportes del servomotor















Para montar la rodillera, simplemente inserte el perno en el orificio y apriete con la tuerca. Esta articulación actuará como el segundo eje del motor. Enrosque los dos pernos a través de los orificios de la abrazadera del muslo y apriete con las tuercas. Luego, tome el soporte del servo doblado y fíjelo a la parte elevada del soporte con dos tuercas. Finalmente, tome el casquillo del rodamiento e inserte el rodamiento en él. Es posible que deba lijar un poco la superficie interior de la manga. Las fotos adjuntas muestran las diferentes etapas de montaje.



Paso 6: ensamblar las patas































Una vez que haya ensamblado todos los soportes y soportes, puede comenzar a ensamblar sus piernas. Primero atornille los servomotores a los soportes con tornillos y tuercas. Alinee el eje del motor con el perno que sobresale del otro lado.



Luego conecte el servomotor de muslo al servomotor de rodilla con el soporte. No apriete la tuerca todavía; más tarde, es posible que deba recortar algo. En el otro lado, asegure los soportes con dos cojinetes a los pernos que sobresalen con tuercas.



Recoge las cuatro patas así.



Paso 7: ensamblar el torso



Ahora puedes empezar a armar el torso. Contiene cuatro servomotores que brindan el tercer grado de libertad para las piernas. Comience con 4 pernos M4 que aseguran los motores al panel cortado con láser.



Monte los servomotores de modo que los ejes apunten hacia afuera; vea las fotos.



Luego atornille los soportes de las esquinas a ambos lados del panel. Ayudan a sujetar de forma segura el panel de montaje del motor al panel superior.



Con todos los soportes asegurados, fije el panel del motor al panel superior. Comience con los pernos exteriores ubicados en la parte delantera y trasera. Los pernos en el medio sostienen el soporte Arduino al mismo tiempo. Ver fotos al principio de la sección. Coloque el panel Arduino en el panel superior para que los pernos pasen por los orificios de los soportes de las esquinas.



Paso 8: ponerlo todo junto



































Cuando las piernas y el torso están ensamblados, el robot se puede ensamblar. Asegure las patas a los cuatro servomotores usando los soportes angulares unidos al soporte del servomotor femoral. Finalmente, use soportes de cojinetes para apoyar el eje opuesto en el soporte del muslo. Pase el eje a través del cojinete y asegúrelo con una tuerca. Fije los soportes de cojinetes al panel superior con tornillos y tuercas.



El robot de cuatro patas está listo.



Paso 9: cables y electrónica











































Decidí usar una placa de expansión para conectar el protector del sensor, donde hay contactos para los servomotores. Recomendaría su quinta versión: hay un conector separado para conectar la alimentación externa. Pero mi tablero no tenía esta opción. Lo estudié y me di cuenta de que consume 5 V de potencia de la placa Arduino (cuando se trata de consumidores tan poderosos como los servomotores, esta es una idea terrible que puede dañar el Arduino). Resolví este problema doblando hacia atrás el pin de 5V para que no se conecte al riel de alimentación de Arduino. De esta manera, puede dar energía externa al pin de 5V sin dañar el Arduino.



Las siguientes son las conexiones para los servomotores y los contactos de la placa. Nota: Hip1Servo son servomotores de cadera conectados al torso. Hip2Servo: servomotores de cadera conectados a la pierna. KneeServo - servomotores de rodilla.



Pierna 1 (delantera izquierda):



Hip1Servo - 2

Hip2Servo - 3

KneeServo - 4



Pierna 2 (delantera derecha):



Hip1Servo - 5

Hip2Servo - 6

KneeServo - 7



Pierna 3 (trasera izquierda):



Hip1Servo - 8

Hip2Servo - 9

KneeServo - 10



pies 4 (trasero derecho):



Hip1Servo - 11

Hip2Servo - 12

KneeServo - 13



Paso 10: configuración inicial











Antes de comenzar a programar movimientos complejos, es necesario configurar las posiciones iniciales para cada servomotor. Le darán al robot un punto de referencia desde el que construir diferentes movimientos.



Para evitar daños accidentales a los motores, primero puede quitar los soportes de esquina de los motores. Luego cargue el código en Arduino (enlace a continuación). El código gira todos los servomotores a la posición de 90 °. Luego atornille los soportes hacia atrás para que todas las piernas estén absolutamente niveladas y los servomotores conectados al torso estén perpendiculares al panel superior.



Es posible que algunas uniones no estén perfectamente alineadas. Luego, deberá corregir los valores de la matriz zeroPositions ubicada en la cuarta línea del código. Cada número representa la posición cero del servomotor correspondiente (su orden es el mismo que aparece en la lista de conexiones de Arduino). Juega con los valores hasta que tus piernas estén perfectamente rectas.



Por ejemplo, obtuve los siguientes valores:



int zeroPositions[12] = {93, 102, 85, 83, 90, 85, 92, 82, 85, 90, 85, 90};




content.instructables.com/ORIG/F9K/WO73/KFZEKX13/F9KWO73KFZEKX13.ino



Paso 11: un poco sobre cinemática















Para obligar al robot a realizar acciones útiles (caminar, correr y otras), las trayectorias de movimiento deben estar programadas para los servomotores. Estas son las trayectorias por las que se mueve el efector (en nuestro caso, la pierna). Esto puede lograrse de dos formas:

  1. . , – .
  2. , . . , , . , , . . , , pos, , , , .




12:







Una vez que haya terminado de conectarse e inicializar, puede comenzar a programar su robot y darle trayectorias geniales para realizar tareas interesantes. En el código de la cuarta línea, cambie los valores a los que genera en el paso de inicialización. Después de cargar el código, el robot debería comenzar a caminar. Si nota que las direcciones de algunas articulaciones están invertidas, cambie el valor correspondiente en la matriz en la línea 5 (-1 a 1 y viceversa).



content.instructables.com/ORIG/FA6/3ZNJ/KFZEKX4Y/FA63ZNJKFZEKX4Y.ino



Paso 13: resumen y calendario de experimentos



























El robot puede dar pasos de 2 a 5 cm de largo. La velocidad al caminar también varía. El robot es una plataforma confiable para experimentar con la marcha y otras cosas como saltar o realizar tareas complejas. Recomiendo cambiar las trayectorias de movimiento, experimentar diferentes andares, ver cómo afectan el trabajo del robot. He proporcionado varios soportes en la parte superior del torso para que se puedan conectar allí sensores como un telémetro o un sensor de inercia. Puedes intentar arreglar algo de agarre allí.



All Articles