Diario del proyecto - LiamSaboridoSueiro/Mecatronica-Proyecto GitHub Wiki

En esta página de la Wiki estaremos escribiendo el progreso de nuestro proyecto!

Índice del Proyecto de Robot Kantam

  1. Introducción
  2. Primeros pasos
  3. Consiguiendo los componentes
  4. Preparando el entorno de desarrollo
  5. Probando componentes
  6. Control del robot
  7. Investigación sobre ruedas
  8. Servos para control del robot
  9. Avances con el modelado 3D
  10. Ideas sobre las ruedas
  11. Más avances sobre modelado 3D y mecanismos
  12. Avances montaje del robot
  13. Ideas para el mecanismo del brazo
  14. Pintando el robot
  15. Servo de 180 a 360
  16. Mecanismo para acceder al interior
  17. Ultimos avances antes de la presentacion

Introducción

Nuestra idea es recrear el robot Kantam de la serie de Shin Chan, aquí dejamos un ejemplo

Boceto

Queremos que nuestro robot dispare sus puños, pueda desplazarse y se le iluminen los ojos, probablemente añadamos más cosas, pero de momento esta es la idea principal.

Encontramos el modelo 3d que adaptaremos para poder meterle todos los componentes que creamos necesarios.

Primeros pasos

Queríamos pensar el mecanismo para poder expulsar los puños y mover el robot, teniendo en cuenta el espacio con el que contamos dentro del robot. Se crearon unos bocetos pensando en lo factible hacerlo. Tomamos como referencia las pistolas de ventosas.

Boceto

También quisimos ver videos de referencia y hasta se ha llegado a comprar una para estudiar el mecanismo más de cerca:

Imagen 1 Imagen 2

Con estas cosas miradas llegamos a una idea final que será la que probemos próximamente:

Imagen 1 Imagen 2

Consiguiendo los componentes

Para poder tener todos los materiales para nuestra idea, hemos bajado al laboratorio a por dos kits de arduino plus, battery shields y por amazon se han pedido unas esp32. También contamos con más componentes cada uno. En cuanto tengamos todos los materiales iremos probando el funcionamiento de todo.

Boceto

Boceto

Preparando el entorno de desarrollo

Estuvimos investigando en distintos páginas y vídeos para averiguar si era posible programar la esp32 desde Visual Studio Code, encontramos que la extensión PlataformIO IDE nos dejaba hacer esto. Se nos complicó un poquito (unos más que a otros) la instalación del mismo porque tiene muchas dependencias. Algunos enlaces que hemos consultado y que pueden resultar de utilidad son:

  1. Getting Started with ESP32 - Step-By-Step Tutorial
  2. Standard Toolchain Setup for Linux and macOS
  3. Adding User to dialout or uucp on Linux
  4. Install Python Interpreter
  5. Programming an ESP32 using VS Code
  6. PlatformIO IDE for VSCode
  7. platform-espressif32

También nos ayudó reiniciar Visual Studio.

Hemos usado este código de prueba, que está subido al repo, para comprobar su funcionamiento.

Probando componentes

Estos días hemos estado investigando cómo poner en funcionamiento los servos y el motor (que nos vienen en un kit de arduino que nos dieron en el laboratorio) para comprobar la compatibilidad de los componentes. A parte de esto queríamos ver cuál era el mínimo número de elementos necesarios para que funcionara el robot sin tener que ocupar mucho espacio.

Aquí tenemos el circuito que hemos usado para un motor:

Boceto

Más adelante subiremos videos de las pruebas que estuvimos haciendo.

Como apunte extra las librerías necesarias para el funcionamiento de estos componentes usando PlataformIO IDE se descargan a través de la propia extensión

Control del robot

Estuvimos pensando en cómo controlar el robot porque hay varias opciones para hacerlo. Barajamos entre una aplicación móvil (bluetooth o wifi) o manejarlo con un mando bluetooth. Buscando código por internet se nos hizo más fácil controlarlo con un mando porque podemos añadir más funcionalidades de manera intuitiva, a parte de que quedaría más como un robot de juguete.

Para conectar el mando de PS4 (o cualquiera de los que acepte la librería que uses) a la ESP32 mediante Bluetooth, usamos la librería BluePad32.

Pasos para realizar la configuración

  1. Instalación de librerías y configuración:

    • Instalar los gestores de placas para ESP32 y BluePad32 en el Arduino IDE.
    • Agregar las URLs en las preferencias del IDE para tener acceso a estas librerías.
    • Instalar las placas: ESP32 de Expressive Systems y BluePad32.
  2. Elegir la placa:

    • Seleccionar la placa correcta desde el menú de la ESP32, como la DOIT ESP32 Devkit V1.
  3. Subir el código de ejemplo:

    • Utilizar un sketch de ejemplo de BluePad32 para conectar el controlador.
    • El código tiene tres secciones clave:
      • dump gamepad: Muestra en el monitor serie los botones del controlador y sus valores.
      • process gamepad: Aquí es donde se puede agregar el código para activar componentes, como motores o LEDs.
      • setup: Definir los pines del ESP32 y conectar elementos como servos o LEDs.
  4. Probar y mapear los botones:

    • Conectar el controlador y abrir el monitor serie para ver los valores que se generan al presionar los botones.
    • Anotar los valores específicos de los botones, joysticks, etc., para asignarlos a las funciones de tu proyecto.
  5. Control de componentes:

    • Asignar cada botón o joystick del controlador a una acción en el ESP32, como encender un LED o mover un servo.
    • Hacer pruebas para verificar que el controlador y la ESP32 interactúan correctamente.

Nos costó un poco poder controlar los dos motores a la vez porque el cableado es mucho y te puedes perder fácilmente. Después de rehacerlo 5 veces, por lo menos, conseguimos que fueran los dos motores a la vez. Lo hicimos con el controlador L2930D porque era el controlador más pequeño del que disponíamos (tenemos que ahorrar todo el espacio que podamos).

Al final estuvimos unos cuantos días entre motores y mando, pero consiguimos que funionase. Aquí dejamos su funcioanmiento:

prueba_mando_motores.mp4

Le añadimos una pila de 9v para que tuviera más potencia el circuito, aunque todavía tenemos que ver cómo vamos a gestionar las baterías dentro del robot. Queremos que se parezca lo máximo posible a la serie, pero que funcione bien y entre todo. Esta es la disposición de las baterías en la serie:

shinchan_kantam_pila1

shinchan_kantam_pila2

Investigación sobre ruedas

Los últimos días estuvimos mirando cómo incorporaríamos las ruedas al robot Kantam, ya que tenemos un espacio reducido. Siempre tuvimos en mente que fueran unas rudas de oruga (tipo tanque) que son las más estables siendo ruedas pequeñas. No sabíamos si queríamos impirmir también la base de las ruedas o comprar la goma, estuvimos mirando estos diseños en thingverse:

Nos quedan estas cosas por hacer:

  • adaptar diseño 3d a nuestro robot
  • empezar a modificar diseño 3d
  • buscar piezas
  • comprar piezas
  • comprobar voltaje para esp, motores y servos

Servos para control del robot

La última vez que estuvimos haciendo el sistema de movimiento del robot solo añadimos los motores con control del mando, pero ahora hemos probado los servos.

Nuestra idea con los servos era que sirvieran para el sistema de gatillo del brazo, por lo que solo necesitamos que se mueva un cacho por un botón.

Adjuntataré videos próximamente que se nos olvidó grabarlo.

Avances con el modelado 3D

Como queríamos empezar a imrpirmir y comprobar los tamaños, cómo encajarían las cosas, etc. Nos metimos de lleno a modificarlo los modelados. Intentamos pasar los modelos a FreeCAD, pero se nos hizo más dificil trabajar con ellos en blender, que al haber tenido una asinatura entera con blender estábamos más familiarizados.

El primer paso fue vaciarlos, que también fue una pelea para hacerlo con la forma del modelo. Al final pudimos vaciar exitósamente todas las piezas. Todavía estamos trabajando en cómo implimentar el mecanismo del gatillo disparador para el puño, tenemos que imprimir y hacer pruebas a ver qué funciona.

Con las piernas igual, tenemos varias ideas ya que queremos mantenernos lo más fiel posible al modelo original, teniendo en cuanta que tiene que ser mucho más grande porque no podemos hacer piezas a medida.

Ideas sobre las ruedas

La idea que se tuvo al principio fue usar el zapato como cubierta. Esto hace que quede más grande el pie de lo que debería, pero que no se vea el sistema de dentro y pueda parecerse lo máximo posible al robot original. Después de encontrar el modelo de ruedas de oruga con un solo motor tuvimos completamente claro como debía ser el diseño final de la pierna.

idea_rueda

Más avances sobre modelado 3D y mecanismos

Links de consulta de modelados 3d:

Estos modelados los hemos usado para a la hora de modelar poder tener en cuenta los tamaños de los componentes. De esta manera no hemos tenido que estar tomando medidas y trabajando con medidas para pruebas.

Para el mecanismo del brazo usar el mecanismo de boli de click:

Avances montaje del robot

Estuvimos varias semanas imprimiendo en 3D y testeando modelos. Ya tenemos casi todo el robot completado, nos falta el brazo.

Aquí dejamos algunas fotos del proceso de impresión y prueba.

image

Lo primero que imprimimos fue una de las piernas, como estábamos aprendiendo a configurar la impresión tardamos 1 día y 17 horas en tenerla impresa. Mientras que la segunda fue un día.

carcasa ruedas partes decorativas
carcasa ruedas mala impresion ruedas

Para ser nuestra primera vez imprimiendo tuvimos muy pocos problemas, pero si salieron unos cuantos.

pecho y cabeza practicamente todo el robot menos el mecanimo del brazo

Empezar a ver piezas grandes juntas y ver que solo nos quedaba el brazo fue bastante satisfactorio.

WhatsApp.Video.2024-11-23.at.20.34.10.mp4
WhatsApp.Video.2024-11-23.at.20.55.11.mp4

También hicimos pruebas con las ruedas montadas

pruebas del destrozo 1 pruebas del destrozo 2

Durante todo el proceso siempre hemos tenido muchas cosas sobre la mesa...

Ideas para el mecanismo del brazo

Este fue el mayor problema desde que planteamos el proyecto porque no encontramos nada muy parecido a nuestra idea, aun buscando inspiración en otros mecanismos o modelos. EL proceso se puede resumir en esta sucesión de modelos. Explicaremos cada uno de los problemas que nos encontramos y por qué decidimos el modelo final que tenemos (el cual ya es completamente funcional):

evolucion_brazo

Como se puede ver se empieza por el dos ya que en los primeros días del proyecto ya teníamos una idea que es lo que se intentaba mantener con los siguientes modelos, pero que fue imposible. Añadir que para los primeros modelos nos centramos en añadir todo en el hombro que es un espacio reducido y que nos produjo muchos problemas.

El segundo modelo el problema que tenía era que el servo pudiera mantener toda la fuerza que generaba y que se pudiera apartar de la trayectoria del palo del puño lo suficientemente rápido como para no afectar a lo lejos que pueda llegar. Viendo estos problemas decidimos pensar en otra forma teniendo como inspiración los mecanismos de los bolígrafos.

El problema del tercer modelo era precisamente querer imitar el mecanismo de los bolígrafos ya que las tintas de los bolígrafos no salen disparadas. Buscamos inspiración de las típicas "pistolas" hechas con bolígrafos, pero lo que vimos es que salía disparado con el muelle. Viendo que era un mecanismo demasiado complicado para lo que queríamos y que nos estábamos enfocando demasiado en el hombro decidimos pensar en más partes del brazo.

Lo que no nos gustó del cuarto modelo es que fuera mediante algo físico que requiriera que alguien metiera y sacara un palo en vez de apretar un botón del mando y pudiera ser a distancia. Pero nos estábamos acercando ya que vimos que el antebrazo y la muñeca sí que tenían espacio suficiente para meter un servo.

idea_rueda

Así llegamos al quinto modelo del brazo, que casi es el final, pero nos dimos cuenta que al hacer dos "caminos" para el sobresaliente del palo del puño la parte del centro, que era la que soportaba toda la fuerza del muelle, se volvía muy endeble. De esta forma llegamos al último modelo en el que solo hay un camino, de esta forma la fuerza que hace el muelle es aguantada por toda la estructura del brazo.

idea_rueda

En esta imagen se puede apreciar el problema que comentamos de que era demasiado endeble el trozo de plástico en el que se aguantaba la fuerza del muelle.

En el siguiente video ponemos a prueba la fuerza necesaria para que el servo empuje la pestañita del palo del puño.

WhatsApp.Video.2024-11-23.at.23.19.07.mp4

Este video fue antes de añadir grasa (que tenía por casa para mecanismos) a la parte del brazo donde se aguantaba la pestaña del palo del brazo y a las ruedas, de esta forma el pla no se desgasta tan rápido y va mucho más fluido.

A parte de esto los engranajes que hemos usado son los siguientes:

Pintando el robot

Desde el principio teníamos pensado pintar el robot de los colores originales, para que quedase más fiel y no teníamos pensado que tardase mucho en hacerse. Casi no lo hacemos pero decidimos que merecía la pena ya que habíamos impreso todo.

idea_rueda

Las partes más grandes se pintan con pintura en spray y para las partes más pequeñas o algunos detalles con pintura acrilica.

Como se dijo íbamos a pintar detalles con acrílico y temrinar de pintar partes del brazo. Con ayuda hemos podido ver cómo va quedando junto todo el robot

robot_pintado

Los detalles más pequeños en blanco son repintados o pintados completamente de blanco y el naranja es todo acrílico

Servo de 180 a 360

A la hora de hacer el movimiento completo del brazo nos encontramos con el problema del espacio. Un motor podría haber sido la solución más fácil por tema de potencia y ensamblaje, pero era demasiado grande. La siguiente solución fue un servo o micro servo, su problema era que solo podían girar 180º. Buscando descubrimos los servos de rotación continua, que podían dar toda la vuelta, el problema es que ya habíamos comprado un servo normal. Más tarde nos dimos cuenta que un servo normal podía convertirse en uno de rotación continua si lo abríamos y le hacíamos unas modificación, así que nos pusimos a probar.

Dimos con varios vídeos y páginas al respecto:

El que más se parecía al nuestro fue el primero, así que seguí los pasos de este. Lo único que yo no tenía un controlador por lo que ideé un código (linkear código) en el que le iba poniendo por segundos las rotaciones que quería e iba ajustando el potenciómetro.

El resultado final es el siguiente:

WhatsApp.Video.2024-11-30.at.18.21.21.mp4

A parte de esto, estos días hemos estado pegando piezas entre sí. La tienda a la que fuimos nos recomendó pegarlo con epoxi, así que hemos estado alternando entre pegamento de contacto, epoxi y silicona caliente. Nos faltaría juntar todo el código y probar todo el robot a la vez.

Debido a las dificultades que hemos tenido para ajustar el potenciómetro del servo, hemos comprado uno de 360. Aún así nos ha dado problemas debido a lo sensible que es el potenciómetro, al mínimo golpe fuerte se descalibra. Por esto no estamos seguros de poder enseñar el movimiento del brazo.

Mecanismo para acceder al interior

Una vez estábamos empezando a cerrar el cuerpo volvimos a pensar en cómo colocar todo y en cómo accederíamos a los componentes del interior por si necesitamso cambiar cosas.

El primer problema del espacio lo solucionamos metiendo las baterías (portable como normal) en el interior de las piernas, haciendo las piernas extraíbles para poder cargarlas. De esta forma ganábamos muchísimo espacio en el interior del cuerpo.

Para poder acceder a la parte de la placa y demás decidimos hacer que la tapa que va encima del pecho se pueda abrir con una bisagra, así podemos toquetear por dentro sin tener que dejar el pecho abierto (es un problema por los hombros). Para el diseño final, podemos hacer que se abra el pecho si le hacemos un hueco a uno de los lados del pecho, como aparece en el modelo original. También deberíamos hacer todos los huecos bien para colocar las cosas dentro. Otra idea que nos gustaría hacer próximamente sería añadir servos también a la parte del pecho y la cintura para poder apuntar teniendo en cuenta esos movimientos.

El diseño actual es este:

pruebas del destrozo 1 pruebas del destrozo 2

Las ideas son las siguientes:

ideas para robot

A parte de lo de la bisagra tendríamos que añadir una tapa dónde se apoyen las baterías.

Ultimos avances antes de la presentacion

Ya conseguimos que el servo comprado funcionase perfectamente, el problema es que no tuvimos en cuenta que al ser un servo más grande que le inicialmente pensado necesitaríamos una batería. Por lo que al final nos hemos tenido que resignar a dejar el brazo fijo, y por esto mismo podemos simplemente apoyar el brazo en el engranaje que hemos hecho. De todos modos el código que hemos hecho para calibrarlo y para que funcione hacia adelante y atrás es completamente funcional. Aun así hemos dejado el mecanismo de la cabeza por si acaso en un futuro hacemos más cosas.

A parte de esto le hemos añadido un switch a la batería de 12v (son un poquillo más porque son 3.3 * 4 más o menos) para no tener que andar tapando los cables de la batería por si causaban chispas. También hemos reforzado la soldadura de las mismas.

Estos son los videos finales del robot:

WhatsApp.Video.2024-12-03.at.22.02.50.mp4
WhatsApp.Video.2024-12-03.at.22.02.32.mp4
WhatsApp.Video.2024-12-03.at.22.04.46.mp4

Esta es la última vez que el robot Kantam dispara, porque como se puede apreciar en el video el pla de la muñeca cede junto con todo el mecanismo del interior. Como hemos comentado anteriormente nos esperábaos que esto pudiera pasar debido a que no se ha impreso todo de una pieza y además con un pla bastante endeble. Igualmente en este video se muestra toda la funcionalidad del Kantam, tanto su movimiento como su disparo.

WhatsApp.Video.2024-12-04.at.01.54.21.mp4
⚠️ **GitHub.com Fallback** ⚠️