Índice:

Q-Bot - o Open Source Rubik's Cube Solver: 7 etapas (com imagens)
Q-Bot - o Open Source Rubik's Cube Solver: 7 etapas (com imagens)

Vídeo: Q-Bot - o Open Source Rubik's Cube Solver: 7 etapas (com imagens)

Vídeo: Q-Bot - o Open Source Rubik's Cube Solver: 7 etapas (com imagens)
Vídeo: Among the four emperors, Baki has beaten three. The remaining one is Mingge himself: I didn't know 2024, Julho
Anonim
Image
Image
Imagem
Imagem

Imagine que você tem um cubo de Rubik embaralhado, conhece aquele quebra-cabeça dos anos 80 que todo mundo tem, mas ninguém sabe realmente como resolver, e deseja trazê-lo de volta ao seu padrão original. Felizmente, hoje em dia, é muito fácil encontrar instruções de solução. Então, acesse a Internet, assista a um vídeo e aprenda como virar as costas para lhe trazer alegria. Depois de fazer isso algumas vezes, no entanto, você perceberá que está faltando alguma coisa. Um buraco interno que não pode ser preenchido. Os engenheiros / criadores / hackers dentro de você simplesmente não podem ficar satisfeitos em resolver algo tão incrível de uma maneira tão simples. Não seria muito mais poético se você tivesse uma máquina que resolvesse tudo para você? Se você tivesse construído algo, todos os seus amigos ficariam maravilhados? Posso garantir que não há nada melhor do que assistir sua criação fazer maravilhas e resolver um Cubo de Rubik. Então, junte-se a mim na maravilhosa jornada de construção de Q-Bot, o Rubik's Cube Solver de código aberto que certamente não baterá nenhum recorde mundial, mas lhe dará horas de alegria (após, é claro, passar por todas as frustrações durante o processo de construção).

Etapa 1: projetar o hardware

O solver completo foi projetado com CAD em Catia. Dessa forma, a maioria dos erros de projeto podem ser encontrados e corrigidos antes da fabricação de qualquer componente físico. A maior parte do solucionador foi impressa em 3D em PLA usando uma impressora prusa MK3. Além disso, o seguinte hardware foi usado:

  • 8 peças de haste de alumínio de 8 mm (comprimento de 10 cm)
  • 8 rolamentos de esferas lineares (LM8UU)
  • um pouco menos de 2 m de correia dentada GT2 6 mm + algumas polias
  • 6 motores de passo bipolares NEMA 17
  • 6 drivers de passo Polulu 4988
  • um Arudino Mega como o controlador do projeto
  • uma fonte de alimentação 12 V 3A
  • um conversor redutor para alimentar o arduino com segurança
  • alguns parafusos e conectores
  • um pouco de madeira compensada para a base

Descrição do hardware

Esta seção cobre brevemente como o Q-Bot funciona e onde os componentes mencionados acima são usados. Abaixo você pode ver uma representação do modelo CAD totalmente montado.

O Q-bot funciona com quatro motores conectados diretamente ao cubo de Rubik com garras impressas em 3D. Isso significa que esquerda, direita, frente e trás podem ser girados diretamente. Se for necessário girar o lado superior ou inferior, o cubo inteiro deve ser girado e, portanto, dois dos motores devem ser movidos. Isso é feito conectando cada um dos motores de aperto em trenós acionados por outro motor de passo e uma correia dentada ao longo de um sistema de trilhos lineares. O sistema de trilhos consiste em dois rolamentos de 8 esferas que são montados em cavidades no trenó e todo o trenó é montado em dois eixos de alumínio de 8 mm. Abaixo você pode ver a submontagem de um eixo do solucionador.

Os eixos xey são basicamente idênticos, eles diferem apenas na altura do ponto de montagem da correia, isso é para que não haja colisões entre as duas correias quando totalmente montadas.

Imagem
Imagem

Etapa 2: Escolher os motores certos

Claro, selecionar os motores certos é muito importante aqui. A parte principal é que eles precisam ser fortes o suficiente para girar um cubo de Rubik. O único problema aqui é que nenhum fabricante de cubos de Rubik fornece uma classificação de torque. Então, tive que improvisar e fazer minhas próprias medições.

Geralmente o torque é definido pela força dirigida perpendicularmente à posição do ponto de rotação na distância r:

Imagem
Imagem
Imagem
Imagem

Então, se eu pudesse de alguma forma medir a força aplicada ao cubo, poderia calcular o torque. O que foi exatamente o que eu fiz. Prendi meu cubo em uma prateleira de forma que apenas um lado pudesse se mover. Que um barbante foi amarrado ao redor do cubo e uma bolsa presa na parte inferior. Agora tudo o que faltava fazer era aumentar lentamente o peso no saco até que o cubo girasse. Por falta de pesos precisos, usei batatas e as medi depois. Não é o método mais científico, mas como não estou tentando encontrar o torque mínimo, é suficiente.

Imagem
Imagem

Fiz as medições três vezes e peguei o valor mais alto apenas por segurança. O peso resultante foi de 0,52 kg. Agora, por causa de Sir Isaac Newton, sabemos que Força é igual a massa vezes aceleração.

Imagem
Imagem

A aceleração, neste caso, é a aceleração gravitacional. Portanto, o torque necessário é dado por

Imagem
Imagem

Conectar todos os valores, incluindo a metade da diagonal do cubo de Rubik, finalmente revela o torque necessário.

Imagem
Imagem

Eu optei por motores de passo que são capazes de aplicar até 0,4 Nm, o que provavelmente é um exagero, mas eu queria estar seguro.

Etapa 3: Construindo a Base

A base consiste em uma caixa de madeira muito simples e abriga todos os eletrônicos necessários. Possui um plugue para ligar e desligar a máquina, um LED para indicar se está ligada, uma porta USB B e uma tomada para a fonte de alimentação a ser conectada. Foi construído com compensado de 15mm, alguns parafusos e um pouco de cola.

Imagem
Imagem
Imagem
Imagem
Imagem
Imagem
Imagem
Imagem

Etapa 4: montagem do hardware

Agora com todas as peças necessárias, incluindo a base, o Q-bot estava pronto para ser montado. As peças personalizadas foram impressas em 3D e ajustadas quando necessário. Você pode baixar todos os arquivos CAD no final deste ible. A montagem incluiu o encaixe de todas as peças impressas em 3D com as peças compradas, estendendo os cabos do motor e aparafusando todas as peças na base. Além disso, coloquei mangas em volta dos cabos do motor, apenas para torná-la um pouco mais organizada, e adicionei conectores JST às suas extremidades.

Para destacar a importância da base que construí, aqui está uma cena de antes e depois de como era a montagem. Arrumar tudo um pouco pode fazer uma grande diferença.

Imagem
Imagem
Imagem
Imagem

Etapa 5: Eletrônica

Quanto à eletrônica, o projeto é bastante simples. Existe uma fonte de alimentação principal de 12 V, que pode fornecer até 3 A de corrente, que alimenta os motores. Um módulo abaixador é usado para alimentar o Arduino com segurança e um escudo personalizado para o Arduino foi projetado para abrigar todos os drivers de motor de passo. Os drivers tornam o controle dos motores muito mais fácil. Acionar um motor de passo requer uma sequência de controle específica, mas usando drivers de motor, precisamos apenas gerar um pulso alto para cada passo que o motor deve girar. Além disso, alguns conectores jst foram adicionados à blindagem para tornar a conexão dos motores mais fácil. O escudo do Arduino foi construído pela primeira vez em um pedaço de perfboard e depois de se certificar de que tudo funciona como deveria, ele foi fabricado pela jlc pcb.

Aqui está o antes e depois do protótipo e do pcb fabricado.

Imagem
Imagem
Imagem
Imagem

Etapa 6: Software e interface serial

O Q-Bot é dividido em duas partes. Por um lado, existe o hardware que é controlado pelo Arduino, por outro, existe um software que calcula o caminho de resolução do cubo com base no embaralhamento atual. O firmware rodando no Arduino foi escrito por mim, mas para manter este guia curto, não irei entrar em detalhes sobre ele aqui. Se você deseja dar uma olhada nele e brincar com ele, o link para o meu repositório git será fornecido no final deste documento. O software que calcula a solução é executado em uma máquina Windows e foi escrito por um colega meu, novamente links para seu código-fonte podem ser encontrados no final deste ible. As duas partes se comunicam por meio de uma interface serial simples. Ele calcula a solução com base no algoritmo de duas fases de Kociemba. O software de solução envia um comando que consiste em dois bytes para o solucionador e espera que ele retorne um 'ACK'. Dessa forma, o solucionador pode ser testado e depurado usando um monitor serial simples. O conjunto completo de instruções pode ser encontrado abaixo.

Imagem
Imagem

Os comandos para girar cada motor em uma etapa são uma solução alternativa para um problema em que alguns dos steppers executariam aleatoriamente pequenos saltos ao serem ligados. Para compensar isso, os motores podem ser ajustados para sua posição inicial antes do processo de resolução.

Etapa 7: Conclusão

Após oito meses de desenvolvimento, palavrões, batendo no teclado e dançando, o Q-bot finalmente chegou a um ponto em que foi resolvido com sucesso seu primeiro cubo de Rubik. O embaralhamento do cubo teve que ser inserido manualmente no software de controle, mas tudo funcionou bem.

Eu adicionei um suporte para uma webcam algumas semanas depois e minha faculdade ajustou o software para ler o cubo automaticamente a partir das imagens tiradas. No entanto, isso ainda não foi bem testado e ainda precisa de algumas melhorias.

Imagem
Imagem

Se este instrutível despertou seu interesse, não hesite e comece a construir sua própria versão do Q-bot. Pode parecer assustador no começo, mas vale muito a pena o esforço e, se eu consegui, você também pode.

Recursos:

Código Fonte do Firmware:

github.com/Axodarap/QBot_firmware

Código-fonte do software de controle

github.com/waldhube16/Qbot_SW

Recomendado: