Hi! I've an idea about tracking figures in a game called Blood Bowl. Figures are placed on squares (one figure per square, like you would place a figure on a chessboard).
One square is 34mm, and each figrure base is 32mm (round, 26mm for the old models I think, so maximum of 26mm per tag).
There are 15x26 squares = a total of 390 squares (+ some more for figures on the side line, out of the game).
So there would be a lot of small RFID readers, making it quite expensive. Is there a better/smarter solution?
- Each figure should use som sort of tag with unique id, up to a total of 32 figures to be tracked (16x2).
- Each figure, and different figures, can be placed anywhere on your side when you start. So I cant apply the same solutions used when tracking chess (where the start of the game always is the same).
- You only move 1 figure at the time if that might help make it easier in some way (detection).
I'm stuck on the idea of RFID.
Image of the board,
the old style.
Information about Blood Bowl
How about this.
Two contacts on each space of the board (minimum to create a circuit), place a DS18B20 temperature sensor in each of them, parasitic power mode. This as each of those sensors has a built-in serial number, and can be read over OneWire in parasitic mode. You don't care about the temperature, just about the serial number. There may be cheaper options using OneWire and parasitic power mode doing the same.
Now the problem comes down to figuring out which sensor is on which square. Somehow you have to matrix them to make sure which square you read. To add to the complexity, you must be able to read them in both "directions" - connecting the bus to one and GND to the other, then reversing the two connections. Honestly no ideas yet on how to do this. A diode in series with the sensor (inside the game piece) is required to protect them from when the polarity is the wrong way. Having three contacts on each square (and two on the game piece) could allow you to place the game piece in any rotation, making contact with at least two contacts, possibly shorting two but it would always be possible to read the piece.
Dunno if feasible but it could be a starting point.
How about this.
Two contacts on each space of the board (minimum to create a circuit), place a DS18B20 temperature sensor in each of them, parasitic power mode. This as each of those sensors has a built-in serial number, and can be read over OneWire in parasitic mode. You don’t care about the temperature, just about the serial number. There may be cheaper options using OneWire and parasitic power mode doing the same.
Riffing off wvmarle’s two-contacts idea, no idea if this would work:
Instead of a temperature sensor, could each figure base contain a resistor of known value in series with the circuit?
Orc 1: 1K
Orc 2: 2K
Orc 3: 3K
Elf 1: 10K
Elf 2: 11K
Then analogRead the values of the squares on the board, do a little math, and Bob’s your uncle?
In theory - yes this should work but with 32 game pieces reliable identification may be an issue, as contact resistance is a problem. It'd for sure be cheaper, and no issue with polarity.
If doing so you'd need a different series of resistors, as you'd measure them against a fixed reference and it's the ratio between the two that's important.
May be impractical but, here goes:
Each game piece has a row of six magnets in the base. One for presence, one for color/side, four for piece type.
Each board square has six hall switches embedded - which line up with and are operated by the magnets in the pieces.
All the switches in one row, or column, are inputs to a series of cascaded parallel-in serial-out shift registers.
To find the location of any piece shift in the data for the rows/columns and decode in the sketch.
I suppose it's also possible to do it with photo/IR sensors in the board sensing reflective/non-reflective spots on the pieces.