Piano Touch Keys II P13364 Team Members: Ed Mackowiak (CE), Whitney Zack (CE), Bruce Kynoch (EE), Alex Coleman (EE) Customer/Guide: Gerald Garavuso
Background / Customer Requirements ● Augment a keyboard to allow musical parameters (pitch, timbre, intensity) to be changed while playing with two hands. ● Allow the musician to play in a way that isn't possible on currently available keyboards. ● At least two axes of control, tracking both position and velocity. ● Demonstrate this functionality on a single keyboard octave. ● Customer Needs
Hardware / Software Design
Capacitive Touch Prototype ● Test board to demonstrate capacitive touch being read by the MSP430. ● Test Board Demo Video
PCB Design (Key Design) ● Each piano key has: ○ MSP430 IC ○ 1 uF capacitor VDD to GND ○ 6-pin ZIF Connector ○ Touchpad array ● MSP430 and cap on the underside (top layer, red) of the board. ● Pad array and connector on the top surface (bottom layer, blue) ● Limited ground-plane on the touchpad layer, but no ungrounded islands.
PCB Design (Black Key) Chip side Pad side
PCB Design (White Key) Chip side Pad side
PCB Design (Reflection) ● One trace was left unrouted. ● A smaller package size might have allowed for more spacing between the electrode traces and the data lines. ● "No-tent" vias should have been used to allow for complete solder-mask coverage over the pads. ● A debug LED on the header boards would have been useful. ● TEST/RST pins should have been tied to VDD/GND.
Touch Processor (MSP430) ● Collects capacitance data from electrodes. ● Using the capacitance data, a location is determined. ● A baseline level is regularly updated to mitigate the effect of uneven trace length. ● The touch processor must be ready to send the location data over the I 2 C bus, which is polled at 100 Hz.
Capacitive Technology
Touch Controller Code (MSP430)
MSP430 Reflections ● Baseline calculation algorithm could be refined. ● Having different pinouts for every white key design made multiple versions of the code necessary.
I 2 C Communication ● Bus protocol consisting of one master and several slaves. ● Supervisory processor acts as master, polling the individual key processors for X and Y touch data. ● Spent some time debugging the I2C communication between the mbed and MSP430 ● Bus runs at 100kHz
Octave Controller (mBed) ● Communicates with the 12 MSP430s over the I 2 C bus. Polls at 100 Hz. ● X/Y data is packaged into a MIDI signal using MIDI continuous controls, which is then sent to a PC over USB, using the HID MIDI page. ● Debug LEDs indicate proper operation of the mBed, and also light up if some of the keys are non-responsive.
mBed Reflections ● It is possible to merge the keyboard MIDI stream with the touch sensor data the mbed level, however this would required a fair amount of extra effort and would not have provided any benefits. ○ Still would need two cables (one for keyboard power, and one for combined mbed power/data)
Sound Generation (Plogue) ● Takes in MIDI signals from the keyboard and the mBed. ● Frequency and Intensity are extracted from the keyboard notes. ● X and Y are extracted from the mBed MIDI channel. ● New Frequency = Old Frequency + K*Y ● K is a scaling factor ● 50 ms smoothing factor to control jitter
Plogue Reflections ● Pitch shifting should be relative to the initial keypress position. ● Lots of flexibility in sound generation options ○ MIDI soundbank ○ Custom synthesizers ● Once design is finalized, it can be packaged into a custom Bidule for possible distribution.
Bill of Materials Part(s) Cost mBed FREE ($60 production) PCB $112.55 Connectors & passive components $124.48 Total $237.03 Vendor List Bill of Materials Digikey mBed OSH Park
Recommend
More recommend