If its expected that every answer needs to be scrutinized, to be a valid response, then this forum which shares ideas, creativity & community interaction ceases to be a place of openness.
I don't know what scrutiny you mean, because you didn't say, but if you mean my asking you how you would take into account a bad connection, isn't that what we do here? If someone suggests something, and we have a question about a potential problem, we ask?
If we are not allowed to ask questions, doesn't -that- cause a loss of openness?
polymorph:
Oh, fer cryin' out lawd... detune the coils not in use, don't short them out.
It is absoloutly nothing to do with the resonant frequency, it is inductive coupling just like a transformer. The term short is used here to illustrate that in effect they are all the same coil. Imagin a transformer with two or more secondary windings. All coils in it will always get the same signal on them no matter how many turns you have.
My soloution was to have one pickup coil per token and short out the coils not in use by using a very small triac. Even then you have to cut the excitation in order to turn the triac off when you want to change the coil you want to look at.
Grumpy_Mike:
Look at the situation attached.
One excitation coil and three pick up coils with one token.
All the pick up coils pick up the same signal, not just the one over the token. This is because the signal generated is received in pickup coil one, but the excitation coil couples all the coils together so all the pickup coils produce exactly the same signal.
Mike, what if the excitation coil is driven by a circuit with a very high output impedance, such as a transconductance amplifier? If the coil capacitance is low enough (i.e. resonant frequency much greater than the RFID frequency), then the RFID tag won't be able to induce any significant current in the excitation coil, and the coupling you refer to will not occur.
[EDIT: I don't think your analogy of a transformer with multiple secondary windings is accurate, because the secondaries don't all intersect with the same magnetic flux. It's more like 3 transformers with the primaries connected in series with each other, and also in series with an additional inductor that represents area enclosed by the shared excitation coil that doesn't intersect with any of the receive coils.]
Mike, I think there is a potential problem but I don't think your pdf describes it.
The token, lets call it 'A' is over pickup coil 1.
When the excitation coil is active you are saying pickup coil 1,2 and 3 will all detect token 'A' is that correct?
That is not a problem though is it because a mux is being used to choose the excitation coil for that row and a mux is being used to chose pickup coil 1 to read from?
Is the real issue not when you have 2 or more tokens?
If we leave token 'A' over pickup coil 1 and place a second toben 'B' over pickup coil 2 are you saying that pickup coil 1 will read both 'A' and 'B' ?
polymorph:
I've got the chess board and pieces, I've got the RFID tags, looks like I need to find some time.
Do you have an oscilloscope? You will surely need one, so that you can see how much interference you get between coils and between tags.
What frequency are the tags? I hope they are low frequency ones, because I think this will be much harder with high frequency tags.
I suggest you proceed like this:
Design and wind your transmit coils. Don't try to use printed-circuit coils (you can do that right at the end if you like), you need to be able to vary the number of turns so as to get the self-resonant frequency much higher than the RFID frequency. I suggest at least 3x higher.
Design the driving circuit. As I said in my reply to Mike, you need high impedance drivers to prevent the receive coils coupling with each other through the transmit coils. Find out how much drive current you need to reliably excite all the tags in the row under the transmit coil, but none of the tags in the adjacent rows. This has to work whether there are no tags in the transmitting row, or 8 tags, or anything in between. Using a high impedance driver will also help here, because the excitation will vary less with the number of tags in the row. The drive voltage appearing across the coil will depend on how many tags are under the coil - make sure your drivers don't saturate, whatever the numbrr of tags.
It's probably a good idea to use the same number of turns for the receive coils, so that the self-resonant frequency is again much higher than the RFID frequency. Otherwise you will get more unwanted coupling.
Measure how much signal you get from the receive coil when there is a piece at the intersection, and also how much unwanted signal you get in the worst case from pieces placed on other squares. There must be enough difference between these to be easily discriminated. You may find that having each coil spanning 8 squares is too much, and you need to use more coils spanning 4 squares each.
I don't think it is a good idea to short receive coils that are not in use (assuming self-resonant frequency >> RFID frequency), because if you are using shared receive coils, then a shorted receive coil would couple the transmit coils together. Instead I would use a 74HC4051 to select which receive coil you want. Despite Mike's warning, I can't see any reason why these won't work @150kHz. The on-resistance is about 80 ohms, so you would need a huge amount of stray capacitance (over 1nF) to make them ineffective. Don't use the older CD4051, it has a much higher on-resistance.
See my earlier comment about using a phase sensitive detector both to measure the amplitude and to make it less sensitive to unwanted signals that don't have the same phase as the wanted signal.
radman:
The token, lets call it 'A' is over pickup coil 1.
When the excitation coil is active you are saying pickup coil 1,2 and 3 will all detect token 'A' is that correct?
Yes that is what happens.
radman:
That is not a problem though is it because a mux is being used to choose the excitation coil for that row and a mux is being used to chose pickup coil 1 to read from?
When coils overlap like this they are coupled.
radman:
Is the real issue not when you have 2 or more tokens?
If we leave token 'A' over pickup coil 1 and place a second toben 'B' over pickup coil 2 are you saying that pickup coil 1 will read both 'A' and 'B' ?
Yes it reads both tokens and as a result it can't decipher any.
dc42:
Mike, what if the excitation coil is driven by a circuit with a very high output impedance, such as a transconductance amplifier?
Then you can not drive the coils with enough current to excite all 8 tokens.
dc42:
If the coil capacitance is low enough (i.e. resonant frequency much greater than the RFID frequency), then the RFID tag won't be able to induce any significant current in the excitation coil, and the coupling you refer to will not occur.
I was not driving the excitation coil at resonance or anything like it. The receive coils needed about 5nF to bring them to near resonance. You don't want to tune the receive coil at resonance or it will not pick anything up.
Initially I wanted one excitation coil covering all 32 reading coils, but I couldn't get enough energy in to it with just 12V to energise the tokens, that is why I split the coils down to four with eight tokens in each row.
But hey if you want to do your own tests then be my guest. It is a different topology to my working design so you might find something I have missed.
It should only take you three coils to prove, or otherwise, your design.
dc42:
Mike, what if the excitation coil is driven by a circuit with a very high output impedance, such as a transconductance amplifier?
Then you can not drive the coils with enough current to excite all 8 tokens.
Why not? I'm not suggesting using a very high series resistor, I'm suggesting an active circuit (e.g. amplifier with a common base output stage) that can deliver plenty of current, but is insensitive to the voltage across the coil, as long as the voltage is not so high as to saturate the output stage.
I've not forgotten this, but I have committed to a 3D Printer Show-Off event at our local maker club, OlyMEGA. Mine will be one of the printers there and I must now repair/upgrade the head.
What about using a weighted chess set and a cheap electronic balance in each support of the chessboard. The reading the reaction on each balance and based on the previous position the solution should be unique
fernandez858:
What about using a weighted chess set and a cheap electronic balance in each support of the chessboard. The reading the reaction on each balance and based on the previous position the solution should be unique
That's ingenious. It sounds as if it might be quite challenging to use this approach on its own (i.e. to sense both the position and identity of each movement as pieces are picked up and put down), but if you manage it that would be impressive. Slightly less challenging might be to combine both approaches - use presence sensing under each square to work out which position pieces are pick up from and put down on, and weight sensing for the whole board to identify which piece it is. Since you would only need to distinguish between a few specific pieces which can be involved in promotion, that seems like a more feasible problem.
I would mount under all valid 64 board position locations a simple L/C oscillator circuit that used an inductor mounted up into each of the physical board square location. Each of the 64 oscillators would output a consistent frequency value depending on the specific amount/size of some ferrous metal inserted into the base of each chess piece or even if there is no piece present. The 64 oscillators could be scanned and have their frequency read by a arduino using multiplexer analog switches. Complexity of software would depend if you wanted to detect 'illegal moves' or not.
retrolefty:
Each of the 64 oscillators would output a consistent frequency value depending on the specific amount/size of some ferrous metal inserted into the base of each chess piece or even if there is no piece present.
Nice idea! However, the exact frequency will depend on the positioning of the piece within the chess square. Also, the frequency of an oscillator will depend to some extent on what pieces are in adjacent squares. I suspect these effects would change the frequencies sufficiently to make distinguishing between 12 different types of piece difficult or impossible.
The CastAR system announced yesterday provides an RFID tag locating system that supports multiple tags, on a play surface big enough for a game of chess. THat would solve your problem completely as far as I can see.
CastAR also offers an extraordinarily cool way to display the opponents chess pieces in AR, if you were interested in that. A pair of these connected over the internet would make for a very impressive distributed chess game.
OK, I don't really understand why pawn promotion is a problem.
I have built an Arduino/Raspberry PI based chess board that tracks pieces using reed switches and signals computer moves using LEDs. Given that you know the starting position, you can track all moves as "lifts" or "place" Thus you can track at any moment which pieces are on which squares. Pawn promotion is always a choice, you can have two queens if you want. At the point of promotion the identity of the piece is changed from pawn to whatever the user chooses.
see www.chess.fortherapy.co.uk.
Having said that it would be neat to have a cost effective solution that identifies pieces. I have investigated RFID, but cannot see a way to uniquely read tags (or absence of tags) on a square.
All you need is to be able to distinguish 7 different classes, ie 6 pieces plus colour. so three position binary code would work. Therefore in theory you could use weight with say a 4, 2 & 1 gram weight laying on a weight sensor (7 different combinations).
Or 3 sensors at each square - maybe 3 reflective sensors, with 3 legs on each piece that would over, or not, each sensor. No cover, nothing reflects, no piece.
Then
000 no piece
001 pawn
010 pawn
011 rook
100 rook
101 bishop
110 bishop
111 knight
1000 knight
1001 queen
1010 queen
1011 king
1100 king
or, maybe 1111 = no piece
Either way, (0000 or 1111 for no piece), 4 sensors vs 3.
Or the 6 different weights plus color sensor. I would think square base on each piece to sit in square dimple, 4 corners each painted white black.
Example - 2 black squares, 2 white squares:
||||||||| |
| |||||||||
with base size as needed to accommodate the sensors.
Example: