Un robot de madera que puede jugar al ajedrez.


Probablemente haya visto muchos proyectos basados ​​en Arduino que se administraron a través de algún tipo de teléfono inteligente. Tales proyectos, por regla general, eran así: una máquina con un módulo Bluetooth insertado, a la que se envían comandos desde el emulador de joystick en el teléfono (o algo así). Se hicieron muchos artilugios de este tipo, y tal idea vino a mi mente. Pero, ¿qué pasa si Arduino te ayuda a separarte de tu teléfono inteligente por un tiempo, pero al mismo tiempo continuar jugando? Y así nació el proyecto de un robot de ajedrez, cuyos "cerebros" y "ojos" se concentran en el teléfono inteligente Android. Más detalles - debajo del corte.


Vista general


[Hirez]

Toda esta composición es una caja de madera en la que hay un tablero de ajedrez, un manipulador y un soporte retroiluminado en el que descansa el teléfono. Después del juego, todo lo anterior se elimina en esta misma caja y se puede transportar a cualquier lugar sin problemas, por ejemplo, en una mochila.

El principio de funcionamiento es el siguiente. En la parte superior del tablero, en un soporte especial, se instala un teléfono con una aplicación especial que, utilizando un sistema de visión por computadora, fija la posición actual de las piezas en el tablero. Basado en el hecho de que el sistema monitorea todos los movimientos, no hay necesidad de determinar visualmente qué figura está en la celda, es suficiente saber el hecho de su presencia y color.
Después de que un movimiento realizado por una persona es reparado, esta información se transmiteun motor de ajedrez que decide a qué movimiento debe responder.
A continuación, los ángulos se calculan para las posiciones que debe tomar el robot para realizar un movimiento. Luego, esta información se envía por Bluetooth al manipulador. El manipulador solo puede aceptar esta
información y hacer un movimiento.

Espero que el lector de este artículo encuentre algo interesante para él aquí. Tal vez alguien quiera repetir este proyecto o hacer algo similar. Quiero decir de inmediato que no habrá un tutorial, porque copiar este trabajo simplemente de acuerdo con las instrucciones no funcionará paso a paso, porque hay muchas sutilezas que solo se pueden entender al intentar implementarlo. Si desea ver los dibujos del manipulador, o si tiene alguna otra pregunta, escriba un mensaje personal en GT o VK , le responderé de forma gratuita y previa solicitud.

Parte de software

Toda esta composición está controlada por una pequeña aplicación de Android. Tiene muchas tareas: determinar las cifras en el tablero, calcular los ángulos para el manipulador, trabajar con el motor de ajedrez, un par de mensajes de voz del robot como "¡Te puse el cheque!" y "¡Gracias por el juego!" Pero con todo esto, la interfaz de la aplicación cabe en una pantalla.


El sistema de visión es bastante simple. Desde la perspectiva del teléfono, no hay mucha diferencia entre, digamos, un rey y un caballo: visualmente ambas figuras se verán como círculos en blanco y negro. Por lo tanto, el sistema no se familiariza con la posición que ve cada vez más, sino que recuerda la secuencia de todos los movimientos realizados. Y el movimiento realizado es muy simple de determinar: si en algún momento el programa ve que una pieza ha desaparecido en una celda y aparece en otra, entonces esto se considerará un movimiento. Así es como funciona.
Este tipo de visión técnica se implementa exclusivamente a través de la API de Android, sin usar OpenCV o algo similar. Esto no está bien, la razón aquí es un interés personal en realizar todo desde cero.


Manipulador

Se requirió mucha búsqueda creativa para crear un diseño de manipulador que pueda llevar a cabo su trabajo de manera adecuada con los servocontroladores chinos baratos TowerPro sg-90 que tuve en grandes cantidades, que no son de alta calidad. Por lo tanto, ambos brazos del manipulador están hechos en forma de paralelogramos, esto permite que el sistema de captura de formas permanezca siempre en posición vertical. Esto, a su vez, hace que sea innecesario agregar otro servo, por lo tanto, el sistema tendrá menos errores, le permitirá ser más ligero y más o menosconfiable Dado que los engranajes también están hechos de madera, es difícil lograr la mejor calidad de su trabajo, por lo tanto, para compensar la reacción, el manipulador realiza un movimiento lateral antes de cada movimiento para acercarse a cada punto de un lado.

En cuanto a la fuente de alimentación, su robot la recibe de dos placas base de cargas ordinarias para el teléfono, que están ubicadas de forma segura en la carcasa. Una carga alimenta el controlador junto con el módulo Bluetooth, la otra directamente a la mecánica. Para hacer la iluminación, se desmanteló la bombilla LED. Al final resultó que, hay dos placas en su interior: los LED se encuentran en uno y el convertidor de energía en el otro. Uno está unido al soporte, el otro se coloca en el cuerpo de la caja. Toda la potencia se muestra en un pequeño enchufe en el costado del cuerpo de la caja:


Otra imagen que muestra el área de trabajo del manipulador para el punto rojo marcado en él. Para el eje cero, el rango del ángulo es 180 °.


No logré hacer un robot así de inmediato, algunos prototipos funcionaron muy mal y otros funcionaron para otro trabajo. Por ejemplo, el robot en el siguiente video pone azúcar en una taza y revuelve la gaviota.


Sistema de captura de forma

De particular interés, en mi opinión, es el diseño del sistema de captura de figuras. La solución más obvia aquí era hacer que dos mejillas se movieran una hacia la otra bajo el control de un servoaccionamiento. Algo como esto:

Como puede ver en la figura, para un conjunto de piezas completamente pequeñas con un diámetro de base de 18 mm, debe hacer que la jaula del tablero de ajedrez sea casi el doble de grande, y el tamaño del tablero también resulta ser irracionalmente enorme. Después de varias implementaciones fallidas de esta opción, me encontré con algo tan inusual, que se llama "agarre de collar flexible"), y se ve así:

Es decir, es un núcleo hueco flexible en el interior con una pequeña garra metálica con resorte en el extremo, que se cierra si se aprieta a los lados. Y en ausencia de presión, la garra se abre instantáneamente. Habiendo roto tal captura, sobre la base hice mi sistema para capturar figuras. Una garra de metal comprime el anillo, que está unido a la cremallera, impulsado por un servo.


Resultados

El trabajo en el proyecto continúa, y los resultados también están mejorando gradualmente. Por el momento, el robot puede jugar un juego que no está limitado por el número de movimientos, tanto para blanco como para negro. En este caso, no habrá errores ni en el trabajo de la mecánica ni en la parte del software del sistema. Por cierto, no juega muy fuerte, al nivel de la tercera categoría, esto se corrige fácilmente reemplazando el motor de ajedrez. Demostré este robot en la exposición "Arquímedes-2016", donde jugó con diferentes personas casi sin parar durante 6 horas seguidas y pasó adecuadamente esa prueba de manejo.

Eso es todo, espero que te haya interesado este proyecto. Por supuesto, tiene sus inconvenientes en las características de implementación, por lo que todavía hay espacio para mejoras, mejoras y desarrollo. Estaré encantado de cualquier consejo, pregunta y sugerencia en los comentarios.

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


All Articles