Tabla de contenido:
- Paso 1: requisitos
- Paso 2: la compilación del hardware
- Paso 3: el software que mueve el robot
- Paso 4: el software que reconoce el movimiento del ser humano
- Paso 5: cámara, luces, teclado, mesa, pantalla
- Paso 6: obtención del software
Video: Robot de ajedrez Raspberry Pi Lynxmotion AL5D Brazo: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
¡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
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
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
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:
Reloj de ajedrez Arduino: 6 pasos
Arduino Chessclock: No pude encontrar instrucciones en un buen reloj de ajedrez Arduino, así que construí el mío propio, que describiré aquí
Robot de ajedrez hecho con LEGO y Raspberry Pi: 6 pasos
Robot de ajedrez hecho con LEGO y Raspberry Pi: ¡Sorprende a tus amigos con este robot de ajedrez! No es demasiado difícil de construir si ha hecho robots LEGO antes y si tiene al menos un conocimiento elemental de programación de computadoras y Linux. El robot hace sus propios movimientos y usa reconocimientos visuales
Ajedrez digital: siga su juego de ajedrez en línea: 5 pasos
Ajedrez digital: realice un seguimiento de su juego de ajedrez en línea: he jugado mucho al ajedrez desde que era joven, y dado que la web tiene una gran cantidad de sitios web para jugar al ajedrez contra computadoras u oponentes en vivo, nunca encontré un sitio web que rastrea la partida de ajedrez en la que estás jugando
BRAZO ROBÓTICO Xbox 360 [ARDUINO]: BRAZO AXIOMA: 4 pasos
BRAZO ROBÓTICO Xbox 360 [ARDUINO]: BRAZO AXIOM:
CÓMO MONTAR UN IMPRESIONANTE BRAZO ROBOT DE MADERA (PARTE 3: BRAZO ROBOT) - BASADO EN MICRO: BITN: 8 pasos
CÓMO MONTAR UN IMPRESIONANTE BRAZO ROBOT DE MADERA (PARTE 3: BRAZO ROBOT) - BASADO EN EL MICRO: BITN: El siguiente proceso de instalación se basa en la finalización del modo de evitación de obstáculos. El proceso de instalación de la sección anterior es el mismo que el proceso de instalación en el modo de seguimiento de línea. Entonces echemos un vistazo a la forma final de A