a summary of my experience in nyu's itp course physical computing follows:
Week of 14—20 May 2006
spent my time this week getting acquainted with the arduino
programming language, refamiliarizing myself with that
loathsome os windows, time–managing the logistics of the
course, and reading a lot about basic electronics.
i also spent a lot of time online purchasing much–needed
resources:
. tom's physical computing book ($15 @ amazon), which is
available from bobst, if you need to borrow it while waiting
for your own copy. call number is QA76 .O88 2004.
. helping hands ($15 @ radio shack) — so, so essential
. various small electrical parts, including a serial
cable, a potentiometer, a few sensors, etc ($45 @ nyu's
computer bookstore)
. probe tips for my multimeter ($4 @ radio shack)
total: $79
Week of 21—27 May 2006
worked on the first lab this week: a combo lock. gilles and
john proved helpful as i developed my lab idea. gilles
warned me about how the arduino handles potentiometers, and
john gave me the idea to work with leds as indicators. bless
their souls.
Week of 28–may—3 june 2006
i'm looking to make my own force–sensitive resistors
(fsrs) with conductive foam this week,
seeing as how buying some from jameco or interlink would take
upwards of seven days for shipping. (NOTE to future phys
compers: acquire your parts early in the semester, otherwise,
you'll be scrambling to make your own parts.)
ROSE: it turns out that the conductive foam that i thought
was at my mom's place is actually at my place in bkln. i'll
bring the foam with me to class on tuesday. i would have
sent you email, but your blog doesn't list one.
made a giant purchase at mouser (www.mouser.com) this week:
plastic enclosures, non–amplified photomicrosensors,
thermistors, clock oscillators, in 4mhz and 20mhz
configurations, and cable ties.
total: $100.
Week of 4—10 June 2006
got a fishing tackle box for $13 around the corner at kmart.
you'd be suprised how a tackle box will keep all those little
parts in order. also bought sixteen fsrs this week from
interlink for $120 (fedex 2nd day air was $40).
total: $133.
Week of 11—17 June 2006
i wrote a
three–page paper discussing the difference
between variables and constants, urging readers to use the former
in lieu of the latter in their arduino source code when appropriate.
Week of 18—24 June 2006
just about all of my time was spent brainstorming, building,
and coding the final project. i badly wanted to work with
midi, but didn't know exactly how to make a project out of it.
i finally came up with the idea to use photocells to trigger
midi data.
ok, so what would it look like? i imagined something
rectangular and simple. although it sounded easy, this step
took a while to implement, since i had never really built
anything like this before. i must have re–cut the
corners of my "noah's arc of midi" project about
twenty times before getting it right. (NOTE to future phys
compers: avoid cheap wood!)
goal: simulate the interface of a master lock () with a
potentiometer, then have a melody play once the correct
combination is entered.
to figure out the combination, a user turns the potentiometer
in one direction until the red led lights up. at that point,
the user spins the lock in the other direction until the
yellow led lights up. lastly, the user turns the pot in the
other direction to locate the last value of the combination.
that last value triggers two events: the lighting of the green
led, and the initialization of the melody on the piezo speaker.
the following arduino tutorials were very helpful in the
completion of this lab:
"play melodies with a piezo speaker"
"read a potentiometer"
both of which may be found at http://www.arduino.cc/en/Main/LearnArduino.
code:
ComboLockMelody.pde
after building this lab project, i spent a great deal of time
studying the arduino code, because i knew somehow that i'd use
midi in the final project.
the code used for this lab came from the "allow a person
to play notes" section of the following uri:
http://itp.nyu.edu/physcomp/Labs/MIDIOutput
the only difference between the itp implementation of this lab
project and my implementation lies in the fsr used. the itp
implementation uses a small round fsr, whereas i use a large
square–type.
movie:
midi_on_the_arduino.mov
i found the low–level concept of how the code moves the
servo very difficult to understand. luckily, i knew that i
wouldn't be using a servo in any future projects. servo
comprehension notwithstanding, i learned a great deal about
keeping circuits organized on the breadboard.
movie:
servo.avi
in reading about basic electronics in a radio shack tutorial
book, i found a fascinating hands–on lesson about
resistance in which pencil led is used to learn about and test
resistance.
a summary of the lesson:
take a piece of thick white paper, preferably 24 lb, draw a
rectangle with a led–based pencil, then fill in the
outline. using an ohmmeter/multimeter, place one
probe at an extreme end of the led–filled rectangle, then
run the next probe within the same rectangle, and, using a pen
stroke, approach and leave the other probe. the resistance
reading on your meter will vary.
it was that variance in resistance that i wanted to incorporate
into a project where the two ends of a led–filled
rectangle would act as a resistor in a circuit triggering midi
notes on the arduino.
i tested different paper resistances, led values, and
foundations before deciding on 24lb drawing paper and foam board
as the appropriate materials for the prototype. i made holes in
the board and paper, filled those holes' circumferences with
led, and connected them to the arduino. since i had thoroughly
tested the prototype, i was under the (false) impression that a
simple pencil stroke would be enough to generate the kind of
resistance that would trigger a midi note.
i was wrong.
looking for the bug, i tried to trigger an led instead of midi.
again, unfavorable results, but this time with a little more
promise: i noticed some light in the led. i kept drawing with
the pencil, then testing the resistance. in the end, to get a
small led to yield a small amount of light, i had to fill about
50% of an 8.5 x 11 sheet of paper with led. it was
dissapointing.
it turns out that once energy flows through the led, the
resistance of led on paper is negligible, like the resistance
of the plastic that is wrapped around 22–gauge wire. (i
had been testing resistance out of circuit and with a meter
— not in circuit and while powered up.)
create an instrument that translates hand waves into midi data:
that was the final project goal.
a person would interact with the instrument by simply waving his
or her hands over the instrument, which would be laced with a
dozen or so photocells. once the user places their hands over
the instrument, that person becomes "engaged" in the
instrument; that is, the instrument continually generates midi
data, without stopping, while the user's hands remain over the
instrument. as the user's hands get closer to the instrument,
midi velocity notes are raised. conversely, if the user raises
their hands, midi volume is decreased.
my midi instrument worked fine as a prototype, but lighting
conditions affected the instrument's output and reactive
properties. during final presentations, on thursday, 22 june
2006, tom and my classmates suggested using ir sensors. i also
thought about using miniature gooseneck lamps over each
photocell, giving the instrument added dynamism by affording the
user the option to move the lamp to create different lighting
environments over the photocell.
all of these ideas will be tested and developed as i move forward
with this project. as i do so, i will update this site
accordingly.
code:
midiInstrument.pde
rav256 at nyu dot edu