Esta App permite resolver un Cubo Mágico con un robot. El robot está conectado a través de Bluetooth.
El cubo se puede ingresar manualmente o escanearse usando la función de cámara. Los colores de cubo detectados incorrectamente se pueden corregir. El robot puede ejecutar el giro del cubo a la siguiente cara.
Si se ingresa un cubo válido, se calcula una solución y se puede enviar al robot. Luego, el robot puede ejecutar la solución y obtendrás un cubo resuelto.
¡Todo lo que tienes que hacer es construir el robot!
La aplicación se puede utilizar sin robot, pero hay mejores opciones.
Para constructores de robots:
La aplicación fue diseñada para un robot de 2 pinzas basado en Arduino que sostiene la cara inferior y posterior del cubo. Para la conexión Bluetooth se utiliza un módulo HC-06. Esta aplicación se puede utilizar para cualquier robot que utilice el mismo protocolo y el mismo UUID que el módulo HC-06. No transmite movimientos de servo. Envía comandos que el robot debe ejecutar.
El proceso se divide en 2 etapas:
Etapa 1: Ingresar/Escanear el cubo
Si se ingresa o escanea una cara de cubo, pasa a la siguiente cara presionando el botón Ver. Al hacerlo, el carácter inicial en minúscula ("l" para izquierda, "u" para arriba) de la siguiente cara se envía al robot. El robot necesita ejecutar el movimiento. El orden es derecha, atrás, izquierda, arriba, abajo y de atrás hacia adelante. En caracteres es r,b,l,u,d,f.
Etapa 2: Resolución
Dado que la orientación es crucial para resolver con éxito el cubo, la solución sólo está disponible cuando la vista frontal está activa. Esto supone que el robot también ha girado el cubo en la posición correcta.
La solución se calcula dentro de la aplicación. No se obtiene de ningún servidor. Tan pronto como esté disponible, la cadena de resolución se transmite al robot. La cadena de resolución es la secuencia de movimientos separados por un espacio. Los movimientos se dan de la siguiente manera:
L - gire la cara izquierda en el sentido de las agujas del reloj
L' - gira la cara izquierda en sentido antihorario
L2 - gírelo 180°
F-Frontal, R - Derecha, B-Atrás, U-Arriba y D-Abajo.
Siguiendo la secuencia de esta manera, se resuelve el cubo.
La forma en que su robot ejecute los movimientos depende de usted. Esta aplicación te permite concentrarte en controlar el robot y no tener que preocuparte de que el cubo se resuelva solo.
La comunicación es sólo unidireccional. No hay transmisión desde el robot al teléfono inteligente.
Espero que esto te ayude a comenzar con tu propio proyecto.
¡Buena suerte!
Créditos:
Los créditos van a:
Kas en el foro de Arduino por inspirar el proyecto y realizar el trabajo principal en la programación de Arduino, además de proporcionar una primera aplicación para el robot.
https://forum.arduino.cc/index.php?topic=271827.0
Herbert Kociemba por realizar el tremendo trabajo de desarrollar el algoritmo de resolución y proporcionar la biblioteca de herramientas y resolución gratuita.
http://www.kociemba.org/cube.htm
A cs0x7f en GitHub por proporcionar una biblioteca de resolución de 2 fases optimizada bajo GPL.
https://github.com/cs0x7f/min2phase