Tabla de contenido:

Robot de ajedrez Raspberry Pi Lynxmotion AL5D Brazo: 6 pasos
Robot de ajedrez Raspberry Pi Lynxmotion AL5D Brazo: 6 pasos

Video: Robot de ajedrez Raspberry Pi Lynxmotion AL5D Brazo: 6 pasos

Video: Robot de ajedrez Raspberry Pi Lynxmotion AL5D Brazo: 6 pasos
Video: Chess-Playing Robotic Arm 2024, Mes de julio
Anonim
Image
Image

¡Construye este robot de ajedrez y ve como vence a todo el mundo!

Es bastante fácil de construir si puede seguir las instrucciones sobre cómo construir el brazo y si tiene al menos un conocimiento elemental de programación de computadoras y Linux.

El humano, jugando con las blancas, hace un movimiento. Esto es detectado por el sistema de reconocimiento visual. El robot luego reflexiona y luego hace su movimiento. Etcétera …

Quizás lo más novedoso de este robot es el código para el reconocimiento de movimientos. Este código de visión también se puede utilizar para robots de ajedrez construidos de muchas otras formas (como mi robot de ajedrez con construcción LEGO).

Debido a que el movimiento del ser humano es reconocido por un sistema de visión, no se necesita ningún hardware especial de tablero de ajedrez (como interruptores de lengüeta o lo que sea).

Mi código está disponible para uso personal.

Paso 1: requisitos

La compilación del hardware
La compilación del hardware

Todo el código está escrito en Python, que se ejecutará, entre otras cosas, en una Raspberry Pi.

La Raspberry Pi es una computadora de placa única pequeña y económica (alrededor de $ 40) desarrollada por la Fundación Raspberry Pi. El modelo original se hizo mucho más popular de lo previsto, vendiéndose para usos como la robótica.

Mi robot usa una Raspberry Pi y el brazo del robot está construido a partir de un kit: Lynxmotion AL5D. El kit viene con una placa de servocontrolador. (El enlace que acabo de dar es al sitio de RobotShop en EE. UU.; Haga clic en una de las banderas en la parte superior derecha de las páginas de su sitio para su país, por ejemplo, Reino Unido).

También necesitará una mesa, una cámara, iluminación, un teclado, una pantalla y un dispositivo señalador (por ejemplo, un mouse). Y por supuesto, piezas de ajedrez y un tablero. Describo todas estas cosas con más detalle en los pasos siguientes.

Paso 2: la compilación del hardware

La compilación del hardware
La compilación del hardware

Como indiqué anteriormente, el corazón del código de visión funcionará con una variedad de compilaciones.

Esta construcción utiliza un kit de brazo robótico de Lynxmotion, el AL5D. Con el kit se incluye una placa de servocontrolador SSC-32U, que se utiliza para controlar los motores en el brazo.

Elegí el AL5D porque el brazo debe poder realizar movimientos precisos repetidos y no desviarse. El agarrador debe poder meterse entre las piezas y el brazo debe poder llegar al lado más alejado del tablero. Todavía necesitaba hacer algunas modificaciones como se detalla a continuación.

La Raspberry Pi que utilizo es una Raspberry Pi 3 Modelo B +. Habla con la placa SSC-32U a través de una conexión USB.

EDITAR: La Raspberry Pi 4 ya está disponible. Necesitarás:

  • Una fuente de alimentación USB-C de 15 W: recomendamos la fuente de alimentación USB-C oficial de Raspberry Pi
  • Una tarjeta microSD cargada con NOOBS, el software que instala el sistema operativo (compre una tarjeta SD precargada junto con su Raspberry Pi, o descargue NOOBS para cargar una tarjeta usted mismo)
  • Un teclado y un mouse (ver más adelante)
  • Un cable para conectarse a una pantalla a través del puerto micro HDMI de una Raspberry Pi 4

Necesitaba un mayor alcance en el brazo del robot, así que le hice algunas modificaciones menores, utilizando piezas adicionales de Lynxmotion que se pueden comprar en RobotShop:

1. Reemplazo del tubo de 4.5 pulgadas por uno de 6 pulgadas - Lynxmotion parte AT-04, código de producto RB-Lyn-115.

2. Intenté usar un conjunto adicional de resortes, pero volví a usar un par cuando implementé el elemento 3 a continuación

3. Extienda la altura usando un espaciador de 1 pulgada - Lynxmotion parte HUB-16, código de producto RB-Lyn-336.

4. Extendí el alcance de la pinza usando almohadillas de sujeción de repuesto unidas por algunas piezas de LEGO de repuesto que tenía y bandas elásticas (!). Esto funciona muy bien, ya que introduce flexibilidad al levantar piezas.

Estas modificaciones se pueden ver en la imagen de arriba a la derecha.

Hay una cámara montada sobre el tablero de ajedrez. Esto se usa para determinar el movimiento del ser humano.

Paso 3: el software que mueve el robot

Todo el código está escrito en Python 2. Se necesita código de cinemática inversa para mover los distintos motores correctamente de manera que las piezas de ajedrez se puedan mover. Utilizo el código de la biblioteca de Lynxmotion que admite el movimiento de los motores en dos dimensiones y lo he agregado con mi propio código para las 3 dimensiones, el ángulo de agarre y el movimiento de la mordaza de agarre.

Entonces, tenemos un código que moverá piezas, tomará piezas, enrocará, apoyará al paso, y así sucesivamente.

El motor de ajedrez es Stockfish, ¡que puede vencer a cualquier humano! "Stockfish es uno de los motores de ajedrez más fuertes del mundo. También es mucho más fuerte que los mejores grandes maestros de ajedrez humanos".

El código para impulsar el motor de ajedrez, validar que un movimiento es válido, etc. es ChessBoard.py

Utilizo un código de https://chess.fortherapy.co.uk para interactuar con eso. ¡Mi código (arriba) entonces interactúa con eso!

Paso 4: el software que reconoce el movimiento del ser humano

He descrito esto en detalle en el Instructable para mi construcción de Chess Robot Lego, ¡así que no necesito repetirlo aquí!

Mis piezas "negras" eran originalmente marrones, pero las pinté de negro mate (con "pintura de pizarra"), lo que hace que el algoritmo funcione mejor en condiciones de iluminación más variables.

Paso 5: cámara, luces, teclado, mesa, pantalla

Cámara, luces, teclado, mesa, pantalla
Cámara, luces, teclado, mesa, pantalla
Cámara, luces, teclado, mesa, pantalla
Cámara, luces, teclado, mesa, pantalla

Estos son los mismos que en mi construcción de Chess Robot Lego, por lo que no necesito repetirlos aquí.

Excepto que esta vez utilicé un altavoz diferente y significativamente mejor, un altavoz Bluetooth Lenrui, que conecto al RPi por USB.

Disponible en amazon.com, amazon.co.uk y otros puntos de venta.

Además, ahora estoy usando una cámara diferente, una HP Webcam HD 2300, ya que no pude lograr que la cámara anterior se comportara de manera confiable.

Los algoritmos funcionan mejor si el tablero de ajedrez tiene un color que está muy lejos del color de las piezas. En mi robot, las piezas son blanquecinas y marrones, y el tablero de ajedrez está hecho a mano en cartulina, y es de color verde claro con poca diferencia entre los cuadrados "negros" y "blancos".

Los algoritmos necesitan una orientación particular de la cámara a la placa. Por favor comente a continuación si tiene algún problema. El brazo tiene un alcance limitado, por lo que el tamaño del cuadrado debe ser de 3,5 cm.

Paso 6: obtención del software

1. Stockfish

Si ejecuta Raspbian en su RPi, puede usar el motor Stockfish 7, es gratis. Solo corre:

sudo apt-get install stockfish

2. ChessBoard.py Obtenga esto desde aquí.

3. Código basado en https://chess.fortherapy.co.uk/home/a-wooden-chess… Viene con mi código.

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

5. Mi código que invoca todo el código anterior y que hace que el robot haga los movimientos, y mi código de visión. Obtenga esto de mí primero suscribiéndose a mi canal de YouTube, luego haciendo clic en el botón "Favorito" cerca de la parte superior de este Instructable y luego publicando un comentario en este Instructable, y responderé.

Recomendado: