Índice:

Braço AL5D do Robô de Xadrez Raspberry Pi Lynxmotion: 6 etapas
Braço AL5D do Robô de Xadrez Raspberry Pi Lynxmotion: 6 etapas

Vídeo: Braço AL5D do Robô de Xadrez Raspberry Pi Lynxmotion: 6 etapas

Vídeo: Braço AL5D do Robô de Xadrez Raspberry Pi Lynxmotion: 6 etapas
Vídeo: Robô brasileiro que joga xadrez - Arduino e Stockfish (Velocidade Normal) 2024, Novembro
Anonim
Image
Image

Construa este robô de xadrez e veja-o derrotar todos!

É muito fácil de construir se você seguir as instruções sobre como construir o braço e se tiver pelo menos um conhecimento básico de programação de computadores e Linux.

O humano, jogando com as brancas, faz um movimento. Isso é detectado pelo sistema de reconhecimento visual. O robô então pondera e então faz seu movimento. E assim por diante …

Talvez a coisa mais nova neste robô seja o código para reconhecimento de movimento. Este código de visão também pode ser usado por robôs de xadrez construídos de muitas outras maneiras (como meu robô de xadrez com construção de LEGO).

Como o movimento do humano é reconhecido por um sistema de visão, nenhum hardware especial de tabuleiro de xadrez (como interruptores de palheta ou qualquer outro) é necessário.

Meu código está disponível para uso pessoal.

Etapa 1: Requisitos

A construção do hardware
A construção do hardware

Todo o código é escrito em Python, que será executado, entre outras coisas, em um Raspberry Pi.

O Raspberry Pi é um computador de placa única pequeno e barato (cerca de US $ 40) desenvolvido pela Raspberry Pi Foundation. O modelo original se tornou muito mais popular do que o previsto, vendendo para usos como robótica

Meu robô usa um Raspberry Pi e o braço do robô é construído a partir de um kit: Lynxmotion AL5D. O kit vem com uma placa servo controladora. (O link que acabei de fornecer é para o site do RobotShop nos EUA; clique em uma das bandeiras no canto superior direito das páginas do site do seu país, por exemplo, Reino Unido).

Você também precisará de uma mesa, câmera, iluminação, teclado, tela e dispositivo apontador (por exemplo, mouse). E, claro, peças de xadrez e um tabuleiro. Descrevo todas essas coisas com mais detalhes nas etapas subsequentes.

Etapa 2: a construção do hardware

A construção do hardware
A construção do hardware

Como indiquei anteriormente, o coração do código de visão funcionará com uma variedade de compilações.

Esta construção usa um kit de braço robótico da Lynxmotion, o AL5D. Incluído com o kit está uma placa servo controladora SSC-32U, que é usada para controlar os motores no braço.

Eu escolhi o AL5D porque o braço tem que ser capaz de fazer movimentos repetidos e precisos e não cair. O agarrador deve ser capaz de se mover entre as peças e o braço deve ser capaz de alcançar o outro lado do tabuleiro. Eu ainda precisava fazer algumas modificações conforme detalhado abaixo.

O Raspberry Pi que uso é um Raspberry Pi 3 Model B +. Ele se comunica com a placa SSC-32U por meio de uma conexão USB.

EDITAR: O Raspberry Pi 4 já está disponível. Você precisará de:

  • Uma fonte de alimentação USB-C de 15 W - recomendamos a fonte de alimentação Raspberry Pi USB-C oficial
  • Um cartão microSD carregado com NOOBS, o software que instala o sistema operacional (compre um cartão SD pré-carregado junto com seu Raspberry Pi ou baixe o NOOBS para carregar um cartão você mesmo)
  • Um teclado e mouse (veja mais tarde)
  • Um cabo para conectar a um monitor por meio de uma porta micro HDMI do Raspberry Pi 4

Eu precisava de mais alcance no braço do robô, então fiz algumas pequenas modificações nele, usando peças adicionais do Lynxmotion que podem ser compradas na RobotShop:

1. Substituiu o tubo de 4,5 polegadas por um de 6 polegadas - peça Lynxmotion AT-04, código do produto RB-Lyn-115.

2. Tentei usar um conjunto adicional de molas, mas voltei para um par quando implementei o item 3 abaixo

3. Aumente a altura usando um espaçador de 1 polegada - peça Lynxmotion HUB-16, código do produto RB-Lyn-336.

4. Amplie o alcance da garra usando almofadas sobressalentes presas por algumas peças sobressalentes de LEGO que eu tinha e faixas elásticas (!) Isso funciona muito bem, pois introduz flexibilidade ao levantar peças.

Essas modificações podem ser vistas na imagem acima à direita.

Há uma câmera montada acima do tabuleiro de xadrez. Isso é usado para determinar o movimento do humano.

Etapa 3: O software que move o robô

Todo o código é escrito em Python 2. O código de cinemática inversa é necessário para mover os vários motores corretamente de forma que as peças de xadrez possam ser movidas. Eu uso o código da biblioteca do Lynxmotion, que suporta mover os motores em duas dimensões e adicionei meu próprio código para 3 dimensões, ângulo da garra e movimento da mandíbula da garra.

Então, temos o código que moverá peças, pegará peças, fortificará, apoiará en passant e assim por diante.

O mecanismo de xadrez é Stockfish - que pode vencer qualquer humano! "Stockfish é um dos motores de xadrez mais fortes do mundo. Também é muito mais forte do que os melhores grandes mestres humanos do xadrez."

O código para acionar o mecanismo de xadrez, validar se um lance é válido e assim por diante, é ChessBoard.py

Eu uso alguns códigos de https://chess.fortherapy.co.uk para fazer a interface com isso. Meu código (acima) faz interface com ele!

Etapa 4: o software que reconhece o movimento humano

Eu descrevi isso em detalhes no Instructable for my Chess Robot Lego - portanto, não preciso repeti-lo aqui!

Minhas peças "pretas" eram originalmente marrons, mas eu as pintei de preto fosco (com "tinta de quadro negro"), o que faz com que o algoritmo funcione melhor em condições de iluminação mais variáveis.

Etapa 5: câmera, luzes, teclado, mesa, tela

Câmera, luzes, teclado, mesa, visor
Câmera, luzes, teclado, mesa, visor
Câmera, luzes, teclado, mesa, visor
Câmera, luzes, teclado, mesa, visor

Eles são iguais aos da minha construção de Lego do robô de xadrez, então não preciso repeti-los aqui.

Só que desta vez usei um alto-falante diferente e significativamente melhor, um alto-falante Lenrui Bluetooth, que conectei ao RPi por USB.

Disponível em amazon.com, amazon.co.uk e outros estabelecimentos.

Além disso, estou usando uma câmera diferente - uma HP Webcam HD 2300, pois não consegui fazer com que a câmera anterior se comportasse de maneira confiável.

Os algoritmos funcionam melhor se o tabuleiro de xadrez tiver uma cor muito diferente da cor das peças! No meu robô, as peças são esbranquiçadas e marrons, e o tabuleiro de xadrez é feito à mão em cartolina e é verde claro com pouca diferença entre as casas "pretas" e "brancas".

Os algoritmos precisam de uma orientação particular da câmera para o embarque. Por favor, comente abaixo se você estiver tendo um problema. O braço tem alcance limitado e, portanto, o tamanho do quadrado deve ser 3,5 cm.

Etapa 6: Obtendo o software

1. Stockfish

Se você executar o Raspbian em seu RPi, poderá usar o motor Stockfish 7 - é grátis. Apenas corra:

sudo apt-get install stockfish

2. ChessBoard.py Obtenha aqui.

3. Código baseado em https://chess.fortherapy.co.uk/home/a-wooden-chess… Vem com meu código.

4. Biblioteca de cinemática inversa Python 2D -

5. Meu código que invoca todo o código acima e que faz com que o robô faça os movimentos, e meu código de visão. Obtenha isso de mim, primeiro inscrevendo-se no meu canal do YouTube, clicando no botão "Favorito" próximo ao topo deste Instructable e postando um comentário neste Instructable, e eu responderei.

Recomendado: