Índice:

Projeto BricKuber - um robô resolvedor de cubos de Raspberry Pi Rubiks: 5 etapas (com fotos)
Projeto BricKuber - um robô resolvedor de cubos de Raspberry Pi Rubiks: 5 etapas (com fotos)

Vídeo: Projeto BricKuber - um robô resolvedor de cubos de Raspberry Pi Rubiks: 5 etapas (com fotos)

Vídeo: Projeto BricKuber - um robô resolvedor de cubos de Raspberry Pi Rubiks: 5 etapas (com fotos)
Vídeo: Rubot: A Rubik's cube step-by-step solver 2024, Junho
Anonim
Image
Image

O BricKuber pode resolver um cubo de Rubik em cerca de 2 minutos.

O BricKuber é um robô de resolução de cubos de Rubik de código aberto que você mesmo pode construir

Queríamos construir um robô de resolução de cubos Rubiks com o Raspberry Pi. Em vez de ir para a velocidade, optamos pela simplicidade: se você tem um Raspberry Pi, um kit BrickPi e um kit LEGO Mindstorms EV3 ou NXT padrão, você deve ser capaz de seguir facilmente nossos passos. O software é escrito na linguagem de programação Python. Você pode ver todo o código-fonte no Github aqui.

Histórico O cubo de Rubik começou recentemente a fazer um retorno. Inventado em 1974, é o brinquedo mais vendido do mundo. Mas resolvê-los exige pensamento, esforço e habilidade… então por que não deixar um robô fazer isso? Neste projeto, pegamos um Raspberry Pi, um BrickPi e um conjunto de LEGO Mindstorms e construímos um robô de resolução de cubos de Rubik. Basta colocar um cubo de Rubik não resolvido no solucionador, executar o programa python e seu cubo de Rubik estará resolvido! O projeto usa o Pi para resolver diretamente o cubo de Rubik. O BrickPi3 pega o cubo de Rubik não resolvido e o Raspberry Pi tira uma foto de cada lado do cubo de Rubik com a câmera Raspberry Pi. O Pi cria um mapa de texto dos quadrados coloridos que mostra onde eles estão localizados no cubo. Quando tiver mapeado totalmente o cubo, o Pi usa a biblioteca python “kociemba” para mapear os movimentos necessários para resolver o cubo de Rubik. Esta informação é obtida pelo Pi e BrickPi3 para resolver o cubo de Rubik usando os motores LEGO. O resultado: um cubo de Rubik resolvido.

Etapa 1: Ferramentas e materiais

Construa
Construa
  • BrickPi3 - Usaremos o BrickPi para controlar os motores LEGO que resolvem o solucionador de cubos de Rubik.
  • Raspberry Pi - O Pi estará fazendo o processamento, tirando fotos e comandando o BrickPi.
  • Câmera Raspberry Pi - A câmera Pi irá tirar uma foto do cubo Rubiks não resolvido.
  • Cabo Ethernet - você precisará que seu equipamento esteja conectado à Internet. Se você quiser fazer isso por wi-fi, tudo bem também!
  • Raspbian for Robots SD Card - O software que executa o Raspberry Pi. Isso vem com a maior parte do software necessário para este tutorial. Você também pode baixar o software gratuitamente.
  • Kit LEGO Mindstorms EV3 (31313) - Você precisará de uma pilha de LEGO e dois motores grandes, um servo motor e o sensor ultrassônico.
  • Um cubo de Rubik - encontramos um que gira livremente aqui. No entanto, você pode usar praticamente qualquer cubo de Rubik 9x9x9.

Etapa 2: Construa

Construa
Construa
Construa
Construa

Construindo o Solver

Este design foi inspirado no design MindCub3r para LEGO EV3. Para construir o BricKuber, comece construindo o MindCub3r. Instruções completas de construção de LEGO podem ser encontradas aqui.

O projeto do solucionador de cubos Rubiks tem três partes móveis principais. O primeiro é um berço para segurar o cubo de Rubik. O segundo é o shuffler, um braço que é usado para virar o cubo de Rubik.

Finalmente, adicionamos um braço para câmera. No design original da MindCubr, ele segurava o sensor de cor EV3 sobre o cubo de Rubik. Em nosso design modificado, ele segura uma câmera Raspberry Pi sobre o cubo de Rubik. Usamos dois motores LEGO Mindstorms para manipular o cubo: o primeiro fica abaixo do berço para girar o cubo e o segundo move o braço do shuffler para girar o cubo em um eixo oposto.

Monte o BrickPi3

Você pode encontrar as instruções de montagem do BrickPi3 aqui. Precisaremos montar a caixa, conectar o BrickPi3, o Raspberry Pi, a câmera Raspberry Pi, adicionar um cartão SD e adicionar baterias. Para tornar o software mais fácil de configurar, Raspbian for Robots vem com a maioria dos softwares que você já precisa configurar. Você precisará de pelo menos um cartão SD de 8 GB e deseja expandir o disco para caber no tamanho total do cartão SD.

Anexe o BrickPi3

Adicionamos o BrickPi3 à montagem do LEGO. Usamos as “asas” do LEGO EV3 para apoiar o BrickPi3 e torná-lo nivelado com o corpo do BricKuber. Este é um bom passo para adicionar baterias 8XAA ao pacote de força e acoplar o bloco de força BrickPi3 ao conjunto LEGO. Para a programação, você pode alimentar o BrickPi3 via USB para o Raspberry Pi, no entanto, para mover os motores, você precisará fornecer energia com o Power Pack.

Conecte os motores ao BrickPi3

Conecte o motor do Shuffler à porta do motor “MD”. Conecte o motor do berço à porta “MA” no BrickPi3. Conecte o motor do sensor da câmera à porta “MC” (este é o menor motor servo). Mesmo que não movamos a câmera, você pode querer ajustar a localização da câmera usando os motores.

Anexe a câmera Raspberry Pi

Usando o suporte da câmera LEGO, conecte a câmera. A pequena lente preta da câmera deve caber entre os dois suportes de feixe LEGO. Prenda a câmera no lugar aos suportes LEGO com um pouco de fita isolante. Este é um bom momento para se certificar de que a câmera está em posição para capturar todo o cubo de Rubik. Você pode tirar uma foto de teste com o comando raspistill

raspistill -o cam.jpg

Verifique se o cubo está bem centrado no meio da imagem.

Etapa 3: preparar o software

Você pode usar qualquer versão do Raspbian ou Raspbian for Robots, nossa imagem personalizada que vem com o BrickPi3 já instalado. Se você usar uma versão padrão do Raspbian, você pode instalar as bibliotecas BrickPi3 usando o comando

sudo curl -kL dexterindustries.com/update_brickpi3 | bash

Esta etapa instalará todas as bibliotecas necessárias para executar o BrickPi3 em sua imagem Raspbian. Pule esta etapa se você estiver usando Raspbian for Robots: o BrickPi3 já está instalado.

Por fim, instale todas as dependências do projeto usando o comando:

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

Para esta etapa, seu BrickPi3 precisará estar conectado à Internet. Há uma série de bibliotecas das quais o projeto depende, incluindo algumas cruciais de Daniel Walton (@ dwalton76) no Github, que são usadas para resolver o cubo de Rubik.

Etapa 4: Resolva um Cubo de Rubik

Resolva um cubo de Rubik
Resolva um cubo de Rubik
Resolva um cubo de Rubik
Resolva um cubo de Rubik
Resolva um cubo de Rubik
Resolva um cubo de Rubik

Coloque um cubo de Rubik não resolvido no berço. Execute o comando

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

O robô girará o cubo para cada face e a câmera tirará 6 fotos, uma de cada lado do cubo. O Raspberry Pi determinará a configuração do cubo a partir das seis imagens. A configuração do cubo será passada para a biblioteca kociemba Python para encontrar uma solução eficiente. Finalmente, o robô executará os movimentos para resolver o Cubo de Rubik!

Etapa 5: o código-fonte

Todo o código-fonte do BricKuber pode ser encontrado em nosso repositório github de código aberto aqui.

Este projeto usa os seguintes pacotes de software instalados pelo comando

Recomendado: