Detectar la ubicación del objeto en una cuadrícula

11

Estoy trabajando en un proyecto de Android ADK. Estoy buscando una manera de detectar las ubicaciones de las piezas de ajedrez en un tablero (8x8). Estaba mirando cosas como NFC pero parece demasiado caro. ¿Hay alguna tecnología diferente que deba considerar? Necesito algo para que el mundo pueda leer el estado completo de la pizarra en cualquier momento. Por ejemplo, algunas de las piezas podrían volcarse y una vez que se hayan configurado, necesito las ubicaciones. Para explicar esto con más detalle, en un juego de ajedrez de touroment si las piezas se mueven a la ubicación incorrecta y ninguno de los jugadores nota que el juego continuará. Así que necesito grabar el juego incluso si la posición es imposible según las reglas del juego.

Solo quiero que me indiquen una dirección general de qué tecnología mirar.

    
pregunta theJosh

6 respuestas

13

Primera idea : RFID. Una etiqueta (muy barata) debajo de cada pieza. Cada etiqueta debe identificar qué tipo de la pieza es (de {6 blanco} + {6 negro} = 12 tipos diferentes). Un circuito de transceptor y un multiplexor de 1 a 64 para toda la placa. Además, 64 antenas pequeñas, cada una debajo de cada posición de la placa. El transceptor funciona con una potencia de RF muy baja (debe encontrar la óptima, experimentalmente). Al cambiar las conexiones del multiplexor, escanea las 64 posiciones y lee las ID de las etiquetas (si las hay) presentes en cada una de ellas.

Nunca he usado los IC de los que habla, pero este documento puede ayudarte a implementar el multiplexor RFID (que será la parte más difícil, junto con su diseño cuidadoso).

Segunda idea : distingue cada tipo de pieza por su permeabilidad magnética única. A cada pieza, agregará una cierta masa en su parte inferior. Esta masa adicional será la misma para todas las 32 piezas (para que los usuarios se sientan cómodos con ellas). Cada masa adicional será la suma de dos masas: una masa "magnética", más una masa de "compensación" (no magnética). El único propósito de la masa de compensación será hacer que la masa extra total sea igual para todos los tipos de piezas. Necesitas distinguir 12 tipos diferentes de piezas. Cada tipo de pieza debe tener una masa magnética con una permeabilidad magnética única, \ $ \ mu \ $. Es probable que elija materiales con un alto \ $ \ mu \ $, pero hay muchos materiales entre los que puede elegir, cada uno con un \ $ \ mu \ $ diferente (vea una tabla here ).

Debajo de cada posición de la placa, tendrás que enrollar varias vueltas de cable (de modo que el diámetro sea casi el lado del cuadrado). Tendrás 64 bobinas. De nuevo, use un multiplexor de 1 a 64, para conectar solo uno de ellos a un medidor de inductancia. La diferencia, ahora, es que el multiplexor no necesita tratar con RF. Puede unir un nodo de todas las bobinas y usar 64 interruptores analógicos (muy económicos) para dirigir, como dije, una bobina al medidor de inductancia. El circuito deberá determinar, en el menor tiempo posible, cuál es la autoinducción medida en cada una de las 64 bobinas. No necesita mucha precisión. Solo necesita determinar 13 valores posibles diferentes para L (¡eso es menos de 4 bits!). Puede experimentar con métodos en el dominio del tiempo (por ejemplo, aplicando un voltaje constante y midiendo la pendiente de la corriente), o en el dominio de la frecuencia (por ejemplo, tratando de buscar rápidamente cuál es la frecuencia de resonancia, con un cierto capacitor agregado). Para alcanzar esos 12 valores diferentes para L, puedes jugar con diferentes permeabilidades y diferentes dimensiones para el material magnético.

Ya que tiene que escanear 64 posiciones (medir 64 autoinducciones) en un tiempo razonable, probablemente optaría por enfoques de dominio de tiempo. Por ejemplo, si se permite 1 segundo para leer todo el estado de la placa, tiene 15,6 ms para cada medición de inductancia. Desafiante, pero factible.

Si la velocidad realmente termina siendo el cuello de botella, podría hacer que su sistema sea 8 veces más rápido, si incluye 8 frontales análogos, en lugar de uno. Cada front end se dedicaría a cada fila en el tablero. De esa manera, podría medir 8 autoinducciones simultáneamente (lo que le da 125 ms para cada medición, y aún tendría un estado de tablero completo en 1 segundo). Estoy seguro de que una MCU, incluso con un solo ADC (con 8 canales), sería suficiente.

Esto podría ser (sin todos los detalles) el esquema para cada extremo (que podría ser uno para toda la placa, o uno para cada fila, como se mencionó), y una manera de estimar rápidamente las autoinducciones \ $ L_1 \ $ a \ $ L_N \ $ (N siendo 8 o 64). El nodo común para las bobinas sería el superior, y las señales de control para los interruptores analógicos no se muestran, por simplicidad. TS sería constante, y VX muestreado en TS se usaría para calcular la autoinducción. TG sería un poco más largo que TS.

Beneficiodeestasegundaidea:nohayRFinvolucrado.Sinembargo,necesitacrearsuspropias"etiquetas", con diferentes permeabilidades.

    
respondido por el Telaclavo
4

He visto muchos tableros de ajedrez electrónicos que tienen un orificio perforado en el centro de cada uno de los 64 cuadrados, con un fotodetector simple debajo de cada orificio, que da solo 1 bit: "nada aquí" o "una pieza de algún tipo está cubriendo el detector ". Esto requiere (a) algo de memoria y código para recordar la configuración anterior de la tabla y para rastrear qué pieza se movió a dónde, y (b) algo especial para manejar la promoción de peones. Esto puede detectar qué cuadrados están ocupados y qué cuadrados están abiertos en cualquier momento, pero no el estado completo de la junta.

    
respondido por el davidcary
1

GlyphChess resuelve esto usando un tablero de ajedrez transparente. Un escáner debajo lee el código de barras único pegado a la parte inferior de cada pieza para averiguar qué pieza está ubicada donde. "Código Secreto de PARC" Slashdot: Juega GNU Chess en tu escáner Esto puede releer el estado completo del tablero en cualquier momento. Dado que hay menos de 18 tipos únicos de piezas en el tablero de ajedrez, Tal vez sería mejor usar fácil de reconocer fiducials como marcadores d-touch en lugar de códigos de barras de alta resolución capaces de distinguir millones de objetos.

    
respondido por el davidcary
1

Haría esto haciendo un sensor de color para cada cuadrado y puse una etiqueta de color diferente en la parte inferior de la pieza.

El sensor de color se haría con tres LED (probablemente rojo, verde y azul) y un fototransistor sensible a toda la luz visible. Encienda los LED en secuencia y mida lo que mide el fototransistor reflejando la pieza de ajedrez.

Podrías hacerlo a la inversa, donde tienes un LED blanco y tres fototransistores diferentes sensibles a diferentes colores. Pero eso es más difícil de hacer. La mayoría de los fototransistores no son tan selectivos de color. Podría usar filtros, pero es más fácil usar solo LED de diferentes colores.

Si los LED están encendidos por un tiempo suficientemente corto, entonces no lo verías "demasiado". Además, los LED podrían usarse para otras cosas, como marcar el tablero o hacer pequeños shows de luces cuando se gana el juego.

Hay un pequeño truco en esto, que hace que todo sea fácil de cablear y construir. Avago tiene algo de luz ambiental para los chips I2C que podrían hacerlo más fácil. Otras empresas tienen cosas similares.

El siguiente truco es hacer suficientes etiquetas de diferentes colores para que tenga un color único por pieza. Esto solo requerirá algunas pruebas y errores, ya que no conocemos el espectro exacto de los diversos pigmentos de tinta / tóner de la impresora. Aun así, no debería ser demasiado difícil siempre que pueda obtener quizás 6 bits de resolución del sensor de luz. (6 bits le darían mucho margen de ruido).

    
respondido por el user3624
1

no hay necesidad de detectar color, solo tonos de gris. Cada pieza tiene un tono de gris en la parte inferior y un simple par de emisor / detector de IR en el tablero lee el valor analógico.

    
respondido por el Geoff
0

Una compañía llamada "Zowie" una vez produjo algunos sets de juego, incluido "Ellie's Enchanted Garden", que se conectaba a una computadora, y que podía detectar la posición de algunos tokens en una superficie de juego. Cada token consistía en un condensador y una bobina de cable, y la superficie de juego tenía una rejilla de cables; Poner una corriente a través de un cable horizontal a una frecuencia que coincida con la frecuencia LC de un conjunto de tapa de bobina haría que esa frecuencia aparezca en los cables verticales. La rejilla del cable era de aproximadamente seis cables / pulgada en ambas direcciones, y la resolución de posicionamiento aparente era probablemente de aproximadamente 0.05 ", pero solo había unos 16 cables conectados a la placa de la CPU; supongo que los cables se organizaron en un patrón tal que cada token reaccionaría a dos o más cables horizontales y estimularía al menos dos cables verticales; al notar qué combinación de cables reaccionaría a los estímulos, la CPU podría averiguar dónde estaba el token. No recuerdo lo que Zowie afirmó en su patente, o qué técnica anterior citó, pero es totalmente posible que la técnica anterior incluya un enfoque de dominio público ahora que sea adecuado para sus propósitos.

    
respondido por el supercat

Lea otras preguntas en las etiquetas