DigiTap: Designing and Creating MIDI Compatible Tap Dancing Shoes

forestevanescentΗλεκτρονική - Συσκευές

2 Νοε 2013 (πριν από 3 χρόνια και 7 μήνες)

69 εμφανίσεις





The pulse shown below is the voltage
reading from lightly tapping one of the outfitted taps
on the table. The voltages could reach up to 80 volts
on a hard tap, and any tap produced a voltage too high
for the microcontroller. In order to compensate for
this, I created

f
iltering and pulse

stretching circuits

for each tap.



Hardware

Software

Senior Project • Electrical Engineering • 2012

DigiTap
: Designing and Creating

MIDI Compatible Tap Dancing Shoes

Jacob
LaRocca

Advisors: James Hedrick, Palma
Catravas

Hardware Setup


Programmed in C


Used a pre
-
written MIDI library provided
by
mbed.org

Important Functions and Libraries

InterruptIn
:
Instead of using a
DigitalIn

input
pin that reads 1 or 0, this function looks for a
rising edge, allowing for more accurate and
detection quickly, with less false triggers

USBMIDI:

The USBMIDI library is coded to
transmit standard sets of 8
-
bit MIDI signals.
Some of the signals include
NoteOn
,
NoteOff
,
Pitch, and
Aftertouch
.

Code Process

The
Xbee

radio is
monitoring continuously
at 57600 baud, and
reads in single ASCII
characters. If the
message is ‘A’, ‘B’, ‘C’,
or ‘D’, then the
mBed

sends a MIDI signal to
the computer. If the
Xbee

reads ‘W’, ‘X’, ’Y’,
or ‘Z’, the
mBed

adds 1
to the note values
assigned to each tap.




A 2mm
deep

channel
was milled in each aluminum
tap to fit a 3.5mm diameter
piezo disc.

Detection

Filtering and Stretching


Schottky

Diodes were used in the clamping circuit


An RC filter circuit smoothed out all of the ripples


Monostable

555 timers were used on each pulse
to create a square pulse 2ms long

Sensors

Microcontroller and Radio


An
mBed

microcontroller was used for its
speed, size, and built
-
in MIDI library


Much easier to program because it doesn’t use a
proprietary language


Xbee

radios were used, based on their size,
compatibility, and range