Tabla de contenido:
- Paso 1: diseño del hardware
- Paso 2: elegir los motores adecuados
- Paso 3: construcción de la base
- Paso 4: Montaje del hardware
- Paso 5: Electrónica
- Paso 6: Software e interfaz serial
- Paso 7: Conclusión
Video: Q-Bot: el solucionador de cubos de Rubik de código abierto: 7 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Imagina que tienes un cubo de Rubik revuelto, conoces ese rompecabezas de los 80 que todo el mundo tiene pero que nadie sabe realmente cómo resolverlo y quieres devolverlo a su patrón original. Afortunadamente en estos días es muy fácil encontrar instrucciones de resolución. Por lo tanto, conéctese a Internet, mire un video y aprenda cómo girar los lados para brindarle alegría. Sin embargo, después de hacerlo un par de veces, se dará cuenta de que falta algo. Un agujero en el interior que no se puede llenar. Los ingenieros / creadores / hackers que hay dentro de ti simplemente no pueden estar satisfechos con resolver algo tan asombroso de una manera tan simple. ¿No sería mucho más poético si tuvieras una máquina que hiciera todo el trabajo por ti? ¿Si hubieras construido algo que sorprendería a todos tus amigos? Puedo garantizarle que no hay nada mejor que ver su creación hacer maravillas y resolver un cubo de Rubik. Entonces, ven y únete a mí en el maravilloso viaje de construir Q-Bot, el solucionador de cubos de Rubik de código abierto que seguramente no batirá ningún récord mundial, pero te dará horas de alegría (después de pasar por todas las frustraciones durante el proceso de construcción).
Paso 1: diseño del hardware
El solucionador completo fue diseñado con CAD en Catia. De esta forma, la mayoría de los errores de diseño se pueden encontrar y corregir antes de fabricar cualquier componente físico. La mayor parte del solucionador se imprimió en 3D en PLA utilizando una impresora prusa MK3. Además, se utilizó el siguiente hardware:
- 8 piezas de varilla de aluminio de 8 mm (10 cm de longitud)
- 8 rodamientos lineales de bolas (LM8UU)
- un poco menos de 2 m de correa de distribución GT2 de 6 mm + algunas poleas
- 6 motores paso a paso bipolares NEMA 17
- 6 controladores paso a paso Polulu 4988
- un Arudino Mega como controlador del proyecto
- una fuente de alimentación de 12 V 3A
- un convertidor reductor para alimentar de forma segura el arduino
- algunos tornillos y conectores
- un poco de madera contrachapada para la base
Descripción del hardware
Esta sección cubre brevemente cómo funciona el Q-Bot y dónde se utilizan los componentes mencionados anteriormente. A continuación puede ver una representación del modelo CAD completamente ensamblado.
El Q-bot funciona con cuatro motores conectados directamente al cubo de Rubik con pinzas impresas en 3D. Esto significa que se pueden girar directamente hacia la izquierda, derecha, adelante y atrás. Si es necesario girar el lado superior o el inferior, se debe girar todo el cubo y, por lo tanto, se deben alejar dos de los motores. Esto se hace conectando cada uno de los motores de agarre en trineos impulsados por otro motor paso a paso y una correa de distribución a lo largo de un sistema de riel lineal. El sistema de rieles consta de dos rodamientos de 8 bolas que se montan en las cavidades del trineo y todo el trineo se desplaza sobre dos ejes de aluminio de 8 mm. A continuación puede ver el subensamblaje de un eje del solucionador.
El eje xy el eje y son básicamente idénticos, solo difieren en la altura del punto de montaje del cinturón, esto es para que no haya colisiones entre los dos cinturones cuando están completamente ensamblados.
Paso 2: elegir los motores adecuados
Por supuesto, aquí es muy importante seleccionar los motores adecuados. La parte principal es que deben ser lo suficientemente fuertes para poder girar un cubo de Rubik. El único problema aquí es que ningún fabricante de cubos de Rubik da una clasificación de torque. Entonces, tuve que improvisar y hacer mis propias medidas.
Generalmente, el par se define por la fuerza dirigida perpendicularmente a la posición del punto de rotación a la distancia r:
Entonces, si pudiera medir de alguna manera la fuerza aplicada al cubo, podría calcular el torque. Que es exactamente lo que hice. Sujete mi cubo a un estante de una manera que solo un lado pudiera moverse. Que se ató una cuerda alrededor del cubo y una bolsa en la parte inferior. Ahora todo lo que quedaba por hacer era aumentar lentamente el peso de la bolsa hasta que el cubo girara. Por la falta de pesos precisos, usé papas y las medí después. No es el método más científico, pero como no estoy tratando de encontrar el par mínimo, es suficiente.
Hice las mediciones tres veces y tomé el valor más alto solo para estar seguro. El peso resultante fue de 0,52 kg. Ahora, gracias a Sir Isaac Newton, sabemos que la Fuerza es igual a la masa por la aceleración.
La aceleración, en este caso, es la aceleración gravitacional. Entonces el par requerido viene dado por
Al conectar todos los valores, incluida la mitad de la diagonal del cubo de Rubik, finalmente se revela el par requerido.
Fui con motores paso a paso que pueden aplicar hasta 0,4 Nm, lo que probablemente sea una exageración, pero quería estar seguro.
Paso 3: construcción de la base
La base consta de una caja de madera muy sencilla y alberga toda la electrónica necesaria. Cuenta con un enchufe para encender y apagar la máquina, un LED para indicar si está encendida, un puerto USB B y una toma de corriente para enchufar la fuente de alimentación. Se construyó con madera contrachapada de 15 mm, algunos tornillos y un poco de pegamento.
Paso 4: Montaje del hardware
Ahora, con todas las piezas necesarias, incluida la base, el Q-bot estaba listo para ensamblar. Las piezas personalizadas se imprimieron en 3D y se ajustaron donde fue necesario. Puede descargar todos los archivos CAD al final de este ible. El montaje incluyó ajustar todas las piezas impresas en 3D con las piezas compradas, extender los cables del motor y atornillar todas las piezas a la base. Además, coloqué fundas alrededor de los cables del motor, solo para que se vieran un poco más ordenadas, y agregué conectores JST en sus extremos.
Para resaltar la importancia de la base que construí, aquí hay una toma de antes y después de cómo se veía el ensamblaje. Poner todo un poco en orden puede marcar una gran diferencia.
Paso 5: Electrónica
En cuanto a la electrónica, el proyecto es bastante sencillo. Hay una fuente de alimentación principal de 12 V, que puede entregar hasta 3 A de corriente, que alimenta los motores. Se utiliza un módulo reductor para alimentar de forma segura el Arduino y se diseñó un escudo personalizado para el Arduino que alberga todos los controladores del motor paso a paso. Los controladores facilitan mucho el control de los motores. Conducir un motor paso a paso requiere una secuencia de control específica, pero al usar controladores de motor solo necesitamos generar un pulso alto para cada paso que gire el motor. Además, se agregaron algunos conectores jst al blindaje para facilitar la conexión de los motores. El escudo para Arduino se construyó por primera vez en una pieza de perfboard y después de asegurarse de que todo funciona como se suponía, fue fabricado por jlc pcb.
Aquí está el antes y el después del prototipo y la PCB fabricada.
Paso 6: Software e interfaz serial
El Q-Bot se divide en dos partes. Por un lado, está el hardware que es controlado por Arduino, por otro lado, hay una pieza de software que calcula la ruta de resolución del cubo en función de la codificación actual. El firmware que se ejecuta en Arduino fue escrito por mí mismo, pero para que esta guía sea breve, no entraré en detalles al respecto aquí. Si desea echarle un vistazo y jugar con él, el enlace a mi repositorio de git se proporcionará al final de este documento. El software que calcula la solución se ejecuta en una máquina con Windows y fue escrito por un colega mío; de nuevo, se pueden encontrar enlaces a su código fuente al final de este ible. Las dos partes se comunican mediante una sencilla interfaz en serie. Calcula la solución con base en el algoritmo de dos fases de Kociemba. El software de resolución envía un comando que consta de dos bytes al solucionador y espera a que devuelva un "ACK". De esta manera, el solucionador se puede probar y depurar utilizando un monitor en serie simple. El conjunto de instrucciones completo se puede encontrar a continuación.
Los comandos para hacer girar cada motor en un paso son una solución para un problema en el que algunos de los motores paso a paso realizarían pequeños saltos aleatoriamente al encenderse. Para compensar esto, los motores se pueden ajustar a su posición inicial antes del proceso de resolución.
Paso 7: Conclusión
Después de ocho meses de desarrollar, maldecir, tocar el teclado y bailar, el Q-bot finalmente llegó a un punto en el que se resolvió con éxito su primer Cubo de Rubik. La mezcla del cubo tuvo que insertarse manualmente en el software de control, pero todo funcionó bien.
Agregué un soporte para una cámara web un par de semanas después y mi universidad ajustó el software para leer el cubo automáticamente a partir de las imágenes tomadas. Sin embargo, esto aún no se ha probado bien y todavía necesita algunas mejoras.
Si este instructivo despertó su interés, no lo dude y comience a construir su propia versión del Q-bot. Puede parecer abrumador al principio, pero vale la pena el esfuerzo y, si yo puedo hacerlo, tú también puedes.
Recursos:
Código fuente del firmware:
github.com/Axodarap/QBot_firmware
Código fuente del software de control
github.com/waldhube16/Qbot_SW
Recomendado:
Solucionador con los ojos vendados del cubo de Rubik en tiempo real con Raspberry Pi y OpenCV: 4 pasos
Solucionador con los ojos vendados del cubo de Rubik en tiempo real con Raspberry Pi y OpenCV: esta es la segunda versión de la herramienta del cubo de Rubik hecha para resolver con los ojos vendados. La 1ª versión fue desarrollada por javascript, se puede ver el proyecto RubiksCubeBlindfolded1A diferencia de la anterior, esta versión utiliza la librería OpenCV para detectar los colores y e
Arduino Mega Stepper Shield para un solucionador de cubos de Rubiks: 4 pasos
Arduino Mega Stepper Shield para un solucionador de cubos de Rubiks: Hace un tiempo estaba trabajando en una máquina que resuelve automáticamente cualquier cubo de Rubiks 3x3 codificado. Puedes ver mis instrucciones sobre eso aquí. En el proyecto, se utilizaron controladores paso a paso de polulu para impulsar seis motores. Para hacer dos, conectar estos d
El 'Sup - un ratón para personas con cuadriplejia - Bajo costo y código abierto: 12 pasos (con imágenes)
El 'Sup - un ratón para personas con cuadriplejía - Bajo costo y código abierto: en la primavera de 2017, la familia de mi mejor amigo me preguntó si quería volar a Denver y ayudarlos con un proyecto. Tienen un amigo, Allen, que tiene cuadriplejía como resultado de un accidente en bicicleta de montaña. Félix (mi amigo) y yo hicimos una rápida búsqueda
Placa de conexión de Neopixel modular compatible con protoboard de código abierto: 4 pasos (con imágenes)
Tablero de conexión de Neopixel modular compatible con placa de pruebas de código abierto: este instructivo es sobre una placa de conexión pequeña (8 mm x 10 mm) compatible con la placa de pruebas para LED de Neopixel que se pueden apilar y soldar entre sí, también proporciona mucha más rigidez estructural que una delgada Tira de LED en una forma mucho más pequeña facto
PROGRAMADOR DE IMÁGENES USB GTP (Código abierto): 5 pasos (con imágenes)
PROGRAMADOR DE PIC USB GTP (Código abierto): Este trabajo incluye, USB GTP (no plus ni lite). El esquema, las fotos y la PCB han sido desarrollados por PICMASTERS basándose en algunos trabajos valiosos realizados anteriormente. Este programador admite pic10F, 12F, 16C, 16F, 18F, 24Cxx Eeprom. Desafortunadamente, wo