Diario del proyecto - LiamSaboridoSueiro/Mecatronica-Proyecto GitHub Wiki
En esta página de la Wiki estaremos escribiendo el progreso de nuestro proyecto!
- Introducción
- Primeros pasos
- Consiguiendo los componentes
- Preparando el entorno de desarrollo
- Probando componentes
- Control del robot
- Investigación sobre ruedas
- Servos para control del robot
- Avances con el modelado 3D
- Ideas sobre las ruedas
- Más avances sobre modelado 3D y mecanismos
- Avances montaje del robot
- Ideas para el mecanismo del brazo
- Pintando el robot
- Servo de 180 a 360
- Mecanismo para acceder al interior
- Ultimos avances antes de la presentacion
Nuestra idea es recrear el robot Kantam de la serie de Shin Chan, aquí dejamos un ejemplo
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.
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.
También quisimos ver videos de referencia y hasta se ha llegado a comprar una para estudiar el mecanismo más de cerca:


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


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.
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:
- Getting Started with ESP32 - Step-By-Step Tutorial
- Standard Toolchain Setup for Linux and macOS
- Adding User to dialout or uucp on Linux
- Install Python Interpreter
- Programming an ESP32 using VS Code
- PlatformIO IDE for VSCode
- 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.
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:
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
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
-
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.
-
Elegir la placa:
- Seleccionar la placa correcta desde el menú de la ESP32, como la DOIT ESP32 Devkit V1.
-
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.
-
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.
-
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:
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:
- PrintBot Rhino de bq
- MR6 - Mini Prototyping Tank Robot de timmiclark este fue el primero que vimos con cadenas impresas
- Rover platform de nahueltaibo con solo dos ejes con lado y con cadenas para imprimir
- Modular Rover Tracks de nahueltaibo con un solo motor
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
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.
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.
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.
Links de consulta de modelados 3d:
- ESP32 38Pin Development Board WiFi+Bluetooth Ultra-Low Power Consumption Dual Core
- Protoboard 400 Pts
- Servo Mount by AlexGale
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:
- click pen mechanism 10 mm diameter 3D print model
- Mechanical Switch Fidget Click
- Ballpoint pen's click mechanism (Latch mechanism V3)
- DIY Push Latch Mechanism 自製反彈器機構 (DIY/3D Printing)
- Print in Place Latch Mechanism | Design for Mass Production 3D Printing
- Servo Latch - Geocache Box Servo Latch
- Servo Latch by koobysnacks77
- Latching Lock for Micro Servo SG90 9G
- Push Latch Mechanism
- Push-Push Latch Actuator (aka Strike)
- Sistema de liberación de la carga útil
- Mecanismo compatible con trinquete y trinquete
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.
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.




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


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


Durante todo el proceso siempre hemos tenido muchas cosas sobre la mesa...
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):
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.
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.
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:
- Parametrisches Kegelrad-Paar / Parametric Pair of Bevel Gears by janssen86
- Automotive Differential with Hypoid Gearing, Motorized Model by otvinta3d
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.
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
Los detalles más pequeños en blanco son repintados o pintados completamente de blanco y el naranja es todo acrílico
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:
- How to Make ANY servo rotate 360° - EASY and FAST
- MOD DE ROTACIÓN CONTINUA PARA SERVO CON CONTROL DE VELOCIDADY ROTACION
- Trucar servo de 180º a 360º rotación continua - Futaba S3003
- One and Multiple Servo Motor Control with ESP32 - No More Servo Jitter!
- Tower Pro MG996R Servo
- A Step-by-Step Guide To Control 360-degree Servo Motor Using ESP32
- ESP32 - MGR996R
- POLOLU-2149.pdf
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.
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:


Las ideas son las siguientes:
A parte de lo de la bisagra tendríamos que añadir una tapa dónde se apoyen las baterías.
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.