Índice:

Solver de olhos vendados do cubo de Rubik em tempo real usando Raspberry Pi e OpenCV: 4 etapas
Solver de olhos vendados do cubo de Rubik em tempo real usando Raspberry Pi e OpenCV: 4 etapas

Vídeo: Solver de olhos vendados do cubo de Rubik em tempo real usando Raspberry Pi e OpenCV: 4 etapas

Vídeo: Solver de olhos vendados do cubo de Rubik em tempo real usando Raspberry Pi e OpenCV: 4 etapas
Vídeo: Finalizou o Cubo de Olhos Fechados 2024, Novembro
Anonim

Esta é a 2ª versão da ferramenta de cubo de Rubik feita para resolver com os olhos vendados. A 1ª versão foi desenvolvida por javascript, você pode ver o projeto RubiksCubeBlindfolded1

Ao contrário da anterior, esta versão usa a biblioteca OpenCV para detectar as cores e inserir as entradas, e fornece uma melhor técnica de visualização.

O maior problema nesta versão mais recente é a visualização das saídas, os itens da sequência são exibidos no cubo desenhado um de cada vez. Como o cubo é uma forma 3D, é difícil exibir todos os lados ao mesmo tempo. Veja os resultados no meu canal no YouTube, vídeo no YouTube

Estou usando um cubo sem adesivo, que precisa de um reconhecimento personalizado e a maioria dos códigos-fonte abertos não são compatíveis. Eu usei este código aberto desenvolvido por Kim Koomen que especifica áreas fixas no quadro da câmera para detectar as cores corretas do projeto qbr das faces do cubo

Etapa 1: componentes necessários

  • Raspberry Pi
  • Webcam

ou você pode usar seu laptop

Etapa 2: Dependências

  • Python 3
  • biblioteca entorpecida
  • Biblioteca OpenCV

$ sudo apt-get install python3-opencv

Pacote RubiksBlindfolded

$ pip3 install RubiksBlindfolded

Etapa 3: preparações

Você precisa calibrar a detecção de cores como uma etapa prévia. Os códigos de cores HSV variam devido à iluminação, qualidade e resolução da câmera e às próprias cores do cubo. No meu caso, eu combino as luzes branca e amarela para obter resultados corretos.

Atualize a função get_color_name (hsv) em colordetection.py

O código-fonte original usa o pacote kociemba para resolver o cubo, ele resolve encontrando as etapas reversas de qualquer embaralhamento. Nesta versão, usei meu próprio pacote de solução chamado RubiksBlindfolded que foi publicado no PyPI. Veja a descrição para saber como usá-lo. RubiksBlindfolded

Etapa 4: uso

Uso
Uso
Uso
Uso

Depois de instalar todas as dependências e configurar sua câmera, é hora de executar o script blindfolded.py

Primeiro, você precisa escanear seu cubo nas orientações corretas. Esta é a estrutura do cubo, a ordem de digitalização das faces não é importante. Observe que essas são as cores padrão das faces do cubo, você pode alterá-las atualizando o dicionário de notação no script blindfolded.py

Para fazer a varredura, pressione a tecla de espaço para salvar a visualização e a tecla ESC após terminar

Em segundo lugar, você pode ver as sequências de solução no console e a verificação de paridade para dizer se você precisa aplicar o algoritmo de paridade ou não

Terceiro, um novo quadro será gerado que exibe 2 cubos desenhados para a sequência de arestas e sequência de cantos. Você pode usar as teclas de seta para a esquerda e direita para alternar entre os itens da sequência e as setas para cima e para baixo para alternar entre a borda e o canto. a cor cinza claro representa a sequência atual.

Você pode ver as cores do buffer atual que estão mudando dinamicamente pelas teclas de seta. As cores cinza representam o cubículo de destino e a cor rosa representa a face de troca

Código fonte

github.com/mn-banjar/blindfolded2

Recomendado: