Um robô de madeira que pode jogar xadrez


Você provavelmente já viu muitos projetos baseados no Arduino que foram gerenciados através de algum tipo de smartphone. Tais projetos, em regra, eram assim: uma máquina com um módulo Bluetooth inserido, para a qual os comandos são enviados pelo emulador de joystick no telefone (ou algo assim). Muitos desses aparelhos foram criados, e essa ideia me veio à mente. Mas e se o Arduino ajudar você a se separar do seu smartphone por um tempo, mas ao mesmo tempo continuar a reproduzi-lo? E assim nasceu o projeto de um robô de xadrez, cujos "cérebros" e "olhos" estão concentrados no smartphone Android. Mais detalhes - sob o corte.


Vista geral


[Hirez]

Toda essa composição é uma caixa de madeira na qual há um tabuleiro de xadrez, um manipulador e um suporte com luz de fundo no qual o telefone repousa. Após o jogo, todos os itens acima são removidos nesta mesma caixa e podem ser transportados para qualquer lugar sem problemas, por exemplo, em uma mochila.

O princípio de operação é o seguinte. Na parte superior da placa, em um suporte especial, um telefone é instalado com um aplicativo especial que, usando um sistema de visão computacional, fixa a posição atual das peças na placa. Com base no fato de o sistema monitorar todos os movimentos, não é necessário determinar visualmente qual figura está na célula, basta saber o fato de sua presença e cor.
Depois que uma mudança feita por uma pessoa é corrigida, essas informações são transmitidasum mecanismo de xadrez que decide a qual movimento ele precisa responder.
Em seguida, os ângulos são calculados para as posições que o robô precisa tomar para fazer um movimento. Em seguida, essas informações são enviadas via Bluetooth ao manipulador. O manipulador pode apenas aceitar essas
informações e fazer uma jogada.

Espero que o leitor deste artigo encontre algo interessante para si mesmo aqui. Talvez alguém queira repetir este projeto ou fazer algo semelhante. Quero dizer imediatamente que não haverá um tutorial, porque copiar este trabalho simplesmente de acordo com as instruções não funcionará passo a passo, porque existem muitas sutilezas que só podem ser entendidas ao tentar implementá-lo. Se você quiser ver os desenhos do manipulador, ou se tiver outras perguntas, escreva em uma mensagem pessoal no GT ou VK , responderei gratuitamente e mediante solicitação.

Parte do software

Toda essa composição é controlada por um pequeno aplicativo Android. Ele tem muitas tarefas: determinar as figuras no tabuleiro, calcular os ângulos para o manipulador, trabalhar com o mecanismo de xadrez, algumas mensagens de voz do robô como "Eu coloquei você no cheque!" e "Obrigado pelo jogo!" Mas com tudo isso, a interface do aplicativo se encaixa em uma tela.


O sistema de visão é bem simples. Da perspectiva do telefone, não há muita diferença entre, digamos, um rei e um cavalo - visualmente essas duas figuras parecerão círculos em preto e branco. Portanto, o sistema não se familiariza com a posição que vê novamente, mas lembra a sequência de todos os movimentos realizados. E a mudança feita é muito simples de determinar: se em algum momento o programa vê que uma peça desapareceu em uma célula e aparece em outra, isso será considerado uma mudança. É assim que funciona.
Esse tipo de visão técnica é implementada exclusivamente por meio da API do Android, sem o uso do OpenCV ou algo semelhante. Isso não está certo, a razão aqui é um interesse pessoal em realizar tudo do zero.


Manipulador

Foram necessárias muitas pesquisas criativas para criar um design de manipulador que pudesse executar adequadamente seu trabalho com os servo-drives chineses TowerPro sg-90 baratos que eu tinha em grande número, que não são de alta qualidade. Portanto, os dois braços do manipulador são feitos na forma de paralelogramos, permitindo que o sistema de captura de formas permaneça sempre na posição vertical. Isso, por sua vez, torna desnecessário adicionar outro servo; portanto, o sistema terá menos erros, permite que seja leve e mais ou menosconfiável. Como as engrenagens também são feitas de madeira, é difícil obter a mais alta qualidade de seu trabalho, portanto, para compensar a folga, o manipulador faz um movimento lateral antes de cada movimento para aproximar-se de cada ponto de um lado.

Quanto à fonte de alimentação, seu robô recebe de duas placas-mãe a partir de tarifas normais do telefone, localizadas com segurança no gabinete. Uma carga alimenta o próprio controlador juntamente com o módulo Bluetooth, a outra diretamente para a mecânica. Para fazer a iluminação, a lâmpada LED foi desmontada. Como se viu, existem duas placas dentro dela: os LEDs estão localizados em uma e o conversor de energia na outra. Um é preso ao suporte, o outro é colocado no corpo da caixa. Toda a energia é exibida em um pequeno soquete na lateral do corpo da caixa:


Outra imagem mostra a área de trabalho do manipulador para o ponto vermelho marcado nele. Para o eixo zero, a faixa de ângulo é de 180 °.


Não consegui fabricar esse robô imediatamente, alguns protótipos funcionaram muito mal e outros funcionaram para outros trabalhos. Por exemplo, o robô no vídeo abaixo coloca açúcar em uma caneca e agita a gaivota.


Sistema de captura de formas

De interesse particular, na minha opinião, é o design do sistema de captura de figuras. A solução mais óbvia aqui era fazer duas bochechas se moverem uma contra a outra sob o controle de um servoconversor. Algo assim:

Como você pode ver na figura, para um conjunto de peças completamente pequenas com um diâmetro base de 18 mm, você precisa tornar a gaiola quadriculado quase o dobro do tamanho, e o tamanho da placa também se torna irracionalmente grande. Depois de várias implementações malsucedidas dessa opção, deparei-me com uma coisa tão incomum, que é chamada de “grip flexível de pinça”), e fica assim:

Ou seja, é um núcleo oco flexível por dentro com uma pequena garra de mola de metal na extremidade, que fecha se for apertada nas laterais. E na ausência de pressão, a garra se abre instantaneamente. Tendo quebrado essa captura, com base em mim, criei meu sistema para capturar figuras. Uma garra de metal comprime o anel, que é anexado ao rack de engrenagens, acionado por um servo.


Resultados

O trabalho no projeto continua e os resultados também estão melhorando gradualmente. No momento, o robô pode jogar um jogo que não seja limitado pelo número de movimentos, tanto em preto quanto em branco. Nesse caso, não haverá erros no trabalho da mecânica ou na parte do software do sistema. A propósito, ele não joga muito forte, no nível da terceira categoria, isso é facilmente corrigido substituindo o mecanismo de xadrez. Eu demonstrei esse robô na exposição "Archimedes-2016", onde ele tocou com diferentes pessoas quase sem parar por 6 horas seguidas e passou adequadamente nesse teste.

Só isso, espero que você esteja interessado neste projeto. Obviamente, ele tem suas desvantagens de recursos de implementação, portanto ainda há espaço para aprimoramento, aprimoramento e desenvolvimento. Ficarei feliz em receber conselhos, perguntas e sugestões nos comentários.

Source: https://habr.com/ru/post/pt392065/


All Articles