This project shows my recent music
keyboard using capacitive sensor pads. As an extension to the
former version there is also an interpretation of the x-direction
possible. This can be used to drive
the vibrato channel or the static pitch of a key in a MIDI stream:
PCB Hardware EAGLE Design
Top and Bottom of the PCB design
The pads are touched from the component side of the
PCB (red) receiving two specially built signal patterns from
the bottom side (blue). The amount of mixture in the receiving
signal determines the detailed position of the finger at a normalised
key position and thus the offset from the middle. Detailed noise
analysis has to be performed to achieve this.
FPGA Design
FPGA-design of the circuit driver
LFSRs are used
to generate dedicated noise for both the capacitive key and
the signal used as a reference for the internal comparator.
The LFSRs produce different noise by different equations.
Both some up together or alternatingly at the cathode which
has a little BIAS. The ADC feeds the FPGA by I2C.
Decimation and filtering is performed to prepare the signals
for alter comparison. The final stage subtracts both signals from each other thus sorting
out the information of pressure change for the subsequent processing
module. See also the old pages for the version KB05 and KB99.
The finger distubs the electrical field and changes the
amplitude especially when it is close to the sensor pad and
some pressure is applied. The position of the finger emphasises
specific frequencies. The information of position is extracted
from the phase information of these frequencies, by a gravity point
analysis for both X and Y.
FPGA-design of the circuit analyser
FPGA Hardware Cyclone 2
Cyclone 2 - Development System
A current Altera-FPGA
is used to implement the full design. With the given resources
32 channels can be driven a the same time offering the chance
to run 3.5 octaves of keys. For more information about the idea,
see theformer
version