Introduction to Physical Computing (adapted from Tom Igoe's Syllabus)
Fall 2005
Instructor: Michael Schneider Wednesday 9:30AM - 12PM Office hours: Many Monday evenings 6:30 - 8 Email me: mluck (at) nyu (dot) edu
Physical Computing is an approach to learning how humans communicate through computers that starts by considering how humans express themselves physically. In this course, we take the human body as a given, and attempt to design computing applications within the limits of its expression.
To realize this goal, you'll learn how a computer converts the changes in energy given off by our bodies (in the form of sound, light, motion, and other forms) into changing electronic signals that it can read interpret. You'll learn about the sensors that do this, and about very simple computers called microcontrollers that read sensors and convert their output into data. Finally, you'll learn how microcontrollers communicate with other computers.
Physical computing takes a hands-on approach, which means that you spend a lot of time building circuits, soldering, writing programs, building structures to hold sensors and controls, and figuring out how best to make all of these things relate to a person's expression.
Week 1 (Jan 18):
- Introductions, Class structure, Digital vs. Analog
- Intro to Electronics: Definition of components, reading a meter, reading a schematic, Ohm's Law
- Soldering (thanks to Jeff Feddersen for the link)
Assignment:
- Join the physcomp listserve
- Introduce yourself in the class wiki. Create a page that will be the index of your wiki pages or create a link to an external journal.
- Sign up for two days of shop cleaning.
- Lab: Electronics
Reading:
- Crawford, "The Art of Interactive Design", chapters 1 and 2 (note: you will need to sign into NYUHome to view this. )
Week 2 (Jan 25):
- Microcontrollers: what they are, different types, levels.
- Intro to PIC and PIC programming
- Digital Input and Output
- serout2 (for debugging; more detail in week 5)
Assignment:
- Lab: first PIC program Document HERE
- Choose a part of the body and design a switch for it specifically, prototype if possible post Here
- Begin observation project (group project) Document Here
- Probably the toughest this is to try to "only" observe, no thoughts on what to make.
- Extra assignment for week 3/4: Attend a Tool safety session in the shop
Reading:
- Buxton, "Less is more (more or less)"
Week 3 (Feb 1):
- Memory and variables: Decimal, binary, hex.
- Analog input, what an ADC is.
- Presentations Due: observation project: Present location and observations.
Assignment:
- Lab: Analog in; tracking changes with variables; practical jokes
- Observation assignment, propose prototype, story board and cheap prototype.
Reading:
- Norman, Design of Everyday Things, ch. 1 (in coursepack)
- Norman, Emotional Design, Chapter 1, "Attractive Things Work Better".
- Put response to reading here
Week 4 (Feb 8):
- Analog output: Devices that create analog motion or sound. (servo, freqout, PWM)
- Presentations Due: Observation project; show final prototypes
Assignment:
- Begin device/instrument/tool project (group project)
- Lab: servo/analog out
Reading:
- Myron Krueger, "Responsive Environments", in Packer & Jordan, Multimedia: From Wagner to Virtual Reality, ch. 12, pp. 104-120. (in coursepack)Kreuger Response
Week 5 - (FEb? 15):
- Serial output: Sending bytes out
- Serial interpretation: ASCII
- Serial to desktop: Into Processing
- Presentations Due: device/instrument/tool project descriptions and observations
Assignment:
- Device/instrument/tool initial prototype
- Lab: Serial output and Talking to Processing here is Shawn's ascii processing example it is good..
Reading: Applications, TBA
Week 6 (Feb 22):
- Digital output: Transistors and Relays: switching higher-current devices (light bulb and switch)
- Motors and Inductance:
- DC motors
- Steppers
- Presentations Due: device/instrument/tool project initial prototype
Assignment:
- Advanced prototype of device/instrument/tool project
- Lab: Controlling a motor
Reading:
- Nørretranders, User Illusion, ch. 6, "The Bandwidth of Consciousness" (in coursepack)
Week 7 (Mar 1):
- MIDI and other control protocols
- Presentations Due: device/instrument/tool project advanced prototype
Assignment:
Week 8 (Mar 8):
- Presentations Due: device/instrument/tool project (all projects to present)
Assignment:
- Decide on which project you want to re-do for your final; be prepared to talk about it next week.
- Reading: Applications: TBA
Week 9 (Mar 22):
- Shift registers (SPI interface)
- Shift registers are useful for increasing the number of I/O pins your chip has and row column scanning
- Check out some Shift Register Serial In - Parallel out
- Qprox
- This sensor measures capacitance and works through non-conductive materials simple and cheap, probably used in the ipod
- Code time
- Code approaches: State machines, pseudocode, using subroutines well
- Begin Final Project (group or individual)
Reading:
- Hoffman, Visual Intelligence, ch. 7, pp.172-184 (in coursepack)
Week 10 (Mar 29):
- Video Tracking
- Presentations Due: Present final project concepts. Show observations
- Project workshop
- Talk about Final Project (group or individual)PLEASE PUT A LINK TO YOUR PROJECT ON THE PROJECTS PAGE
- Individual meetings
Assignment
- Make calendar for final project only THREE WEEKS left till presentations begin!!!!
- Prepare tech research here is an example http://www.birnboim.com/nyu/pcomp/techresearch/howlcdswork.html
Week 11 (April 5):
- Presentations Due: Final Project: show technical research (projects selected at random)
- Synchronous serial or other topic TBA at instructor's discretion
Week 12 (April 12):
- Presentations Due:Final: show prototypes and user research (projects selected at random)
Week 13 (April 19):
- Presentations Due:Final Project Presentation (half of projects)
Week 14 (April 26):
- Presentations Due:Final Project Presentation (half of projects)
