|
|
|
| Home |
Introduction
to Physical Computing
Adjunct Professor Andrew
G. Milmoe
Thursdays 6:30pm - 9:00pm
H79.2301.05 - Fall 2005
- Course
Description
- Projects
- Recommended reference
and reading material
- Student Journals
Class topics and
assignments by week:
1
- 2 - 3 - 4
- 5 - 6 - 7
- 8 - 9 - 10
- 11 - 12 - 13
- 14
Stuff to Get:
- Parts
you'll need for Intro. to Physical Computing
- A useful starter
toolkit
- Many parts are sold at the NYU
computer store:
242 Greene Street. Phone: 212.998.4672
Office hours
Monday 7:00pm to
10:00pm
by appointment. Schedule appointments 24hrs in advance
by e-mail.
Useful links:
Physical
Computing ITP - ITP's Physical Computing Homepage
The
Physical Computing Homepage (Tom
Igoe's site)
A collection of resources, examples, and lecture notes for
the physical computing courses at ITP.
Resources
page
A database of sources for physical computing parts, methods,
software, and other resources.
Phys
Comp Notes
Working notes on physical computing and embedded networking.
Code
Code examples and lab exercises for physical computing.
|
Note:
This page contains links out to some of the extensive Physical Computing
resources on the ITP web site rather than reproducing their content here...
Students enrolled
in this course should bookmark this page and check back weekly as information
is subject to change.
|
| Top
|
Course
Description
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 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.
|
|
| Top
|
Lab
Assignments:
There is a lab
activity for nearly every class in the first half of the semester. They
are very short, simple activities. These are the basic steps you need
to go through to understand the principle discussed in class each week.
They're designed to help you not only to understand the technical details,
but also to get a feel for what the technologies we're discussing can
do, so that you can incorporate them into actual applications. There
are application suggestions in many of them as well. I expect that each
student will at least complete the steps outlined in the lab activity
each week, so that you understand practically what it is we're talking
about. Document any discoveries you make, pitfalls you hit, and details
not covered in the class or the lab that you think will be useful for
your fellow students and future students in this class.
Projects:
There are two production
projects and one observation project during the semester. In these projects,
you will observe and document a possible situation in which you might
use physical computing techniques and develop a prototype to fit the
situation. In the production projects you will also test it and report
on it.
For the first two
projects, you will be assigned to work in a group. For the other project,
and for the final, you may work alone or in groups, as you choose. There
will be four to seven assigned groups, depending on class size.
More details on the projects can be found in the project
brief.
|
My
Notes:
The labs will teach
you how to later labs, more interesting projects, allow you to participate
in class discussions, and if that were not enough they are 15% of your
grade.
|
| Top
Student Journals:
Terence
Arjo
Evan Barba
Greg Beliczynski
Langdon
Crawford
Charles
Harlan
Steven
Jackson
Steve Kerrigan
Sam Lee
Avani Patel
Joon Ho
Phang
Arly Ross
Adam Samuels
Vikas Sapra
Bruce Shackelford
Sandra
Villarreal
Fazreen
Zaianne |
Journal
& Documentation:
You are expected
to participate in the class' online journal, which takes the form of
a collaboratively-edited blog. The purpose of the journal is two-fold.
First, it is a valuable way for you to communicate to me that you are
keeping up with the work in the class. I will read the journal to see
how students are doing, and the journal should be updated regularly
throughout the semester. At a minimum, reference to each week's work
is expected, as well as reference to the readings, and thorough documentation
of the three main projects and technical research. You may choose to
document your major projects in a separate individual or group site
if you choose, but you will be expected to link your site to the main
site, and contribute to the class site as well nonetheless. Please avoid
flash, shockwave, or other sites that are not text-searchable, as they
won't show up on search engines for others to use.
Blogs are great
for documenting your process, as they're usually defaulted to organizing
the information chronologically. However, projects summarized in a blog
can be confusing. It's often worthwhile to set up a separate page or
pages to summarize your projects when they're done.
You should document
your projects thoroughly. Plan in advance, and perhaps as a group, to
have what you need to document at least your midterms and finals. Photos,
video, drawings, schematics, and notes are all valuable forms of documentation.
Explain the project at the beginning of your documentation, so that
people who come to the site from outside this class will understand
the overview before they get the explanation.
Don't overload
your notes with code. If you've made a big improvement on an existing
piece of code, post your new code, and link to the code you based it
on (just as you would in citing a pervious author in a paper). If you
only changed one part of an existing program, post only the part you
changed, and link to the original. Make sure any code you post is well-commented,
so you and others can understand what it does.
Always cite the
sources of your code, the places you learned techniques from, and the
inspirations of your ideas. This is the equivalent to citing your sources
in a written paper, and copying code or techniques without attribution
is plagiarism. few ideas come out of the blue, and your readers can
learn a lot from the sources you learned from or were inspired by.
Work on this as
you go, don't put it off until the end. Your fellow classmates will
find your notes as useful too.
See the template
with areas you should consider for each project.
A few good recent
sample journals:
• Jason
Babcock's journal These are notes Jason kept throughout his time
at ITP. Each section covers the technical details of a specific project.
Sometimes the task is part of a larger project, and sometimes it's a
project in itself. This is an excellent example of how to document the
tech details of your projects.
• Geraldine
Sarmiento Geraldine's is a good example of a recent physical computing
journal. Her notes on her process are clear even if you don't know the
project, and she includes photos and code samples where necessary.
• John
Schimmel John's journal offers good explanations of all of his projects.
You can see that, like Geraldine's, his journal is in reverse chronological
order, perhaps because of the way his blog software defaults. But his
post titles are descriptive, so you can skip around and know a bit about
what you're getting.
• Saranont
Limpananont Though his journal is not for the physical computing
class, Nont's journal is an excellent example. He combines thoughtful
critical reading notes, details on his technical process, and clear
descriptions of his projects. His documentation of Physical
SimVillage is a good example of a summary of the project that's
independent from his working notes.
• Sasha
Harris-Cronin (see the Constructions link). Sasha details how she's
made her project very nicely. Her explanations and parts lists make
it clear how to make your own.
• Jen Lewin's
Blueink site (see
the physical computing link). Jen taught this class a few years ago,
and her syllabus is still helpful. Her documentation of her own projects
is good too.
• Many
others
Grading:
- Participation
& Attendance: 20%
- Lab Assignments: 15%
- Observation Project: 15%
- Project 2: 15%
- Final: 20%
- Journal: 20%
|
My
Notes:
You have the option
of using Moveable Type as a way of recording you journal. More details
to as they become available...
I find journals challenging,
but especially crucial. If you don't document it then it never happened. |
| Top
|
Participation
& Attendance
Showing up on time,
engaging in the class discussion, and offering advice and critique on
other projects in the class is a major part of your grade. Please be
present and prompt. Lateness will hurt your grade. If you're going to
be late or absent, please email me in advance. If you have an emergency,
please let me know as soon as you can. Please turn in assignments on
time as well.
Laptops
Laptop use is fine
if you are using your laptop to present in class, or if we're in the
middle of an exercise that makes use of it. Whenever classmates are
presenting or we're in the midst of a class discussion, however, please
keep your laptop closed. The quality of the class depends in large part
on the quality of your attention and active participation, so chat live
with your classmates: talk with your mouth not with your hands.
Parts
A list
of parts needed for the first few weeks follows. You will end up
spending money on materials in this class. It can be done reasonably
inexpensively, by scavenging parts, reusing parts, and so forth, but
more ambitious projects inevitably make demands on your budget.
Books
Below are recommended
texts for the course in general. Individual instructors may have their
own recommendations as well. All of them are good inspirational guides
for physical computing and computing in general. They are not assigned,
but pick up at least one of them and incorporate it in your midterm
journal, if nothing else.
Physical
Computing: Sensing and Controlling the Physical World with Computers,
Dan O'Sullivan and Tom Igoe ©2004, Thomson Course Technology
PTR; ISBN: 159200346X
Includes all the stuff covered in class and lots of advanced examples
as well. This book was developed from this course, so if you're looking
for a textbook, this is it.
The Design
of Everyday Things, Donald A. Norman ©1990 Doubleday
Books; ISBN: 0385267746
If you design at all, or work with people who do, read this. A lucid approach
to the psychology of everyday interaction and how the objects we deal
with could be better designed to match the strengths and weaknesses of
the way we think. His predictions about physical interaction design and
information design, some accurate and some not, are interesting history
lessons eleven years after the first edition.
The User
Illusion: Cutting Consciousness Down to Size, Tor Nørretranders
©1998 Viking Press; ISBN: 0670875791
Makes the case that much of our experience of the world does not come
to us through our consciousness; in fact, the majority of it dealt with
pre-consciously.
The Art of
Interactive Design, Chris Crawford, ©2002 No Starch
Press; ISBN: 1886411840
Written in a very casual style, this book nevertheless is an excellent
and concise summary of what interaction design is, why it is important,
and what problems it brings with it. Anyone seriously interested in interaction
design, physical or not, should read this book.
The following are good references for electronics hobbyists. Take a look
at both, and get one or the other as a general reference, or find an electronics
reference of your own (a few more are listed in the books
section of the site).
Getting Started
in Electronics, Forrest M. Mims III, ©1983, Forrest
M. Mims III
A very basic introduction to electricity and electronics, written in notebook
style. Includes descriptions of the basic components and what they do,
and how they relate to each other.
Practical
Electronics for Inventors, 1st Edition. Paul Scherz,
©2000, McGraw-Hill Professional Publishing; ISBN: 0070580782
A more in-depth treatment of electronics, with many practical examples
and illustrations. An excellent reference for those comfortable with the
basic topics. The use of plumbing systems as examples to demonstrate electric
principles makes for some very clear illustrations of how different components
work. Good chapters on sound electronics and motors as well.
A longer list of
books for inspiration and reference is available online at the books
link.
Magazines
Here are a few
magazines I (Andrew) like so I'm going to add them here to the syllabus.
They all are available online to some degree, yet I still subscribe
to the paper versions for subway reading.
Make
Magazine - Great resource for all sorts of hacks and tricks. Some
are better explained than others.
Technology
Review - Mostly larger technological issues but a great way to stay
slightly ahead of the crowd. (sometimes months ahead of mainstream press)
I think Wired was headed in this direction but lost their edge.
Nuts
& Volts - More technical and advanced on occasion, but a good
source of hobbyist electrical engineering tips and tricks. They also
produce Servo
which is more specifically towards robotics.
|
My
Notes:
If you are late to
class you may find yourself working with Santa.
Books:
Code:
The Hidden Language of Computer Hardware and Software by Charles Petzold
The first few chapters
do a great job of explaining many of the basics we cover the first 2 weeks
of class. |
Dates
|
Class
Topics
|
Details
|
Week 1
September 8th
Top
|
Presentation
- Introductions
- Cover the syllabus and class structure
- Digital vs. Analog
- Logic vs. Power Circuits
- Introduction to
Electronics: Definition of electronic components, reading a volt/amp
meter, reading a schematic, relationships between the basic elements.
- Soldering
(thanks to Jeff Feddersen for the link)
Assignments for
next week
- Join the PhysComp
listserv
- Start your journal and e-mail
me the URL
- Lab assignment: Basic
Electronics
- Reading:
Crawford The
Art of Interactive Design Chapters 1 & 2
To access this you will need to:
- Login to NYUHome
- click on the RESEARCH tab
- under "Article Search" you'll find a link to "Books24x7.com"
- Search for the ISBN:
1886411840
or just Crawford...
Buxton "Less
is more, More or less"
|
You
should be able to order up to three sample chips directly from Microchip
by registering with their website.
The chip we will
be using in class is a
PICmicro Microcontroller
PIC 18F452-IP
We'll get in to more
details about what this is and how it works soon, (the site is a bit intimidating
at first) but you should place your request for samples so that they arrive
in time to use them later in the semester.
In the mean time
they should be available in the computer store. |
Week 2
September 15th
Top |
Presentation
-
Microcontrollers: what they are, different types, levels.
- Intro to
PIC and PIC
Programming
- Digital
Input and Output
- Serial
Output (for debugging, more detail in Week 5)
Assignments for
next week
- Lab Assignment:
Digital
input and output using
the PIC microcontroller
- Begin Observation
Project Group Project
- Sign
up for mandatory tool safety secession in the workshop to be completed
by week 3 or 4. Safety sessions are every day at 2pm, 12 people
per session.
- Sign up for 2 shop clean up sessions.
|
|
Week 3
September 22nd
Top |
Presentation
- Memory
and variable types: binary, decimal, hexadecimal (hex)
- Analog
input: what an analog to digital converter (ADC) is.
Assignments
- Project work:
Observation
Project Present location and observations.
- Lab Assignment: Variables
and Analog Input Analog in; tracking changes with variables; practical
jokes
- Norman, Design of Everyday Things, ch1 (in coursepack)
- Norman, Emotional
Design, ch1, "Attractive Things Work Better."
|
|
|
Week 4
September 29th
Top |
Presentation
- Analog
Output : Sending a signal to devices that create analog motion or
sound... servos, freqout, pulse width modulation (PWM)
- Show final prototypes ideas for Observation
Project
Assignments
- Begin device/instrument/tool
project (Group Project)
- Lab assignment: Analog
output/Servo Control
- Reading: Myron Krueger, "Responsive Environments", in Packer
& Jordan, Multimedia: From Wagner to Virtual Reality, ch. 12, pp.
104-120. (in coursepack)
|
Sorry
for the confusion, but we have completed the first Observation Project.
Please direct your efforts towards the device/instrument/tool
project. |
Week 5
October 6th
Top |
Presentations
- Serial
communication: Sending bytes out
- Serial interpretation:
Understanding the bytes (ASCII)
Assignments
- Serial
to desktop: Data in to Processing
- Presentations Due: device/instrument/tool
project
- Lab assignment: device/instrument/tool
project initial prototype
- Reading: Applications TBA
|
See
Above... |
Week 6
October 13th
Top |
Presentations
- Digital Output:
Transistors and relays: Controlling
higher-current electrical devices (light bulb and switch)
- Controlling
DC motors and Stepper
motors
Assignments
- Presentations
Due: device/instrument/tool
project initial prototype
- Begin advanced prototype of device/instrument/tool
project
- Lab Assignment: DC
Motor control
- Reading for week 7:
Nørretranders, User Illusion, ch. 6,
"The Bandwidth of Consciousness"
|
|
Week 7
October 20th
Top |
Presentations
- Musical Instrument
Digital Interface (MIDI)
and other control protocols
- Be sure to take note of this simplified
MIDI Output circuit.
Assignments
- Presentations
Due: device/instrument/tool
project advanced prototype
- Lab Assignment: Talk
to a MIDI device
|
|
Week 8
October 27th
Top |
Presentations
- Presentations
Due: device/instrument/tool
project (all projects to present)
Assignments
- Project: Decide
on what projects you want to re-do for your final project
-Reading assignment TBD
|
|
Week 9
November 3rd
Top |
Presentations
- Code approaches:
State Machines, pseudocode, using subroutines well
Assignments
- Begin your final
project (group or individual)
- Reading for week 10:
Hoffman, Visual Intelligence, ch. 7, pp.172-184
|
|
Week 10
November 10th
Top |
Presentations
- Video
Tracking
- Final projects: Present final concepts, show observations
Assignments
- Work on Final
Project: Reasearch and begin ordering/finding parts, do appropriate
planning required to stay on shedule.
|
|
Week 11
November 17th
Top |
Presentations
Final Project:
Show thematic diagrams, pseudo code, technical research or other preparations
you've made in planning your project.
- Synchronous Serial or other topic TBA
- Project workshop
Assignments
- Work on Final
Project: Build prototype and do user testing.
|
|
Week 12
December 1st
Top |
Presentations
- Final Project:
Demonstrate prototype and show user testing research (five to eight
projects, chosen at random)
- Project workshop
Assignments
- Finish your final
project, then make it better, then document it in your journal.
|
|
Week 13
December 8th
Top |
Presentations
Final Project Presentation:
First half (Individual projects)
|
|
Week 14
December 15th
Top |
Presentations
Final Project Presentation:
Second Half (Remaining individual projects and group projects)
|
|
 |
Happy Holidays

|
 |