Rilevamento del posizionamento degli oggetti su una griglia


11

Sto lavorando a un progetto Android ADK. Sto cercando un modo per rilevare la posizione dei pezzi degli scacchi su una scacchiera (8x8). Stavo guardando cose come NFC ma sembra troppo costoso. Esiste una tecnologia diversa che dovrei considerare. Ho bisogno di qualcosa che il mondo sia in grado di leggere in qualsiasi momento l'intero stato del tabellone. Ad esempio, alcuni pezzi potrebbero essere rovesciati e una volta che sono stati ripristinati, ho bisogno delle posizioni. Per spiegarlo ulteriormente, in una partita a scacchi del torneo se i pezzi vengono spostati nella posizione sbagliata e nessuno dei due giocatori nota che il gioco continuerà. Quindi devo registrare il gioco anche se la posizione è impossibile in base alle regole del gioco.

Voglio solo essere indirizzato in una direzione generale di quale tecnologia guardare.


"In una partita di scacchi del torneo se i pezzi vengono spostati nella posizione sbagliata e nessuno dei due giocatori nota che la partita continuerà". Sono curioso. Le regole degli scacchi lo dicono? (In realtà, ha senso, perché -se non c'è nessun altro che guarda-, come potrebbero non continuare, se nessuno di loro se ne accorge?)
Telaclavo,

@Telaclavo Posso confermare, mi è successo in un torneo. Non c'era una soluzione apparente al mio basso livello di gioco.
Stephen Collings,

Risposte:


13

Prima idea : RFID. Un tag (molto economico) sotto ogni pezzo. Ogni tag deve identificare il tipo di pezzo (da {6 bianco} + {6 nero} = 12 tipi diversi). Un circuito ricetrasmettitore e un multiplexer da 1 a 64 per l'intera scheda. Inoltre, 64 piccole antenne, ognuna sotto ciascuna posizione della scheda. Il ricetrasmettitore funziona a una potenza RF molto bassa (dovresti trovare quella ottimale, sperimentalmente). Modificando le connessioni multiplexer, si esegue la scansione di tutte e 64 le posizioni e si leggono gli ID dei tag (se presenti) presenti su ognuno di essi.

Non ho mai usato i circuiti integrati di cui parla, ma questo documento potrebbe aiutarti a implementare il multiplexer RFID (che sarà la parte più impegnativa, insieme al suo layout accurato).

μμμ).

Sotto ogni posizione della tavola, dovrai avvolgere diversi giri di filo (in modo che il diametro sia quasi il lato del quadrato). Avrai 64 bobine. Ancora una volta, utilizzare un multiplexer da 1 a 64, per collegarne solo uno a un misuratore di induttanza. La differenza, ora, è che il multiplexer non ha bisogno di gestire la RF. È possibile collegare un nodo di tutte le bobine insieme e utilizzare 64 interruttori analogici (molto economici), per dirigere, come ho detto, una bobina al misuratore di induttanza. Il circuito dovrà determinare, nel più breve tempo possibile, qual è l'autoinduttanza misurata su ciascuna delle 64 bobine. Non ha bisogno di molta precisione. Deve solo determinare 13 diversi possibili valori per L (che è inferiore a 4 bit!). Puoi sperimentare metodi nel dominio del tempo (ad esempio, applicare una tensione costante e misurare la pendenza della corrente), o nel dominio della frequenza (ad esempio, cercando di cercare rapidamente qual è la frequenza di risonanza, con un certo condensatore aggiunto). Per ottenere quei 12 valori diversi per L, puoi giocare con diverse permeabilità e dimensioni diverse per il materiale magnetico.

Dato che devi scansionare 64 posizioni (misura 64 autoinduttanze) in un tempo ragionevole, probabilmente sceglierei approcci nel dominio del tempo. Ad esempio, se ti concedi 1 secondo per leggere l'intero stato della scheda, hai 15,6 ms per ogni misurazione dell'induttanza. Impegnativo, ma fattibile.

Se la velocità finisce per essere davvero il collo di bottiglia, potresti rendere il tuo sistema 8 volte più veloce, se includi 8 front-end analogici, anziché uno. Ogni front-end sarebbe dedicato a ciascuna riga del tabellone. In questo modo, potresti misurare 8 autoinduttanze contemporaneamente (dandoti 125 ms per ogni misura e avresti comunque uno stato intero della scheda in 1 secondo). Sono sicuro che un MCU, anche con un singolo ADC (con 8 canali), sarebbe sufficiente.

L1LN

Idea 2

Beneficio di questa seconda idea: nessuna RF coinvolta. Tuttavia, è necessario creare i propri "tag", con permeabilità diverse.


Grazie. La tua prima idea sembra essere la strada da percorrere. Mi piace la creatività della tua seconda idea. Potrebbe essere meglio per un prodotto commerciale in cui i pezzi potrebbero essere realizzati su misura. Tuttavia, lo sto solo facendo per divertimento.
theJosh

@theJosh Anche dopo aver risposto, c'è una frase nella tua domanda che mi confonde ancora. Quello "Ad esempio alcuni pezzi potrebbero essere rovesciati e una volta che sono stati ripristinati ho bisogno delle posizioni" non ha molto senso per me, perché se i pezzi vengono rovesciati, dovrebbe essere la memoria del tuo sistema che dovrebbe dire all'utente dove posizionare i pezzi e non viceversa. Ho interpretato quella frase come: vuoi che il sistema sia in grado di leggere qualsiasi stato di board arbitrario, senza fare affidamento sulla storia, e ho scartato le risposte più semplici pensando a quello.
Telaclavo,

@theJosh (continua). Se così non fosse, la soluzione di David sarebbe più semplice.
Telaclavo,

Il problema con la prima idea è che richiede un intervallo abbastanza breve per l'RFID. Se l'intervallo è troppo (più di un quadrato), diventa più difficile percepire la posizione corretta del pezzo. Non impossibile (spero), solo molto più difficile.

@DavidKessner Esatto, ecco perché ho detto che avrebbe dovuto trovare la potenza RF ottimale a livello sperimentale. La distanza dall'antenna al tag è molto più breve della distanza tra due quadrati adiacenti, quindi dovrebbe essere fattibile.
Telaclavo,

4

Ho visto molte scacchiere elettroniche che hanno un buco al centro di ciascuna delle 64 caselle, con un semplice fotorilevatore sotto ogni buco, che dà solo 1 bit - "niente qui", o "un pezzo di qualche tipo è coprendo il rivelatore ". Ciò richiede (a) un po 'di memoria e codice per ricordare la vecchia configurazione della scheda e per rintracciare il pezzo spostato dove, e (b) qualcosa di speciale per gestire la promozione del pedone. Questo può rilevare quali quadrati sono occupati e quali quadrati sono aperti in qualsiasi momento, ma non l'intero stato del tabellone.


1
Intelligente! Hardware molto semplice supportato dalla logica!
clabacchio

Funziona fino a quando viene spostato un solo pezzo alla volta. Non funziona nel caso in cui l'OP ha menzionato il fatto che diversi pezzi vengono rovesciati e poi rimessi a posto. Altrimenti, è una buona soluzione.

1

GlyphChess risolve questo problema usando una scacchiera trasparente. Uno scanner sotto legge il codice a barre univoco bloccato sul fondo di ogni pezzo per capire quale pezzo si trova dove. "Codice segreto PARC" Slashdot: gioca a scacchi GNU sul tuo scanner Questo può rileggere l'intero stato della scacchiera in qualsiasi momento. Dato che ci sono meno di 18 tipi unici di pezzi sulla scacchiera, forse sarebbe meglio usare fiduciali facili da riconoscere come marcatori d-touch piuttosto che codici a barre ad alta risoluzione in grado di distinguere milioni di oggetti.


Solo curioso. Essendo la lavagna trasparente, come mostrano all'utente i quadrati bianchi e neri? Forse con una certa trasparenza intermedia? E l'utente non vede le luci?
Telaclavo,

@Telaclavo: non lo so - forse i quadrati quasi trasparenti hanno tinto il verde tradizionale e il buff? Se lo stessi costruendo oggi, renderei bianco l'interno della scatola, quindi metterei una macchina fotografica sul fondo e posizionerei la scacchiera di vetro sopra. Se c'è abbastanza luce per gli umani per vedere i pezzi, c'è più che abbastanza luce che rimbalza sull'interno bianco e illumina il codice a barre sul fondo di ogni pezzo per consentire a una telecamera di leggerlo - nessuna luce necessaria.
davidcary,

1

Lo farei creando un sensore di colore per ogni quadrato e mettere un'etichetta di colore diverso sul fondo del pezzo.

Il sensore di colore sarebbe realizzato utilizzando tre LED (probabilmente rosso, verde e blu) e un transistor fotografico sensibile a tutta la luce visibile. Accendi i LED in sequenza e misura ciò che il fototransistor misura riflettendo sul pezzo degli scacchi.

Potresti farlo al contrario, dove hai un LED bianco e tre diversi fototransistor sensibili a colori diversi. Ma è più difficile da fare. La maggior parte dei fototransistor non sono selettivi per quel colore. È possibile utilizzare i filtri, ma è più semplice utilizzare LED di colore diverso.

Se i LED sono accesi per un tempo abbastanza breve, non lo vedresti "troppo". Inoltre, i LED potrebbero essere usati per altre cose come segnare il tabellone o fare piccoli e fantastici spettacoli di luci quando il gioco è vinto.

C'è un piccolo trucco in questo, che sta rendendo tutto facile da collegare e costruire. Avago ha un po 'di luce ambientale sui chip I2C che potrebbe renderlo più semplice. Altre società hanno cose simili.

Il prossimo trucco è quello di creare abbastanza etichette di colore diverso in modo da avere un colore unico per pezzo. Ciò richiederà solo alcuni tentativi ed errori, poiché non conosciamo lo spettro esatto dei vari pigmenti di inchiostro / toner della stampante. Anche così, non dovrebbe essere troppo difficile a condizione che tu possa ottenere forse 6 bit di risoluzione dal sensore di luce. (6 bit ti darebbero un sacco di margine di rumore.)


1

non è necessario rilevare il colore, solo sfumature di grigio. Ogni pezzo ha una sfumatura di grigio sul fondo e una semplice coppia di emettitore / rivelatore IR impostata nella scheda legge il valore analogico.


0

Una società chiamata "Zowie" una volta produsse alcuni set di giochi tra cui "Ellie's Enchanted Garden" che si collegava a un computer e che poteva percepire la posizione di alcuni gettoni su una superficie di gioco. Ogni gettone consisteva in un condensatore e una bobina di filo, e la superficie di gioco presentava una griglia di fili; il passaggio di una corrente attraverso un filo orizzontale a una frequenza corrispondente alla frequenza LC di un gruppo di cappucci a spirale provocherebbe la comparsa di tale frequenza sui fili verticali. La griglia del filo era di circa sei fili / pollice in entrambe le direzioni e la risoluzione apparente di posizionamento era probabilmente di circa 0,05 ", ma c'erano solo circa 16 fili collegati alla scheda CPU; immagino che i fili fossero disposti secondo uno schema tale che ogni token reagirebbe a due o più fili orizzontali e stimolerebbe almeno due fili verticali; notando quale combinazione di fili avrebbe reagito agli stimoli, la CPU potrebbe capire dove si trovava il token. Non ricordo ciò che Zowie affermava nel loro brevetto, o quale arte precedente citasse, ma è del tutto possibile che l'arte precedente includesse un approccio ormai di dominio pubblico che sarebbe adeguato ai tuoi scopi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.