@Fred, yes this is great "Touch Screen Technology". Phil pointed to a similar device using a similar principle. The decoder chips for such things are quite complex...So $10 should be o.k.
Note that the 8-channel 4051 is around 20 Eurocents, I just see that I even could get 100 pcs per 14 Euro.
@VIRAND: You are addressing the "simple" decoupling" of on/off switches. The range of resistance of a touch of the finger however differs: 100k to 10M are possible depending on sweat, dirt, and presure.
My main problem with your proposal - which works more or less fine for "passive" components - is how you think to apply it to discharging caps? Or had you abolished this idea from the beginning?
Do you want to "charge" the caps by a "string-pulse"?
All caps will be tied together through the fret, so they cannot be distinguished, so one would suffice, so the string can no longer be identified...
Or how do you want to decouple them?
See, I cannot find any hint to an answer for my questions in your proposal(s)... It is fine as it stands for other applications I think...
With a sufficient decoupling - as I suggested some days ago - by a FET or even better by a small comparator at each point of interaction, all will be fine. All so very well known scanning techniques for matrices are then available and appropriate of course.
I don't know the exact method which you would charge and discharge the caps with, but I am imagining that the
two analog lines which go to the frets and strings or sensors or contacts would be connected in place of a
variable resistance which is being measured, like the resistor in an RC constant network. The 4051's have a
low resistance and do behave a lot like digitally selectable 8-position rotary switches. I imagine that one cap
would be sufficient for a simple ADC for the whole matrix because I did make a thermometer based on charging
and discharging a cap through a thermistor and see the thermistor being replaced by the analog lines from the
4051's in this case. Any other ADC would just need a (probably high) resistance in series with the resistance
(presented by the analog lines from the 4051s which connect to the matrix contacts through them) to form a
voltage divider and a voltage would then be measured across the resistance of the analog lines as if they were
connected to a simple thermistor. A charge and discharge cycle (or a sampling process) would occur for every
possible contact point, so a rather small cap would likely be used for a good rate of speed and accuracy
trade-off point.
If the contacts in the matrix are touch contacts, sampling may be accelerated by amplifying the conductance of the
touch contacts with just a transistor used in common collector mode. That is, the transistor base and collector connect
to the analog lines; the emitter and collector then give a lower resistance to charge the cap faster.
If anyone didn't know it, the base-collector junction of a transistor makes a good touch contact pair, and the
emitter-collector provides a lower resistance to measure, so that for example you could light up an LED
through the touch contacts. A 'Darlington-transistor-pair' is doubly good for this effect.
To be clear, I'm thinking of only one cap or ADC, sampling 144 or maybe 192 times per sampling period.
Would around 1ms or 10ms be a good sampling period for the whole matrix or is that too slow?
I suppose you could sample the 6 strings simultaneously with 6 caps but I did not consider using more than one ADC.
In that case, there'd be no 4051 on the strings, and more parts (caps etc), and more Propeller pins being used.
All right, this makes sense! So:
(a) You address all points of contact in a very "classical" way, with the difference that you use analogue encoders/multiplexers rather than digital ones. If there is no closed path the input will be "undefined", otherwise some MOhms. Note that this is not easy to distinguish... A pull-up of - say - 20 MOhms is marginal..
(b) Whatever the ADC be, I think even the simple cap discharge can be used.
(c) Going through the matrix each -say - 30 ms will require a discharge time of 200µs; assuming 2 MOhms gives a cap value of 100 p which seems feasible.
So my problems are: I should expect a lot of noise... I am not shure one can terminate the line by a 10 or 20 MOhm.
And you still have the classical "phantom key".. Though routing over 3 points will increase the resistance considerably...
The great advantage is a real low count of pieces: Four 4051 (= 16x16) will suffice, when the matrix is trickily routed, which however will be a mess of traces on the board Plus one 100p cap and one 20 MOhm resistor.... Not to forget the 4040.
I like your idea of using transistors at the points of contact... The transistors do not cost more than the caps... It can lead most likely to a fully digital system.
Edit:
C- Type transistors with beta = 1000 will shift a 2 MOhm B/C touch down to 2 k C/E.
Comments
Note that the 8-channel 4051 is around 20 Eurocents, I just see that I even could get 100 pcs per 14 Euro.
@VIRAND: You are addressing the "simple" decoupling" of on/off switches. The range of resistance of a touch of the finger however differs: 100k to 10M are possible depending on sweat, dirt, and presure.
My main problem with your proposal - which works more or less fine for "passive" components - is how you think to apply it to discharging caps? Or had you abolished this idea from the beginning?
Do you want to "charge" the caps by a "string-pulse"?
All caps will be tied together through the fret, so they cannot be distinguished, so one would suffice, so the string can no longer be identified...
Or how do you want to decouple them?
See, I cannot find any hint to an answer for my questions in your proposal(s)... It is fine as it stands for other applications I think...
With a sufficient decoupling - as I suggested some days ago - by a FET or even better by a small comparator at each point of interaction, all will be fine. All so very well known scanning techniques for matrices are then available and appropriate of course.
two analog lines which go to the frets and strings or sensors or contacts would be connected in place of a
variable resistance which is being measured, like the resistor in an RC constant network. The 4051's have a
low resistance and do behave a lot like digitally selectable 8-position rotary switches. I imagine that one cap
would be sufficient for a simple ADC for the whole matrix because I did make a thermometer based on charging
and discharging a cap through a thermistor and see the thermistor being replaced by the analog lines from the
4051's in this case. Any other ADC would just need a (probably high) resistance in series with the resistance
(presented by the analog lines from the 4051s which connect to the matrix contacts through them) to form a
voltage divider and a voltage would then be measured across the resistance of the analog lines as if they were
connected to a simple thermistor. A charge and discharge cycle (or a sampling process) would occur for every
possible contact point, so a rather small cap would likely be used for a good rate of speed and accuracy
trade-off point.
If the contacts in the matrix are touch contacts, sampling may be accelerated by amplifying the conductance of the
touch contacts with just a transistor used in common collector mode. That is, the transistor base and collector connect
to the analog lines; the emitter and collector then give a lower resistance to charge the cap faster.
If anyone didn't know it, the base-collector junction of a transistor makes a good touch contact pair, and the
emitter-collector provides a lower resistance to measure, so that for example you could light up an LED
through the touch contacts. A 'Darlington-transistor-pair' is doubly good for this effect.
To be clear, I'm thinking of only one cap or ADC, sampling 144 or maybe 192 times per sampling period.
Would around 1ms or 10ms be a good sampling period for the whole matrix or is that too slow?
I suppose you could sample the 6 strings simultaneously with 6 caps but I did not consider using more than one ADC.
In that case, there'd be no 4051 on the strings, and more parts (caps etc), and more Propeller pins being used.
(a) You address all points of contact in a very "classical" way, with the difference that you use analogue encoders/multiplexers rather than digital ones. If there is no closed path the input will be "undefined", otherwise some MOhms. Note that this is not easy to distinguish... A pull-up of - say - 20 MOhms is marginal..
(b) Whatever the ADC be, I think even the simple cap discharge can be used.
(c) Going through the matrix each -say - 30 ms will require a discharge time of 200µs; assuming 2 MOhms gives a cap value of 100 p which seems feasible.
So my problems are: I should expect a lot of noise... I am not shure one can terminate the line by a 10 or 20 MOhm.
And you still have the classical "phantom key".. Though routing over 3 points will increase the resistance considerably...
The great advantage is a real low count of pieces: Four 4051 (= 16x16) will suffice, when the matrix is trickily routed, which however will be a mess of traces on the board Plus one 100p cap and one 20 MOhm resistor.... Not to forget the 4040.
I like your idea of using transistors at the points of contact... The transistors do not cost more than the caps... It can lead most likely to a fully digital system.
Edit:
C- Type transistors with beta = 1000 will shift a 2 MOhm B/C touch down to 2 k C/E.
Post Edited (deSilva) : 2/4/2008 12:10:39 AM GMT