Ir al contenido principal

Robot Resuelve cubo Rubyk

 Durante febrero con mi hija nos entretuvimos haciendo el proyecto CUBOTINO. 


En base a piezas impresas en 3D, un par de servos y un Esp32 se arma un robot.


Con la interfaz grafica de un software para PC, escrito en Python, se incorporan las condiciones del cubo de colores a resolver y luego el software resuelve el puzle y determina los movimientos necesarios que debe hacer el robot.

El software del PC envía la información vía USB al Esp32.


El Esp32, con software escrito en microPython,  interpreta la información recibida, para asi controlar y ejecutar los movimientos, de los servos y resolver completamente un cubo Rubyk de 3 x 3.


El proyecto es del italiano Andrea Favaro que ha publicado su proyecto y todos los detalles de como realizarlo en CUBOTino


El archivo pdf del siguiente link es la guía esencial a seguir:

How_to_make_a_very_small_Rubik_cube_solver_robot





Aquí un video de nuestro robot trabajando..




Algunos detalles técnicos de nuestra experiencia que pueden ser particulares y no necesariamente aplicables a todos los que eventualmente hagan el proyecto:

1 . Se descargó el repositorio indicado en las instrucciones en formato zip y luego se descomprimió en el escritorio.

2. Dentro de la carpeta del usuario se creo una carpeta "Ambientes Python". Dentro de esta carpeta se creo otra carpeta con el nombre "cubotino".

3.Una vez que se instaló Python y en el terminal de windows nos dirigimos al directorio "Ambientes Python" y creamos un ambiente virtual llamado "cubotino" escribiendo el comando 
virtualenv cubotino

4. Con lo anterior se crearan algunas carpetas dentro del directorio cubotino. Una de ella es Scripts, dentro de la cual hay dos archivos ejecutables para activar el ambiente vitrual o desactivarlo.

 cd 'C:\Users\marti\Ambientes Python\cubotino\Scripts\'  
.\activate
deactivate

5. Una vez activado el ambiente virtual hay que ejecutar un programa que se ubica dentro de la carpeta "PC_files" dentro del archivo que descomprimimos en el punto 1.
Nos cambiamos de directorio:
 cd C:\Users\marti\Desktop\CUBOTino_base_version\PC_files\ 

y para ejecutar el programa escrito en python

 python Cubotino_GUI.py   


6. Con lo anterior ya debiéramos tener la interfaz grafica andando y todo listo para resolver un puzle.

Si se trata de la primera vez que se conecta el esp32 y los servos y siguiendo el orden de las instrucciones para poder pasar el punto 5 antes habrá que instalar un software llamado Thonny que en realidad es un IDE de microPython que nos permite instalar una imagen de microPython en el Esp32 y luego subir al Esp32 los archivos y programas que son parte del proyecto del robot.
Al seguir las instrucciones lo primero que se hace, una vez instalado microPython, es calibrar los servos.

    max_1000to2000us = 106  
    max_500to2500us = 125 
    min_1000to2000us = 48
    min_500to2500us = 17 
    mid_pos = 66 

Luego de lo anterior se continua en el punto 5.

Una vez en el punto 5. en el apartado de setting habrá que calibrar los PWM
y tiempos. 
Nuestro archivo de Cubotino_settings.txt quedó (30,58,77,0,1000,1000,500,400,18,69,121,3,3,600,600,400,'large','large')





Dado que algunas piezas impresas nos quedaron débiles porque las imprimimos con baja calidad las tuvimos que reforzar con pegamento epóxico de secado lento de 10 minutos. Usamos Poxipol. 




Comentarios

Entradas más populares de este blog

Cambiar rodillo toma papel impresora HP CP1515N y similares / Solución a atasco papel bandeja 2

  1:- Entrar menú service 2 pulsando botón izquierda y x al mismo tiempo, luego buscar opción Pick Roller y confirmar con OK. 2:- Desenchufar impresora. 3:- Quitar bandeja de papel y dar vuelta impresora. Por la parte de abajo se verá  y tendrá alcance al rodillo de toma de papel y de separación de papel. 4:- Separando con la mano las dos "orejas" de plástico que aseguran al rodillo de toma de papel se puede tirar el rodillo y sacarlo para reemplazarlo. https://www.youtube.com/watch?v=GYqwCPkA8jo&ab_channel=IPSglobal https://www.aliexpress.com/item/32733779892.html?spm=a2g0s.9042311.0.0.274263c0iyL0Qp

Instalar Proxmox

Para instalar Proxmox VE se crea un pendrive con la imagen iso. 1. Bajar archivo ISO de Proxmox VE.  https://www.proxmox.com/en/downloads   2. Para grabar la imagen iso en el pendrive bajar e instalar  Balena Etcher   3. Ejecutar Balena Etcher, seleccionar la imagen ISO de 1. y el pendrive donde grabaremos la imagen. 4. Insertar el pendrive en el pc donde instalaremos Proxmox y hacerlo partir desde el usb correspondiente. 5. Seguir la instalación grafica contestando algunos antecedentes básicos de la configuración y en algunos minutos se tendrá ya instalado y corriendo el sistema Proxmox VE 6. El sistema se iniciará y mostrara en pantalla la ip donde se podrá acceder y configurar el sistema.     Ejemplo:     https://192.168.0.10:8006 7. Con el navegador web abrir la dirección anterior.     El usuario es root      El password es el que pusimos durante la instalación. 8. Adecuar repositorios y varias configuraciones en forma...

Configuracion pantalla de Notebook usado como servidor

  Cerrar monitor de Notebook evitando que se apague o suspenda el equipo Para que el notebook usado como servidor no haga nada si se cierra la tapa o pantalla, habrá que modificar el archivo /etc/systemd/logind.conf de manera que las siguientes opciones queden descomentadas y ambas definidas como ignore HandleLidSwitch=ignore HandleLidSwitchExternalPower=ignore 1. abrir terminal o conectarse por ssh al servidor 2. editar archivo nano /etc/systemd/logind.conf . 3. grabar archivo 4. reiniciar servicio para que se active la nueva configuración.:     systemctl restart systemd-logind.service Apagar pantalla de Notebook manteniendo el equipo encendido. Para apagar la pantalla habrá que modificar el archivo grub modificando la linea GRUB_CMDLINE_LINUX_DEFAULT="quiet"  por  GRUB_CMDLINE_LINUX_DEFAULT="quiet consoleblank=20" donde 20 es el tiempo en segundos antes de apagar la pantalla. 1. editar archivo nano /etc/default/grub 2. grabar archivo 3. actualizar grub   ...