Detectando o posicionamento do objeto em uma grade

11

Estou trabalhando em um projeto Android ADK. Estou procurando uma maneira de detectar os locais das peças de xadrez em um tabuleiro (8x8). Eu estava olhando para coisas como NFC, mas parece muito caro. Existe uma tecnologia diferente que eu deva considerar. Eu preciso de algo que o mundo consiga ler todo o estado do quadro a qualquer momento. Por exemplo, algumas das peças podem ser derrubadas e, uma vez configuradas, preciso dos locais. Para explicar melhor, em um jogo de xadrez desafiador, se as peças forem movidas para o local errado e nenhum dos jogadores perceber que o jogo continuará. Então, eu preciso gravar o jogo, mesmo que a posição seja impossível com base nas regras do jogo.

Eu só quero ser apontado em uma direção geral de qual tecnologia olhar.

theJosh
fonte
"Em um jogo de xadrez de torneio, se as peças forem movidas para o local errado e nenhum jogador perceber que o jogo continuará". Estou curioso. As regras do xadrez dizem isso? (Na verdade, faz sentido, porque -Se há ninguém mais watching-, como poderia não continuar, se nenhum deles percebe?)
Telaclavo
@ Telaclavo Posso confirmar, isso aconteceu comigo em um torneio. Não havia solução aparente no meu baixo nível de jogo.
Stephen Collings

Respostas:

13

Primeira ideia : RFID. Uma etiqueta (muito barata) embaixo de cada peça. Cada etiqueta deve identificar que tipo de peça é (de {6 branco} + {6 preto} = 12 tipos diferentes). Um circuito transceptor e um multiplexador de 1 a 64 para toda a placa. Além disso, 64 antenas pequenas, cada uma abaixo de cada posição da placa. O transceptor opera com uma potência de RF muito baixa (você deve encontrar a melhor, experimentalmente). Alterando as conexões do multiplexador, você varre todas as 64 posições e lê os IDs das tags (se houver) presentes em cada uma delas.

Nunca usei os CIs de que trata, mas este documento pode ajudá-lo a implementar o multiplexador RFID (que será a parte mais desafiadora, juntamente com seu layout cuidadoso).

μμμ)

Abaixo de cada posição da placa, você precisará enrolar várias voltas de fio (para que o diâmetro seja quase o lado do quadrado). Você terá 64 bobinas. Novamente, use um multiplexador de 1 a 64, para conectar apenas um deles a um medidor de indutância. A diferença, agora, é que o multiplexador não precisa lidar com RF. Você pode amarrar um nó de todas as bobinas e usar 64 interruptores analógicos (muito baratos), para direcionar, como eu disse, uma bobina para o medidor de indutância. O circuito deverá determinar, no menor tempo possível, qual é a auto-indutância medida em cada uma das 64 bobinas. Não precisa de muita precisão. Ele só precisa determinar 13 valores possíveis diferentes para L (que é menor que 4 bits!). Você pode experimentar métodos no domínio do tempo (por exemplo, aplicar uma tensão constante e medir a inclinação da corrente), ou no domínio da frequência (por exemplo, tentando procurar rapidamente qual é a frequência ressonante, com um determinado capacitor adicionado). Para atingir esses 12 valores diferentes para L, você pode jogar com diferentes permeabilidades e dimensões diferentes para o material magnético.

Como você precisa digitalizar 64 posições (medir 64 auto-indutâncias) em um tempo razoável, eu provavelmente usaria abordagens no domínio do tempo. Por exemplo, se você permitir 1 segundo para ler todo o estado do quadro, terá 15,6 ms para cada medição de indutância. Desafiador, mas factível.

Se a velocidade realmente for o gargalo, você poderá tornar o sistema 8x mais rápido, se incluir 8 front ends analógicos, em vez de um. Cada front end seria dedicado a cada linha do quadro. Dessa forma, você pode medir 8 auto-indutâncias simultaneamente (fornecendo 125 ms para cada medição, e você ainda terá um estado inteiro da placa em 1 segundo). Tenho certeza de que um MCU, mesmo com um único ADC (com 8 canais), seria suficiente.

L1LN

Idéia 2

Benefício desta segunda ideia: sem RF envolvido. No entanto, você precisa criar suas próprias "tags", com diferentes permeabilidades.

Telaclavo
fonte
Obrigado. Sua primeira idéia parece ser o caminho a percorrer. Eu gosto da criatividade da sua segunda ideia. Pode ser melhor para um produto comercial em que as peças possam ser personalizadas. No entanto, estou apenas fazendo isso por diversão.
theJosh 21/05
@theJosh Mesmo depois de responder, há uma frase na sua pergunta que ainda me confunde. O exemplo "Por exemplo, algumas peças podem ser derrubadas e, depois de configuradas, preciso dos locais" não faz muito sentido para mim, porque se as peças forem derrubadas, deve ser a memória do seu sistema que deve informar ao usuário onde colocar as peças e não o contrário. Interpretei essa frase como: você deseja que o sistema seja capaz de ler o estado de qualquer conselho arbitrário, sem depender da história, e descartei respostas mais simples com isso em mente.
Telaclavo 21/05
@theJosh (continuação). Se não fosse esse o caso, a solução da davidcary seria mais simples.
Telaclavo
O problema com a primeira idéia é que ela requer um alcance bastante curto para o RFID. Se o alcance for muito alto (mais do que um quadrado), torna-se mais difícil perceber a posição correta da peça. Não é impossível (espero), apenas muito mais difícil.
@DavidKessner Certo, foi por isso que eu disse que ele precisaria encontrar a potência ideal de RF experimentalmente. A distância da antena à etiqueta é muito menor que a distância entre dois quadrados adjacentes, portanto deve ser possível.
Telaclavo
4

Eu já vi muitos tabuleiros de xadrez eletrônicos que têm um furo no centro de cada um dos 64 quadrados, com um simples detector de fotos embaixo de cada buraco, o que dá apenas 1 bit - "nada aqui" ou "algum tipo de peça é cobrindo o detector ". Isso requer (a) alguma memória e código para lembrar a configuração antiga do quadro e rastrear qual peça foi movida para onde e (b) algo especial para lidar com a promoção de peões. Isso pode detectar quais quadrados estão ocupados e quais estão abertos a qualquer momento, mas não o estado completo do tabuleiro.

davidcary
fonte
1
Esperto! Hardware muito simples suportado pela lógica!
clabacchio
Isso funciona desde que apenas uma peça seja movida por vez. Não funciona no caso em que o OP mencionou onde várias peças são derrubadas e colocadas novamente. Caso contrário, é uma boa solução.
1

O GlyphChess resolve isso usando um tabuleiro de xadrez transparente. Um scanner abaixo lê o código de barras exclusivo preso na parte inferior de cada peça para descobrir qual peça está localizada onde. Slashdot "Código Secreto do PARC" : jogue xadrez GNU no seu scanner Isso pode reler o estado completo do tabuleiro a qualquer momento. Como existem menos de 18 tipos únicos de peças no tabuleiro, talvez seja melhor usar fiduciais fáceis de reconhecer , como marcadores d-touch, em vez de códigos de barras de alta resolução capazes de distinguir milhões de objetos.

davidcary
fonte
Apenas curioso. Sendo o quadro transparente, como eles mostram quadrados em preto e branco para o usuário? Talvez com alguma transparência intermediária? E o usuário não vê as luzes?
Telaclavo
@Telaclavo: Eu não sei - talvez quadrados quase transparentes matizem o tradicional verde e lustre? Se eu estivesse construindo isso hoje, tornaria o interior da caixa branco, depois colocaria uma câmera na parte inferior e colocaria o tabuleiro de xadrez de vidro por cima. Se houver luz suficiente para os humanos verem as peças, haverá mais do que luz refletindo no interior branco e iluminando o código de barras na parte inferior de cada peça para que uma câmera possa lê-las - não são necessárias luzes.
Davidcary
1

Eu faria isso criando um sensor de cor para cada quadrado e colocando uma etiqueta de cor diferente na parte inferior da peça.

O sensor de cor seria fabricado usando três LEDs (provavelmente vermelho, verde e azul) e um foto-transistor sensível a toda a luz visível. Ligue os LEDs em sequência e meça o que o fototransistor mede refletindo na peça de xadrez.

Você poderia fazer isso ao contrário, onde você tem um LED branco e três fototransistores diferentes, sensíveis a cores diferentes. Mas isso é mais difícil de fazer. A maioria dos fototransistores não tem essa cor seletiva. Você pode usar filtros, mas é mais fácil usar apenas LEDs de cores diferentes.

Se os LEDs estiverem acesos por um curto período de tempo, você não o verá "demais". Além disso, os LEDs podem ser usados ​​para outras coisas, como marcar o tabuleiro ou fazer pequenos shows de luz quando o jogo é vencido.

Há um truque nisso, que está facilitando a instalação e a montagem de tudo. A Avago possui alguma luz ambiente para os chips I2C que podem facilitar. Outras empresas têm coisas semelhantes.

O próximo truque é criar etiquetas coloridas diferentes suficientes para que você tenha uma cor única por peça. Isso exigirá apenas tentativa e erro, pois não sabemos o espectro exato dos vários pigmentos de tinta / toner da impressora. Mesmo assim, não deve ser muito difícil, desde que você possa obter talvez 6 bits de resolução do sensor de luz. (6 bits lhe dariam bastante margem de ruído.)


fonte
1

não é necessário detectar cores, apenas tons de cinza. Cada peça tem um tom de cinza na parte inferior e um simples par emissor / detector de IR configurado no painel lê o valor analógico.

Geoff
fonte
0

Uma empresa chamada "Zowie" já produziu alguns conjuntos de peças, incluindo "Ellie's Enchanted Garden", que se conectariam a um computador e que poderiam detectar a posição de algumas fichas na superfície de jogo. Cada símbolo consistia em um capacitor e uma bobina de fio, e a superfície de jogo apresentava uma grade de fios; colocar uma corrente através de um fio horizontal a uma frequência correspondente à frequência LC de um conjunto de tampa de bobina faria com que essa frequência aparecesse nos fios verticais. A grade de arame tinha cerca de seis fios / polegada em ambas as direções, e a resolução de posicionamento aparente era provavelmente de 0,05 ", mas havia apenas 16 fios conectados à placa da CPU; eu acho que os fios estavam dispostos em um padrão tal que cada token reagiria a dois ou mais fios horizontais e estimularia pelo menos dois fios verticais; observando qual combinação de fios reagiria a estímulos, a CPU poderia descobrir onde estava o token. Não me lembro do que Zowie reivindicou em sua patente ou de qual arte anterior ela citou, mas é inteiramente possível que a arte anterior incluísse uma abordagem de domínio público que agora seria adequada para seus propósitos.

supercat
fonte