Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Robot hexápodo de hormiga Arduino

En este tutorial, le mostraré cómo construí un hexápodo Arduino. Como su nombre indica, el hexápodo tiene 6 patas pero además de eso, también tiene cola o abdomen, cabeza, antenas, mandíbulas e incluso ojos funcionales. Todo esto hace que el hexápodo parezca una hormiga, por lo que también podemos llamarlo Arduino Ant Robot.

Puede ver el siguiente video o leer el tutorial escrito a continuación.

Resumen

Para controlar el robot, hice una aplicación de Android personalizada. La app cuenta con 4 botones a través de los cuales podemos ordenar al robot que avance o retroceda, así como que gire a la izquierda o a la derecha. Junto con estas funciones principales, el robot también puede mover la cabeza y la cola, así como también puede morder, agarrar y soltar cosas e incluso atacar.

Como mencioné anteriormente, el robot tiene ojos funcionales, o diseñé específicamente la cabeza para que se ajuste a un sensor ultrasónico. Entonces, si intentamos tocar la cabeza del robot o acercar la mano al sensor, el robot se preparará inicialmente para un ataque.

Si retrocedemos, el robot desestimará el ataque, pero en caso de que le acerquemos la mano, nos atacará y nos morderá. Entonces, ¿qué tan genial es eso? Quédate y descubrirás exactamente cómo lo construyo y cómo funciona todo.

Arduino Hexapod – Modelo 3D de robot hormiga

Como de costumbre, comencé diseñando el hexápodo utilizando un software de modelado 3D. El hexápodo tiene 6 patas y cada una de ellas consta de 3 articulaciones o 3 servos. Eso significa que necesitamos un total de 18 servos y en mi caso usé los servos MG996R.

En la parte trasera tenemos la cola que es impulsada por otro servo MG996R. La cabeza de este robot hormiga tiene dos grados de libertad, o puede girar e inclinarse, y nuevamente es impulsada por dos servos más. Así que necesitamos un total de 21 servos para este proyecto, tipo MG996R y, además, un micro servo SG90 más pequeño para las mandíbulas.

Aquí también tenemos los ojos de la hormiga que están diseñados para adaptarse a un sensor ultrasónico HC-SR04. Todas las partes están ensambladas entre dos placas y, además, hice una cubierta curva interesante para la placa superior para ocultar todo el cableado, el Arduino y la batería entre las dos placas.

Puede buscar y descargar este modelo 3D, así como explorarlo en su navegador en Thangs.

Archivos STL:

Impresión 3D de las piezas

Supongo que ya sabes lo que sigue, y eso es la impresión 3D de las piezas del robot. Utilicé la impresora 3D Creality CR-10 para todas las impresiones e hizo un gran trabajo. La parte más difícil de imprimir fue la cabeza, porque quería que fuera una sola impresión.

Para ello, tuve que utilizar un ángulo de voladizo de soporte de 60 grados, así como algunos bloqueadores de soporte. De todos modos, la Creality CR-10 hizo un gran trabajo y el cabezal resultó perfecto.

Ensamblaje del Arduino Hexapod

Una vez que tengamos todas las partes impresas, podemos continuar con el ensamblaje del hexápodo. Empecé con el montaje de las piernas. Para asegurar los servos a las piezas impresas utilicé pernos y tuercas M3, así como arandelas elásticas. La longitud de los pernos debe ser de al menos 12 mm y en mi caso usé pernos de 16 mm de largo.

Necesitamos alrededor de 200 tornillos para todo el montaje. Para conectar los enlaces entre sí, usamos las bocinas redondas que vienen con el paquete de servos como accesorios. Sin embargo, necesitamos perforar agujeros de 3 mm en cada uno de ellos para que los pernos puedan pasar, o podemos usar cuernos redondos de metal que tienen roscas M3 y se pueden comprar por separado.

Al asegurar los enlaces a los servos, debemos asegurarnos de conectarlos siempre en la misma posición y que tengan el rango completo de movimiento.

Deberíamos notar aquí que los servos tienen un pequeño soporte triangular en la parte superior que necesita ser removido. Usé un cuchillo utilitario simple para hacer eso, así que de esa manera los servos pueden colocarse flash con las partes impresas. Antes de insertar el tercer servo en su lugar, primero debemos insertar un perno M4 que se usará para conectar la pata con la placa base.

Así es como debería verse el ensamblaje de las patas. En realidad, es muy fácil ensamblarlo, pero ahora necesitamos cinco más.

Una vez que tengamos todas las patas listas, podemos pasar a instalarlas en el cuerpo del robot, o las dos placas. Primero, debemos asegurar los cuernos redondos en la plataforma superior usando el mismo método que antes, con pernos y tuercas M3. Luego, simplemente podemos conectarlos a los ejes de los servos usando los pernos, pero antes de hacerlo, debemos ajustar la posición de los servos para que estén exactamente en el medio.

Esto es necesario para que podamos obtener el rango completo de movimiento de los servos y también reducirá el ajuste o el proceso de calibración al programar el Arduino.

Después de asegurar las patas, este proyecto ya comenzó a tomar forma y parecerse a un hexápodo.

Hay una bocina redonda más en la parte trasera y es para el servo de cola que también debe asegurarse en este punto.

A continuación, debemos colocar el hexápodo boca abajo y así podremos insertar la placa inferior a través de los tornillos M4 de las patas. Luego le aseguré las patas con unas arandelas planas y tuercas autoblocantes. Debemos tener cuidado con cuánto apretamos estos pernos porque en realidad son las juntas de pivote y las patas también deberían poder girar mientras están lo suficientemente seguras.

A continuación, debemos instalar el primer servo para la cabeza y eso es para el movimiento de balanceo. Este servo debe colocarse perpendicular a las placas base, por lo que hice dos placas pequeñas que primero se aseguran al servo. Luego podemos insertar el servo entre las dos placas y podemos asegurarlo fácilmente con los tornillos y tuercas M3.

Luego tenemos un soporte en forma de U y aquí necesitamos unir dos cuernos redondos para conectar los dos servos para la cabeza. Nuevamente, antes de asegurar el soporte al servo de balanceo, debemos asegurarnos de que la posición del servo esté en el medio para que pueda girar 90 grados en ambas direcciones.

El siguiente es el soporte del servo de inclinación. Entonces, aquí primero debemos insertar un perno M4 y asegurarlo al soporte en forma de U. Antes de montar el motor de inclinación, también debemos insertar cuatro pernos M3 que luego se usarán para asegurar la cabeza. Luego, podemos insertar el servo de inclinación en el soporte y colocar con cuidado el eje en la bocina redonda. Está un poco apretado aquí, pero el soporte en forma de U puede flexionarse un poco.

Por último, debemos asegurar el servo con los tornillos M3 y con eso se completa el mecanismo de la cabeza. Ahora puede rodar e inclinarse.

Antes de acoplar el cabezal al mecanismo necesitamos premontarlo, o acoplar las mandíbulas con el pequeño servo SG90 y el sensor ultrasónico. Nuevamente, está un poco apretado aquí, pero aun así logré insertar la primera mandíbula y asegurarla a la cabeza con un perno M4.

Puede notar que hay un pequeño orificio en el área de los ojos que está diseñado específicamente para que podamos pasar un destornillador para apretar el perno.

Luego va el micro servo en su lugar y se asegura con dos tornillos. En la segunda mandíbula, primero debemos colocar un cuerno de brazo pequeño para el servo SG90.

Luego, podemos insertar la mandíbula en su lugar, emparejar los dos engranajes y asegurarla al eje del motor con un destornillador.

A continuación, podemos colocar el sensor ultrasónico en su lugar. Los orificios para los ojos están hechos exactamente para encajar en el sensor ultrasónico, así que simplemente usé unas gotas de pegamento AC para asegurar el sensor a la cabeza.

Hay un detalle más que agregar a la cabeza y son las antenas. Para ello utilicé alambre de garrapata de 3 mm, lo corté unos 13 cm de largo y lo doblé ligeramente para conseguir la forma deseada. Nuevamente usé unas gotas de pegamento AC para asegurarlos a la cabeza. Finalmente podemos unir la cabeza al mecanismo de giro e inclinación con los cuatro pernos que insertamos anteriormente.

La cabeza ahora es completamente funcional, puede rodar, inclinarse e incluso puede morder. Hay dos piezas impresas en 3D más para instalar. Esa es la cola que puede simplemente deslizarse en el soporte de la cola y la cubierta curva que realmente usaremos al final para cubrir la electrónica. Esta es la apariencia final de nuestro robot hormiga y me gusta mucho cómo quedó en esta combinación de colores azul y blanco.

Diagrama del circuito del robot Arduino Ant

Bien, ahora podemos continuar con la electrónica. Aquí está el diagrama de circuito de este proyecto que en realidad es simple aunque parece un poco complejo debido a las muchas conexiones de servos.

Además de los 22 servos, necesitamos un módulo Bluetooth HC-05 para la comunicación con el teléfono inteligente y algunos condensadores y resistencias. Por supuesto, el cerebro del robot es una placa Arduino, y en este caso es Arduino Mega porque es la única placa que puede controlar más de 12 servos utilizando la biblioteca Servo.

Tutorial relacionado: Cómo funcionan los servomotores y cómo controlar los servos con Arduino

Para alimentar el robot usaré una batería LiPo 3S que tiene un voltaje de alrededor de 12V. Las baterías LiPo pueden manejar una mayor cantidad de consumo de corriente, por lo que son adecuadas para este proyecto porque si todos los servos se activan al mismo tiempo a plena carga, pueden consumir alrededor de 10 amperios de corriente. Sin embargo, el voltaje de funcionamiento de los servos está limitado de 4,8 a 7,2 V, lo que significa que necesito usar un convertidor reductor de CC-CC para convertir los 12 V a 5 V. Incluso en caso de que usemos una batería LiPo 2S que tiene un voltaje de alrededor de 7,4 V u 8,4 V cuando está completamente cargada, todavía necesitamos usar un convertidor reductor. El convertidor reductor que usaré para este proyecto puede manejar hasta 8 amperios de corriente, pero recomendaría usar uno de 10 a 15 A solo para estar seguro de que tendrá suficiente energía y no se sobrecalentará. En mi caso, el consumo máximo de corriente que noté del robot cuando se movía fue de alrededor de 6 amperios.

Puede obtener los componentes necesarios para este proyecto en los siguientes enlaces:

  • Servomotor MG996R………………………….….
  • Microservomotor SG90 ……..…….….…….
  • Módulo Bluetooth HC-05 ………………….… 
  • Megaplaca Arduino ………………………….….
  • Batería LiPo 3S ……………………..………….. 
  • Convertidor reductor CC-CC ……………………….

Diseñando un PCB para Arduino Hexapod

Ahora, si intentamos conectar todo junto, será un gran lío debido a las muchas conexiones de servo. Por lo tanto, diseñé una PCB personalizada utilizando el software gratuito de diseño de circuitos en línea EasyEDA. Este PCB en realidad actuará como un Arduno Mega Shield para el Hexapod porque podremos conectarlo directamente en la parte superior del Arduino Mega Board. Dispuse las conexiones de los servos una cerca de la otra e incluí dos condensadores grandes junto a ellos para mantener el voltaje más estable. También incluí una conexión para un módulo transceptor NRF24L01 por si queremos controlar el robot mediante un radiocontrol. Hay varias conexiones de clavijas digitales y analógicas, conexiones de 5 V y tierra, dos conexiones de LED, así como una conexión para monitorear el voltaje de la batería. El voltaje de la batería de 12 V pasará a través de un divisor de voltaje compuesto por dos resistencias R1 y R2 que reducirán el voltaje por debajo de 5 V para que el pin analógico pueda leerlo con seguridad. De esta forma sabremos cuándo será necesario recargar la batería.

Aquí hay un enlace a los archivos de proyecto de este diseño de PCB. Entonces, una vez que terminé el diseño, generé el archivo Gerber necesario para fabricar la PCB.

Archivo Gerber:

Luego ordené el PCB de JLCPCB, que en realidad es el patrocinador de este video.

Aquí podemos simplemente arrastrar y soltar el archivo Gerber y una vez cargado, podemos revisar nuestro PCB en el visor de Gerber. Si todo está bien, podemos continuar y seleccionar las propiedades que queremos para nuestra PCB. En este caso, elegí que el color de la PCB fuera azul para que coincidiera con el color de la placa Arduino. Y eso es todo, ahora podemos pedir simplemente nuestro PCB a un precio razonable. Tenga en cuenta que si es su primer pedido de JLCPCB, puede obtener hasta 10 PCB por solo $2.

Después de varios días han llegado los PCB. La calidad de los PCB es excelente y todo es exactamente igual que en el diseño.

Ensamblaje de la PCB

Ok, ahora podemos continuar y ensamblar la PCB. Empecé por soldar los cabezales de pines macho a la PCB que se usan para conectarla a la placa Arduino. Una vez que colocamos los encabezados de los pines en la parte inferior, podemos usar algún tipo de placa para sujetar los pines y voltear el tablero. Ahora tenemos que soldarlos todos a la PCB. Una vez terminado con eso, podemos continuar con las conexiones del servo para las cuales también necesitamos cabezales macho.

En este punto, podemos insertar los encabezados de los pines para todas las conexiones y usar el mismo método para voltear la PCB y soldarle todos los pines. Al final necesitamos soldar las resistencias, los capacitores y los bloques de terminales. Y listo, ya está listo el Arduino Mega Shield para nuestro robot hormiga. Ahora simplemente podemos insertarlo en la placa Arduino.

A continuación, debemos configurar el voltaje de salida del convertidor reductor a 5V. Podemos hacerlo ajustando el potenciómetro del convertidor reductor. Puede notar aquí que agregué un interruptor de encendido a la entrada y conecté la batería de 12 V al pin de 12 V en la PCB que se usará solo para monitorear el voltaje de la batería.

Recuerda que la entrada principal a la PCB debe ser de 5V.

Entonces ahora podemos insertar los componentes electrónicos entre las dos placas. Una vez más, está un poco apretado, pero aún podemos colocar todo. Primero va la batería, que la aseguré con una cinta, y encima va el Arduino junto con el PCB que hicimos. A continuación podemos conectar el transceptor NRF24L01 o solo el módulo Bluetooth según el tipo de comunicación que vayamos a utilizar. También inserté un LED para indicar cuándo la batería necesita recargarse, o en caso de que el voltaje caiga por debajo de 11V voltios. Por último, necesitamos conectar todos los servos a los pines del servo. Mientras hace esto, asegúrese de anotar a qué número de pin conectó cada servo. Después de conectar todos los servos, simplemente podemos colocar la cubierta curva en la placa superior y ya hemos terminado con este proyecto.

Código Arduino Hexapod

Lo que queda por hacer en este video es ver cómo funciona el programa Arduino. Como el código es un poco más largo, para una mejor comprensión, publicaré el código fuente del programa en secciones con descripción para cada sección. Y al final de este artículo publicaré el código fuente completo.

Entonces, para controlar los servos, usaremos la biblioteca Servo básica y, para la comunicación Bluetooth, también debemos incluir la biblioteca SoftwareSerial. Primero, debemos definir todos los objetos servo, así como algunas variables necesarias para el programa a continuación.

#include <Servo.h>
#include <SoftwareSerial.h>

#define trigPin 7
#define echoPin 6
#define ledB 10

SoftwareSerial Bluetooth(12, 9); // Arduino(RX, TX) - HC-05 Bluetooth (TX, RX)

// Create servo object
Servo s24;
Servo s23;
Servo s22;Code language: Arduino (arduino)

En la sección de configuración, debemos inicializar la comunicación Bluetooth, los modos de pin para el sensor ultrasónico, el LED y también definir los pines a los que se conectan los servos.

void setup() {
  Serial.begin(38400);
  Bluetooth.begin(38400); // Default baud rate of the Bluetooth module
  Bluetooth.setTimeout(1);
  delay(20);
  pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
  pinMode(echoPin, INPUT); // Sets the echoPin as an Input
  pinMode(ledB, OUTPUT);
  // Head
  s15.attach(36, 600, 2400);
  s14.attach(35, 600, 2400);
  s13.attach(34, 600, 2400); //grip
  // Tail
  s5.attach(26, 600, 2400); // Tail
  // Leg 4
  s10.attach(31, 600, 2400);
  s11.attach(32, 600, 2400);
  s12.attach(33, 600, 2400); //rot
  // Leg 5
  s7.attach(28, 600, 2400);
  s8.attach(29, 600, 2400);
  s9.attach(30, 600, 2400); //rot
  // Leg 6
  s1.attach(22, 600, 2400);
  s2.attach(23, 600, 2400);
  s3.attach(24, 600, 2400); //rot
  // Leg 1
  s18.attach(39, 600, 2400);
  s17.attach(38, 600, 2400);
  s16.attach(37, 600, 2400); //rot
  // Leg 2
  s21.attach(42, 600, 2400);
  s20.attach(41, 600, 2400);
  s19.attach(40, 600, 2400); //rot
  // Leg 3
  s24.attach(45, 600, 2400);
  s23.attach(44, 600, 2400);
  s22.attach(43, 600, 2400); //rotCode language: Arduino (arduino)

Luego usando las funciones write() movemos los servos a su posición inicial. Aquí es donde podemos calibrar nuestros servos. Tenga en cuenta que no podrá configurar cada servo en la posición exacta al ensamblar el robot, pero aquí podemos hacer ajustes y averiguar nuestros valores iniciales y desde allí podemos programar el movimiento del robot.

// == Move to initial position
  // Head
  s15.write(72);
  s14.write(50);
  s13.write(90); // Grip
  
  s5.write(65); // Tail
  
  // Leg 4
  s10.write(65);
  s11.write(35);
  s12.write(40);
  // Leg 5
  s7.write(80);
  s8.write(50);
  s9.write(25);
  // Leg 6
  s1.write(90);
  s2.write(45);
  s3.write(60);

  // Leg 1
  s18.write(60);
  s17.write(90);
  s16.write(100);
  // Leg 2
  s21.write(50);
  s20.write(85);
  s19.write(75);
  // Leg 3
  s24.write(50);
  s23.write(80);
  s22.write(80);Code language: Arduino (arduino)

Cuando se trata de programar un movimiento de hexápodo, hay varias formas de hacerlo, como usar una cinemática directa o inversa. Estos métodos incluyen algunas matemáticas serias en las que la posición de cada articulación se calcula en función de las entradas para la posición final deseada del cuerpo. Sin embargo, decidí hacerlo un poco menos complicado porque de todos modos los servos que estoy usando no son lo suficientemente buenos para tal tarea. Eso es porque mis servos son la versión barata del servo MG996R. No tienen el par correcto y no siempre se posicionan exactamente en la posición deseada.

Así que echemos un vistazo a cómo hice que el hexápodo caminara. Hice una función personalizada separada para mover cada pierna. Un ciclo de pierna incluye dos fases, llamadas swing y stance. En la fase de balanceo, la pierna se mueve desde una posición inicial a una posición final a través del aire, mientras que en la fase de apoyo, la pierna se mueve desde la posición final de regreso a la posición inicial con el efector final de la pierna tocando el suelo. De esta manera el cuerpo del hexápodo avanzará.

Entonces programo manualmente las posiciones de cada servo para lograr estos movimientos usando el bucle principal y algunos contadores.

void moveLeg1() {
  // Swign phase - move leg though air - from initial to final position
  // Rise the leg
  if (i1L1 <= 10) {
    s18.write(60 - i1L1 * 2);
    s17.write(90 - i1L1 * 3);
    i1L1++;
  }
  // Rotate the leg
  if (i2L1 <= 30) {
    s16.write(100 - i2L1);
    i2L1++;

  }
  // Move back to touch the ground
  if (i2L1 > 20 & i3L1 <= 10) {
    s18.write(40 + i3L1 * 2);
    s17.write(60 + i3L1 * 3);
    i3L1++;
  }
  // Stance phase - move leg while touching the ground
  // Rotate back to initial position
  if (i2L1 >= 30) {
    s16.write(70 + i4L1);
    i4L1++;
    l1status = HIGH;
  }
  // Reset the counters for repeating the process
  if (i4L1 >= 30) {
    i1L1 = 0;
    i2L1 = 0;
    i3L1 = 0;
    i4L1 = 0;
    i5L1 = 0;
  }
  // Each iteration or step is executed in the main loop section where there is also a delay time for controlling the speed of movement
}Code language: Arduino (arduino)

Primero, los dos servos externos elevan la pata y el tercer servo conectado al cuerpo comienza a girar en una dirección particular. Cuando el tercer servo está 10 pasos antes de que deje de girar, comenzamos a mover los dos servos exteriores hacia atrás en la misma posición para tocar el suelo. Esto completa la fase de balanceo, o la pierna movida desde su posición inicial a la final. Luego giramos hacia atrás el tercer servo desde la posición final a la inicial, y eso completa la fase de postura. Después de que el tramo ejecuta un ciclo, los contadores se reinician y el tramo repetirá el ciclo una y otra vez. Cada iteración o paso se ejecuta en la sección de bucle principal donde también hay un tiempo de retraso que controla la velocidad de los servos. Hice funciones como esta para todas las demás piernas, así como algunas funciones adicionales para mover las piernas en dirección opuesta para lograr movimientos hacia atrás, hacia la izquierda y hacia la derecha. De manera similar, usando contadores para llevar la cuenta de los pasos, programé el resto de las funciones, como mover la cabeza, mover la cola, las mandíbulas, etc.

Entonces, por ejemplo, si queremos mover el robot hacia adelante, debemos llamar a las seis funciones personalizadas moveLeg() que se repetirán constantemente en el ciclo principal.

// Move forward
  if (m == 2) {
    moveLeg1();
    moveLeg3();
    moveLeg5();
    if (l1status == HIGH) {
      moveLeg2();
      moveLeg4();
      moveLeg6();
    }
  }Code language: Arduino (arduino)

Puede notar que las 3 patas están desplazadas, por lo que cuando la pierna número 1, 3 y 5 están en fase de balanceo, las otras tres patas, 2, 4 y 6 están en fase de apoyo. En caso de que queramos movernos a la izquierda, llamamos a las funciones moveLeft() apropiadas.

Estos comandos en realidad provienen del módulo Bluetooth o de la aplicación de Android personalizada de nuestro teléfono inteligente.

// Check for incoming data
  if (Bluetooth.available() > 0) {
    dataIn = Bluetooth.read();  // Read the dataCode language: Arduino (arduino)

Aplicación Arduino Ant Robot para Android

Echemos un vistazo a la aplicación ahora y veamos qué tipo de datos está enviando realmente al Arduino. Creé la aplicación usando la aplicación en línea MIT App Inventor y así es como funciona.

Entonces, los gráficos de la aplicación son en realidad imágenes que hice y coloqué como botones. En la parte inferior tenemos un control deslizante para controlar la velocidad del robot y en la parte superior tenemos los botones para conectar con el módulo Bluetooth.

Echemos un vistazo al programa o los bloques detrás de la aplicación.

Entonces, por ejemplo, si hacemos clic en el botón Adelante, se ejecutarán los bloques en la declaración "si". Eso significa que enviaremos el número 2 al Arduino y eso ejecutará el conjunto de funciones de avance. Al mismo tiempo podemos notar que cambiamos la imagen del botón a la otra versión resaltada de la misma imagen. Si volvemos a pulsar el mismo botón, ahora se ejecutarán los bloques de la sentencia “else” y eso enviará el número 0 al Arduino que reiniciará todos los contadores y moverá el robot a sus posiciones iniciales. También retrocedemos la imagen inicial de ese botón. Así que utilicé el mismo principio para todos los demás botones.

Aquí hay un archivo de descarga del proyecto MIT App Inventor anterior, así como la aplicación de Android lista para instalar en su teléfono inteligente:

Echemos un vistazo a dos funciones más en el programa Arduino y ese es el monitor de voltaje de la batería y el sensor ultrasónico.

// Monitor the battery voltage
    int sensorValue = analogRead(A3);
    float voltage = sensorValue * (5.00 / 1023.00) * 2.9; // Convert the reading values from 5v to suitable 12V i
    Serial.println(voltage);
    // If voltage is below 11V turn on the LED
    if (voltage < 11) {
      digitalWrite(ledB, HIGH);
    }
    else {
      digitalWrite(ledB, LOW);
    }Code language: Arduino (arduino)

Entonces, si el voltaje de la batería es inferior a 11 voltios, encenderemos el LED y si el sensor ultrasónico detecta un objeto a menos de 40 cm, el robot se preparará para un ataque.

// Get the distance from the ultrasonic sensor
    if (getDistance() > 40) {
      att = 0;
    }
    if (getDistance() <= 40) {
      att = 1;
      dataIn = 99;
    }Code language: Arduino (arduino)

En caso de que ya no haya un objeto enfrente, descartará el ataque y si el objeto aún está presente y más cerca de la cabeza, el robot atacará.

// If there is an object in front of the sensor prepare for attack
  if (att == 1) {
    prepareAttack();
    if (aStatus == HIGH) {
      while (a == 0) {
        delay(2000);
        a = 1;
      }
      if (getDistance() > 30) {
        att = 2;
        a = 0;
        aStatus = LOW;
        initialPosHead();
      }
      if (getDistance() < 30) {
        att = 3;
        a = 0;
        aStatus = LOW;
        initialPosHead();
      }
    }
  }
  // If there is no longer object in front, dismiss the attack
  if (att == 2) {
    dismissAttack();
    if (aStatus == HIGH) {
      dataIn = 0;
      att = 0;
    }
  }
  // If there is closer to the sensor attack
  if (att == 3) {
    attack();
    if (attStatus == HIGH) {
      while (aa == 0) {
        delay(2000);
        aa = 1;
      } attStatus = LOW;
    }
    if (aStatus == HIGH) {
      while (a == 0) {
        delay(2000);
        a = 1;
      }
      dataIn = 0;
      att = 0;
      initialPosHead();
    }
  }Code language: Arduino (arduino)

Así que eso es prácticamente todo para este video.

Aquí puede descargar el código completo para este proyecto Arduino Hexapod:

Tenga en cuenta que si decide construir este proyecto, debe estar preparado para enfrentar algunos desafíos. El mayor problema para mí fue el bajo rendimiento de los servos que utilicé. Espero que hayas disfrutado este video y hayas aprendido algo nuevo. No dude en hacer cualquier pregunta en la sección de comentarios a continuación y consulte mi Colección de proyectos de Arduino.


Proceso de manufactura

  1. Robot Raspberry Pi controlado por Bluetooth
  2. Obstáculos que evitan el robot con servomotor
  3. Robot seguidor de línea
  4. Controlar un robot Roomba con Arduino y un dispositivo Android
  5. Robot controlado por voz
  6. Robot de piano controlado por Arduino:PiBot
  7. Littlearm 2C:Construya un brazo robótico Arduino impreso en 3D
  8. Robot asistente doméstico autónomo
  9. Controla el brazo del robot Arduino con la aplicación de Android
  10. Robot para navegación interior supercogedora
  11. WiDC:Robot FPV controlado por Wi-Fi