Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Esta es la segunda versión de la herramienta del cubo de Rubik hecha para resolver con los ojos vendados. La 1ra versión fue desarrollada por javascript, puedes ver el proyecto RubiksCubeBlindfolded1
A diferencia de la anterior, esta versión utiliza la biblioteca OpenCV para detectar los colores e ingresar las entradas, y proporciona una mejor técnica de visualización.
El mayor problema en esta versión más reciente es la visualización de resultados, los elementos de secuencia se muestran en el cubo dibujado de uno en uno. Dado que el cubo tiene una forma 3D, es difícil mostrar todos los lados al mismo tiempo. Ver los resultados en mi canal de YouTube video de YouTube
Estoy usando un cubo sin pegatinas, esto necesita un reconocimiento personalizado y la mayoría de los códigos de fuente abierta no son compatibles. Usé este código abierto desarrollado por Kim Koomen que especifica áreas fijas en el marco de la cámara para detectar los colores correctos de las caras del cubo. Proyecto qbr.
Paso 1: componentes necesarios
- Frambuesa pi
- cámara web
o puedes usar tu laptop
Paso 2: dependencias
- Python 3
- biblioteca numpy
- Biblioteca OpenCV
$ sudo apt-get install python3-opencv
Paquete Rubiks Blindfolded
$ pip3 instalar Rubiks con los ojos vendados
Paso 3: Preparativos
Debe calibrar la detección de color como paso previo. Los códigos de color HSV varían debido a la iluminación, la calidad y resolución de la cámara y los colores del cubo en sí. En mi caso, combino luces blancas y amarillas para obtener resultados correctos.
Actualizar la función get_color_name (hsv) en colordetection.py
El código fuente original usa el paquete kociemba para resolver el cubo, lo resuelve encontrando los pasos inversos de cualquier codificación. En esta versión, utilicé mi propio paquete de resolución llamado RubiksBlindfolded que se publicó en PyPI. Vea la descripción para saber cómo usarlo RubiksBlindfolded
Paso 4: uso
Después de instalar todas las dependencias y configurar su cámara, este es el momento de ejecutar el script blindfolded.py
Primero, necesita escanear su cubo en las orientaciones correctas. Esta es la estructura del cubo, el orden de escaneo de las caras no es importante. Tenga en cuenta que estos son los colores predeterminados de las caras del cubo, puede cambiarlos actualizando el diccionario de notación en el script blindfolded.py
Para hacer el escaneo presione la tecla de espacio para guardar la vista y la tecla ESC después de terminar
En segundo lugar, puede ver las secuencias de solución en la consola y la verificación de paridad para indicarle si necesita aplicar el algoritmo de paridad o no.
En tercer lugar, se generará un nuevo marco que muestra 2 cubos dibujados para la secuencia de bordes y la secuencia de esquinas. Puede utilizar las teclas de flecha izquierda y derecha para cambiar entre los elementos de la secuencia, y las teclas de flecha arriba y abajo para cambiar entre el borde y la esquina. el color gris claro representa la secuencia actual.
Puede ver los colores del búfer actual que están cambiando dinámicamente mediante las teclas de flecha. Los colores grises representan el cubículo de destino y el color rosa representa la cara de intercambio
Código fuente
github.com/mn-banjar/blindfolded2