Tabla de contenido:

Proyecto BricKuber: un robot de resolución de cubos Rubiks de Raspberry Pi: 5 pasos (con imágenes)
Proyecto BricKuber: un robot de resolución de cubos Rubiks de Raspberry Pi: 5 pasos (con imágenes)

Video: Proyecto BricKuber: un robot de resolución de cubos Rubiks de Raspberry Pi: 5 pasos (con imágenes)

Video: Proyecto BricKuber: un robot de resolución de cubos Rubiks de Raspberry Pi: 5 pasos (con imágenes)
Video: Propiedades del proyecto LEGO Mindstorms ev3 2024, Junio
Anonim
Image
Image

El BricKuber puede resolver un cubo de Rubik en menos de 2 minutos.

El BricKuber es un robot de resolución de cubos de Rubik de código abierto que puede construir usted mismo

Queríamos construir un robot de resolución de cubos Rubiks con la Raspberry Pi. En lugar de apostar por la velocidad, optamos por la simplicidad: si tiene una Raspberry Pi, un kit BrickPi y un kit LEGO Mindstorms EV3 o NXT estándar, debería poder seguir fácilmente nuestros pasos. El software está escrito en el lenguaje de programación Python. Puedes ver todo el código fuente en Github aquí.

Antecedentes El cubo de Rubik ha comenzado a reaparecer recientemente. Inventado en 1974, es el juguete más vendido del mundo. Pero resolverlos requiere pensamiento, esfuerzo y habilidad… Entonces, ¿por qué no dejar que lo haga un robot? En este proyecto, tomamos una Raspberry Pi, un BrickPi y un conjunto de LEGO Mindstorms y construimos un robot de resolución de cubos de Rubik. Simplemente coloque un cubo de Rubik sin resolver en el solucionador, ejecute el programa Python y su cubo de Rubik estará resuelto. El proyecto utiliza Pi para resolver directamente el cubo de Rubik. El BrickPi3 toma el cubo de Rubik sin resolver y la Raspberry Pi toma una fotografía de cada lado del cubo de Rubik con la cámara Raspberry Pi. El Pi crea un mapa de texto de los cuadrados de colores que muestra dónde están ubicados en el cubo. Cuando ha mapeado completamente el cubo, Pi usa la biblioteca de python "kociemba" para mapear los movimientos necesarios para resolver el cubo de Rubik. Esta información es tomada por Pi y BrickPi3 para resolver el cubo de Rubik usando los motores LEGO. El resultado: un cubo de Rubik resuelto.

Paso 1: herramientas y materiales

Constrúyelo
Constrúyelo
  • BrickPi3: usaremos BrickPi para controlar los motores LEGO que resuelven el solucionador de cubos de Rubik.
  • Raspberry Pi: el Pi realizará el procesamiento, tomará fotografías y controlará el BrickPi.
  • Cámara Raspberry Pi: la cámara Pi tomará una foto del cubo de Rubiks sin resolver.
  • Cable Ethernet: necesitará que su máquina esté conectada a Internet. Si quieres hacer esto a través de wifi, ¡también está bien!
  • Tarjeta SD Raspbian for Robots: el software que ejecuta Raspberry Pi. Esto viene con la mayor parte del software necesario para este tutorial. También puede descargar el software de forma gratuita.
  • Kit LEGO Mindstorms EV3 (31313): necesitarás un montón de LEGO y dos motores grandes, un servomotor y el sensor ultrasónico.
  • Un cubo de Rubik: encontramos uno que gira con bastante libertad aquí. Sin embargo, puedes usar casi cualquier cubo de Rubik de 9x9x9.

Paso 2: Constrúyelo

Constrúyelo
Constrúyelo
Constrúyelo
Constrúyelo

Construyendo el Solver

Este diseño se inspiró en el diseño MindCub3r para LEGO EV3. Para construir BricKuber, comience por construir MindCub3r. Las instrucciones de construcción completas de LEGO se pueden encontrar aquí.

El diseño del solucionador de cubos de Rubiks tiene tres partes móviles principales. El primero es una cuna para sostener el cubo de Rubik. El segundo es el barajador, un brazo que se usa para darle la vuelta al cubo de Rubik.

Finalmente, agregamos un brazo de cámara. En el diseño original de MindCubr, esto sostenía el sensor de color EV3 sobre el cubo de Rubik. En nuestro diseño modificado, sostiene una cámara Raspberry Pi sobre el cubo de Rubik. Usamos dos motores LEGO Mindstorms para manipular el cubo: el primero se coloca debajo de la base para rotar el cubo, y el segundo mueve el brazo barajador para girar el cubo en un eje opuesto.

Ensamble el BrickPi3

Puede encontrar las instrucciones de montaje para BrickPi3 aquí. Necesitaremos armar la carcasa, conectar el BrickPi3, la Raspberry Pi, la cámara Raspberry Pi, agregar una tarjeta SD y agregar baterías. Para que el software sea más fácil de configurar, Raspbian for Robots viene con la mayor parte del software que necesitará ya configurado. Necesitará al menos una tarjeta SD de 8 GB y querrá expandir el disco para que se ajuste al tamaño completo de la tarjeta SD.

Conecte el BrickPi3

Agregamos el BrickPi3 al ensamblaje de LEGO. Usamos las "alas" LEGO EV3 para sostener el BrickPi3 y nivelarlo con el cuerpo de BricKuber. Este es un buen paso para agregar baterías 8XAA al paquete de energía y conectar el paquete de energía BrickPi3 al ensamblaje LEGO. Para la programación, puede alimentar el BrickPi3 a través de la alimentación USB a la Raspberry Pi, sin embargo, para mover los motores, deberá suministrar energía con el Power Pack.

Conecte los motores al BrickPi3

Conecte el motor Shuffler al puerto del motor “MD”. Conecte el motor de la base al puerto "MA" en el BrickPi3. Conecte el motor del sensor de la cámara al puerto "MC" (este es el motor más pequeño similar a un servo). Aunque no moviremos la cámara, es posible que desee ajustar la ubicación de la cámara con los motores.

Conecte la cámara Raspberry Pi

Utilizando el soporte de la cámara LEGO, conecte la cámara. La pequeña lente negra de la cámara debe encajar entre los dos soportes de haz LEGO. Asegure la cámara en su lugar a los soportes LEGO con cinta aislante. Este es un buen momento para asegurarse de que la cámara esté en posición para poder capturar todo el cubo de Rubik. Puede tomar una foto de prueba con el comando raspistill

raspistill -o cam.jpg

Comprueba que el cubo esté bien centrado en el medio de la imagen.

Paso 3: preparar el software

Puede usar cualquier versión de Raspbian o Raspbian for Robots, nuestra imagen personalizada que viene con BrickPi3 ya instalado. Si usa una versión estándar de Raspbian, puede instalar las bibliotecas BrickPi3 usando el comando

sudo curl -kL dexterindustries.com/update_brickpi3 | intento

Este paso instalará todas las bibliotecas necesarias para ejecutar BrickPi3 en su imagen Raspbian. Omita este paso si está utilizando Raspbian for Robots: BrickPi3 ya está instalado.

Finalmente, instale todas las dependencias del proyecto usando el comando:

sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | intento

Para este paso, su BrickPi3 deberá estar conectado a Internet. Hay una serie de bibliotecas de las que depende el proyecto, incluidas algunas cruciales de Daniel Walton (@ dwalton76) en Github, que se utilizan para resolver el cubo de Rubik.

Paso 4: resuelve un cubo de Rubik

Resuelve un cubo de Rubik
Resuelve un cubo de Rubik
Resuelve un cubo de Rubik
Resuelve un cubo de Rubik
Resuelve un cubo de Rubik
Resuelve un cubo de Rubik

Coloque un cubo de Rubik sin resolver en la base. Ejecuta el comando

sudo python ~ / Dexter / BrickPi3 / Proyectos / BricKuber / BricKuber.py

El robot girará el cubo a cada cara y la cámara tomará 6 fotografías, una de cada lado del Cubo. La Raspberry Pi determinará la configuración del cubo a partir de las seis imágenes. La configuración del cubo se pasará a la biblioteca de Python de kociemba para encontrar una solución eficiente. ¡Finalmente, el robot ejecutará los movimientos para resolver el Cubo de Rubik!

Paso 5: el código fuente

Todo el código fuente de BricKuber se puede encontrar en nuestro repositorio github de código abierto aquí.

Este proyecto utiliza los siguientes paquetes de software instalados por el comando

Recomendado: