Inicio » Aula » Tanque T34 robot

Tanque T34 robot

En esta entrada os quería mostrar el minitanque inspirado en el famoso carro soviético T-34 que presenté como robot para la asignatura de Robótica Móvil de la UPV.  Por Vicente Danvila Fraile.

En esta entrada os quería mostrar el minitanque inspirado en el famoso carro soviético T-34 que presenté como robot para la asignatura de Robótica Móvil de la UPV.

A modo de resumen, el robot está pensado para que realice las funciones de evitar obstáculos, fijar y disparar a blancos con el láser de su torreta y ser comandado remotamente mediante bluetooth. Además, es ampliable para que reproduzca sonidos y música. Más adelante veremos que no todas estas funciones pudieron ser implementadas por problemas con la alimentación y los sensores de ultrasonido.

 

LISTA DE COMPONENTES

  • Barcaza de tanque con motores y orugas de Aliexpress
  • 4 Pilas recargables AA 1,5 V
  • Arduino Nano/Arduino UNO
  • Modulo de potencia puente H L298N
  • 2 sensores ultrasonido HC-SR04
  • Módulo Bluetooth HC-06
  • Servomotor SG90 (para torreta)
  • Pieza impresa 3D (para torreta)
  • Diodo Láser (para cañón)
  • Tubo de plástico rotulador (para cañón)
  • Piezas de madera cortadas por láser (Chasis)
  • Cables

DISEÑO DE LA ESTRUCTURA

Barcaza

Para diseñar la estructura se partió de una barcaza con motores y orugas comercializada en Aliexpress. A partir de este componente, se escalaron el resto.

https://es.aliexpress.com/item/4000115994387.html?spm=a2g0s.9042311.0.0.1b7563c04dxGu2

Chasis superior

Una vez tenía las medidas de la base, pasé al diseño del chasis superior. Diseñé la estructura superior en AutoCAD para cortarla en madera mediante corte laser. Sin embargo, el diseño original no ensamblaba correctamente y le tuve que hacer modificaciones posteriores a la madera. El archivo .dwg que va adjunto a esta entrada ya está cambiado con las modificaciones que hice de forma manual. Sin embargo, no se descarta que haya que hacer alguna corrección manual más porque no se ha probado aún.

Para encajar la parte superior con la barcaza utilicé unos trozos de varilla de plástico y perforé la parte superior.

Para ensamblarlo todo utilicé una pistola de silicona termo fusible. La necesitareis porque con otros pegamentos no conseguiréis el mismo grado de robustez.

Torreta

Por otra parte, está la torreta basada en modelo 3D del tanque T34. Modifiqué este diseño para poder acoplar un servo en la parte inferior atornillado. Esta parte se tendría que imprimir en 3D. Adjunto el archivo .stl más abajo.

El cañón lo hice con un rotulador de plástico y en la punta coloqué diodo láser. Los cables los metí por dentro de la pieza 3D haciendo un agujero con el taladro.

El servo que utilicé es de 180º, pero se podría utilizar también uno de 360º, aunque habría que dejar más recorrido a los cables del láser del cañón.

Para acabar este apartado, mostraré algunas imágenes de cómo se ensamblaría todo:

ELECTRÓNICA

A nivel electrónico, haré algunos comentarios sobre los siguientes componentes:

  • Arduino UNO: podría haber utilizado también un Arduino Nano pero el UNO ya lo tenía. Tenía pines suficientes. Incluso me quedaban pines para conectar un módulo de lectura SD y una salida analógica a un altavoz pero no me dio tiempo a montarlo.
  • Módulo de potencia L298N: gracias a este módulo pude controlar la dirección y velocidad (mediante PWM) de los motores con facilidad. Sin embargo estos motores no funcionaban por debajo de una señal PWM de 160 (de 255).
  • Módulo Bluetooth HC-06: funciona bastante bien excepto cuando alguno de los otros componentes tiene un pico de consumo de corriente. Entonces el módulo a veces se desconecta y pierde la conexión. El problema con la alimentación del bluetooth y del procesador ha sido el gran problema que ha lastrado el trabajo. A mí no me dio tiempo, pero recomiendo que para próximos proyectos la alimentación de la electrónica (arduino, bluetooth y sensores) y de la potencia (motores, servo y láser) vayan separadas para evitar estos problemas.
  • Sensor Ultrasonidos SR-04: los sensores que compré la verdad es que me daban bastante malas medidas una vez montados, con bastante imprecisión y picos de señal. Pese que apliqué hasta un filtro Kalman entre otros algoritmos, hacia muy difícil obtener medidas fiables. Es posible que este problema estuviera también relacionado con el de la alimentación.

PROGRAMACIÓN

Programé el control con idea de que fuera ampliable y reutilizable con facilidad. Incluso escribí funciones que yo no uso pero por si a alguien le podían servir en el futuro.

El programa del bucle principal es bastante básico. Consiste en una máquina de estados en función de las medidas de los sensores de US para evitar colisiones y un estado de control remoto manual mediante la aplicación del móvil. Debido a los problemas mencionados, no pude depurar correctamente el control de evitar obstáculos, pero el control remoto funciona correctamente.

El principal aspecto a destacar del código es que está basado en las interrupciones del timer 2 de Arduino. Utilicé el timer 2 porque el timer 1 afectaba a la librería servo.h. El timer 2 afecta a la librería tone.h, pero no la utilizaremos en este proyecto.

Como iba diciendo, tanto la lectura de los sensores US, la recepción del bluetooth como el control de movimiento se actualiza mediante interrupciones internas ISR. A penas hay delays en este código. De hecho, llegué a crear la clase Timer para facilitar el uso de estas interrupciones.

Por último, la app de Android fue programada con AppInventor 2 y es bastante sencilla pero funciona bien (si el bluetooth no se desconecta por problemas de potencia). Los botones entran en acción si se activa el modo manual.

FUNCIONAMIENTO

Por desgracia no conseguí que el robot realizara correctamente todas las funcionalidades previstas que eran:

  • Evitar obstáculos
  • Localizar blancos y apuntar y disparar el láser
  • Reproducir música
  • Control remoto por bluetooth.

Os dejo un par de vídeos de lo que llegó a realizar. Probablemente con más tiempo pueda ir mejorándolo y corriendo errores.

HERRAMIENTAS NECESARIAS

  • Soldador y estaño
  • Pistola de silicona termo fusible
  • Lima (si hay que hacer correcciones)
  • Sierra (si hay que hacer correcciones)
  • Taladro (es necesario hacer alguno agujeros en la madera)
  • Multímetro (para hacer comprobaciones)
  • Tijeras (para cortar y pelar cable)
  • Ordenador con IDE Arduino

DOCUMENTOS ADJUNTOS Y CONTACTO

Dejo todos los archivos adjuntos (Autocad, diseño 3D, apk de AppInventor y códigos de Arduino) en este repositorio de GitHub:

https://github.com/vicentedf88/T34-robot-tank

Si alguien tuviera alguna duda sobre algo, puede preguntármelo sin problema por correo. Estaré encantado de poder ayudar.

vicentedf88@gmail.com