Go Down

Topic: Board with placement identification & piece recognition (for game or something) (Read 2792 times) previous topic - next topic


Sorry about the title, I really couldn't think of a way of explaining my idea...

It's some sort of board I could use for multiple purposes, and am trying to figure out the best way to implement it.
Having several different pieces and a board divided up in squares, what I need is to be able to identify WHICH piece is placed on the board, and where (wirelessly, of course). I originally thought of using rfid, with which I would be able to easily identify the pieces and, if I managed to have one reader per square, placement too. Using the Wiegand26 format I would be able to connect to regular arduino pins, so no problem in having several readers. Main problem would be interference between readers, so I would have to use either a huge board or small range readers. I found some 25mm rfid readers with 2-4cm range which would be perfect, but at $39 a piece, it's not a possibility... :smiley-mr-green:

I read around here somewhere on the forum of a way of having a single reader identify multiple rfid cards/keys, but that wouldn't take care of the placement detection, just the identification of the pieces...

So, after a day searching around for a feasible solution I have arrived to the conclusion that maybe rfid isn't the best way to do it, and am asking for ideas, input or guidance. There's probably a really easier way of doing I'm just not thinking about! :)


My first guess would be using a single RFID reader with many selectable antenna coils.  This might be hard since the antenna coils are generally tuned for the frequency being used.
Send Bitcoin tips to: 1G2qoGwMRXx8az71DVP1E81jShxtbSh5Hp


Create custom PCBs with circular contact pads on them (like a bulls-eye) to put on each square of your game board, and your pieces would have unique contact points on their bases. Or unique resistance value(s).

ATTinys are pretty cheap and could be programmed to report an identifying value when queried (via serial, SPI, infrared?). Again your board could supply power to the pieces and just a single digital output to each game square would be all you'd need to trigger the piece to report its ID along a common bus. That should be doable for about $2 per game board square and $2 per game piece.


Johnwasser: could I create some kind of iteration to check multiple antenas, for example? Or the time needed to create the current on the coil, needed to create the magnetical field allowing to power up the card's rfid chip would be so long it wouldn't really work?

Chagrin: not really sure if I understood what kind of contacts you mean. The different resistance per piece idea is interesting, but maybe since its something that people are supposed to handle that will have an interference on it?


Chagrin: not really sure if I understood what kind of contacts you mean. The different resistance per piece idea is interesting, but maybe since its something that people are supposed to handle that will have an interference on it?

Using the example of a round playing piece like a chess piece, each piece would have taped to its bottom a unique value resistor with one lead of the resistor terminating in the center of the piece and one lead terminating at the periphery. When placed on a pad of the board (see image of an example 2x2 board) the four analog pins could be checked for resistance to determine where the piece is.

Using just one resistance value per piece you could only reliably identify ~6 different resistance values. More practically you'd need to use a few resistance values per piece with multiple concentric rings per pad.

...but really the more I think about this suggestion the less I like it; it would only scale well to 3 contact points (~36 unique pieces) unless you used spring loaded pins or such to make contact with the board.

Can you provide more description as to what kind of game this is (how many unique pieces / how big is the board)? Don't be shy; you are in a forum with a bunch of nerds and I'm sure many people here have played D&D or such at one time or another ;)


Current project is something like a "hands-on" simple sequencer, for kids or just for showing to un-techy people and allowing them to play a little with it. The main idea would be each piece has a given action (loop sound sample, light animation, video mapping, whatever) which will be triggered IF the piece is placed on the board. The idea would be to allow to interchange pieces, with each having a different "effect", and have the output react to the choices.
The placement on the board would also affect the result.

After I have the system working, the idea is to expand that into, possibly, some kind of game board, but that's still a secondary afterthought.

I have to say that electronic-wise I can work at a beginner/intermediate level (I'm more of a programmer), that's why I was trying to keep it as simple as possible with rfid :P

Edit: forgot to describe -.-'
The idea would be to keep it simple at first, with around 12 different pieces and a 4x4 board. 5x5 maximum.



The problem you desribe is the classic chess piece identification task. Most sensory boards just detect the precence or abscence of a piece and infer its value from a know startiong position. eg the Novag Citrine which uses reed switches. The leading reliable chess piece identification system is the DGT board, which uses a patented process: see: http://www.chesscomputeruk.com/1999_-_DGT_Tasc_Piece_Recognition.pdf  . The technology is Resonance coils of different types located in the pieces. A non trivial technology. The DGT board & pieces retail for around $1000. RFID is unlikely to work for the reasins given elsewhere. It is really an Identification technology. In theory you could use triangulation based on signal strength from 3 RFID readers, but I don't know of a way to force the readers to sequentially read all pieces in range. Plus the readers interfer with each other. There are "RFID Radar" devices out there that do this, but they use a large array of readers.

Go Up