Tabla de contenido:

Rubics Cube Solver Bot: 5 pasos (con imágenes)
Rubics Cube Solver Bot: 5 pasos (con imágenes)

Video: Rubics Cube Solver Bot: 5 pasos (con imágenes)

Video: Rubics Cube Solver Bot: 5 pasos (con imágenes)
Video: 0.38 Second Rubik's Cube Solve 2024, Mes de julio
Anonim
Rubics Cube Solver Bot
Rubics Cube Solver Bot

Realización de un robot autónomo que resuelve un cubo de Rubik físico. Este es un proyecto del Club de Robótica, IIT Guwahati.

Está hecho con un material simple que se puede encontrar fácilmente. Principalmente usamos servomotores y un Arduino para controlarlos, láminas acrílicas, un Mini Drafter roto, abrazaderas en L y cintas duales.

Para obtener el algoritmo de resolución del cubo, usamos la biblioteca cubejs de github.

Paso 1: Materiales utilizados

Materiales usados
Materiales usados
  1. 6 servomotores
  2. Arduino Uno
  3. Batería LiPo de 3 celdas
  4. Lámina acrílica (8 mm y 5 mm de espesor)
  5. Pistola de calor(
  6. Taladro
  7. Sierra
  8. Abrazaderas en L
  9. Tiras de aluminio
  10. Mini dibujante / varillas de metal
  11. Cinta doble
  12. Fevi Quick
  13. Pernos de tuerca
  14. Cables de puente

Paso 2: Preparación de la estructura mecánica

Preparando la estructura mecánica
Preparando la estructura mecánica
Preparando la estructura mecánica
Preparando la estructura mecánica

El marco básico

  • Tome una lámina acrílica de 8 mm de grosor de aproximadamente 50 cm * 50 cm y marque el centro de todos los lados (esta será la base de su robot).
  • Tome un dibujante roto y retire las 4 varillas de acero … (estas varillas servirán como camino para su control deslizante).
  • En dos piezas rectangulares de acrílico (de cualquier tamaño) fije dos varillas paralelas entre sí y haga dos pares de este conjunto.
  • A continuación, para hacer un control deslizante, apile dos piezas pequeñas de acrílico una encima de otra con espaciadores entre ellas en las cuatro esquinas y fíjelas con pernos en los espaciadores. Necesitará 4 de estos controles deslizantes.
  • Antes de sujetar las dos piezas de deslizador, pase las varillas paralelas previamente fijadas entre ellas de manera que los espaciadores apenas toquen la superficie exterior de las varillas.
  • Por cada par de varillas paralelas, pase dos deslizadores sobre ellas.
  • Una vez que esté listo, coloque el par de varillas en forma de cruz de 90 grados. Asegúrese de que haya un control deslizante en cada extremo de la cruz.
  • Ahora todo lo que tiene que hacer es conectar este camino cruzado a la base de su robot, a cierta elevación de la base (asegúrese de que la elevación sea mayor que la altura de un servomotor).

    Para ello, puede utilizar soportes acrílicos con abrazaderas en L como hicimos nosotros o cualquier otro método será suficiente

Después de esto, su estructura debería parecerse a la imagen.

Colocación de los servos de la base

  • Los dos servos de la base deben estar conectados de manera que el servo esté debajo del brazo de la cruz y desviado del centro.
  • Los servos se fijan en posición horizontal a una oblea de silicio perforada mediante pernos largos, que a su vez se fijan a la base con abrazadera en L y cinta de dos vías.

Hacer las varillas de empujar y tirar

  • Establezca el ángulo del servo en cero y coloque el brazo basculante del servo en una posición adecuada.
  • Coloque el cubo en el centro de la cruz para obtener una estimación de la distancia del control deslizante en la posición más cercana y coloque los controles deslizantes en esas posiciones.
  • Coloque tiras de aluminio en forma de L en la parte inferior de cada control deslizante con cinta doble.
  • Ahora, para medir la distancia de cada tira de aluminio desde la parte superior o inferior del servo balancín que se encuentra en su plano, esta será la longitud de su varilla de empuje y tracción.
  • Una vez que se determinan las longitudes, la varilla de empuje se puede fijar perforando la tira de aluminio o algo así.

Montaje de los servos superiores

  • Decide la altura a la que se resolverá tu cubo. El eje del servomotor debe estar a esta altura.
  • Conecte los cuatro servomotores, cada uno a una oblea de silicio perforada con pernos en posición vertical.
  • La oblea ahora está montada en una tira de aluminio en forma de L cuya base se fija al deslizador a una altura adecuada para que el eje del servo quede en el centro del cubo.

Las garras C

  • Las garras deben ser tales que se ajusten exactamente a un lado del cubo y la longitud de las porciones superior e inferior no debe exceder un lado de un cubo.
  • Para ello coge una tira de acrílico de suficiente grosor y caliéntala. Una vez que se derrita, vuelva a darle forma a una abrazadera en forma de C de modo que atrape exactamente un lado del cubo.
  • Marque el centro de la garra en C y fije esta abrazadera al eje de balancín del servo en su centro.

Haga algunos ajustes menores según sea necesario para que cada abrazadera esté a la misma altura.

Esto completa la estructura mecánica de su robot, pasemos a las conexiones del circuito ……..

Paso 3: Conexiones del circuito

Conexiones de circuito
Conexiones de circuito

Para controlar el Bot usamos un Arduino, un regulador de voltaje y una batería LiPo de 3 celdas (12v).

Como los servomotores consumen mucha energía, utilizamos 6 reguladores de voltaje, uno para cada motor.

Las entradas de señal de los motores (el cable de color más claro de los tres) se conectaron a los pines digitales PWM 3, 5, 6, 9, 10, 11 del Arduino.

El regulador de voltaje se conectó a la placa de pruebas y se alimentó con la batería de 12 voltios. El suministro de salida (5 V) se alimentó directamente a los motores. La tierra de los motores también se conectó a la placa de pruebas. El terreno común también se adjuntó al Arduino.

Paso 4:

Image
Image

Paso 5: Código:

Los dos archivos dados muestran el código escrito para dar comando a los motores para pasos particulares usando Arduino.

El primer archivo contiene la función principal y otras definiciones de variables. El segundo archivo contiene funciones para cada movimiento utilizado en la resolución de un cubo (por ejemplo, U para 'rotación de la cara hacia arriba en el sentido de las agujas del reloj'; R1 para 'movimiento de la cara derecha en sentido contrario a las agujas del reloj', etc.)

Para obtener el algoritmo de resolución del cubo, usamos la biblioteca cubejs de github.

El algoritmo da salida directamente en 'movimientos faciales' que se completa con el código Arduino.

Recomendado: