Physical Computing

a summary of my experience in nyu's itp course physical computing follows:

Journal

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!)

Labs

lab.1: combination lock

goal: simulate the interface of a master lock (Typical 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

First LED on
Second LED on
All LEDs on
Combo Lock

lab.2: midi








MIDI: Arduino and 
           SoundSchool

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

lab.3: servo motor

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

Midterm Project

Image of foam board, drawing paper, connectors, and led-based shading for midterm
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.)

Final Project

Image 1 of final project
Image 2 of final project
Image 3 of final project
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

Email

rav256 at nyu dot edu

Valid HTML 4.01! Valid CSS!