(edit sidebar)
Intro to Physical Computing Syllabus

Research & Learning

Other Class pages

Shop Admin

ITP Help Pages
Tom's pcomp site
DanO's pcomp site


Introduction to Physical Computing - Summer 2011

Summer11.Scott History

Hide minor edits - Show changes to output

Deleted line 232:
** [[http://www.tigoe.net/pcomp/code/circuits/motors/stepper-motors|stepper motors]]
Changed lines 260-263 from:
->There are many other good applications for this project. Discuss the specifics of yours with your instructor.


to:
->There are many other good applications for this project. Discuss the specifics of yours with Scott.

'''FROM CLASS'''
Read through the Labs, but do these instead : \\
Build the circuit in the third image on the right from [[http://ardx.org/src/circ/CIRC00-sheet-ADAF.pdf | this page]] \\
 We looked at how we can control the motor digitally (like in the "Blink" example) and with variable speeds.

Here's some code for controlling a motor attached to pin 9 with a pot, or other analog input :
[@

 int potPin = 0;    // The pot or senor is on Analog input pin 0
 int sensorValue = 0;  // value read from the analog sensor
 int motorPin = 9;    // PWM pin that the transistor is on.  n.b. PWM 0 is on digital pin 9

 void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600);
  // declare the motor pin as an output:
  pinMode(motorPin, OUTPUT);
 }

 void loop() {
  sensorValue = analogRead(potPin); // read the sensor value

  // map the sensor value from the 10-bit input range (0-1023)
  // to the output range (0-255).
  int motorSpeed = sensorVal/4;

  analogWrite(motorPin, motorSpeed);  // set the motor speed  with the result
  Serial.println(motorSpeed);  // print the motorSpeed value back to the debugger pane (0-255)
  delay(10);                    // wait 10 milliseconds before the next loop
 }

@]


Added lines 298-299:
** [[http://www.tigoe.net/pcomp/code/circuits/motors/stepper-motors|stepper motors]]
Changed lines 219-222 from:
  
'''LABS:'''
** [[Labs/SerialDuplex | Lab]]: Multiple Serial Output

to:
Added lines 229-230:
* Continuing Serial communication part 2
Added lines 240-242:
** [[Labs/SerialDuplex | Lab]]: Multiple Serial Output

'''LABS:'''
Deleted lines 245-254:

!!!!Class 8
'''CONCEPTS:'''
* complex data communications
** configuration vs. communication (command move vs. data mode)
** addressing
** Bluetooth serial as example
** protocols discussion
** [[Labs/Bluetooth | Optional Bluetooth Lab]]

Added lines 263-274:


!!!!Class 8
'''CONCEPTS:'''
* complex data communications
** configuration vs. communication (command move vs. data mode)
** addressing
** Bluetooth serial as example
** protocols discussion
** [[Labs/Bluetooth | Optional Bluetooth Lab]]

Changed lines 245-246 from:
!!!Class 8
to:
!!!!Class 8
'''CONCEPTS:'''
* complex data communications
** configuration vs. communication (command move vs. data mode)
** addressing
** Bluetooth serial as example
** protocols discussion
** [[Labs/Bluetooth | Optional Bluetooth Lab]]

Added line 272:
Changed lines 274-282 from:
'''CONCEPTS:'''
* complex data communications
** configuration vs. communication (command move vs. data mode)
** addressing
** Bluetooth serial as example
** protocols discussion
** [[Labs/Bluetooth | Optional Bluetooth Lab]]


to:
* Mopping up, checking on any outstanding issues on what we covered so far.
July 21, 2011, at 10:40 AM by shf220 - added example for serial
Changed lines 161-209 from:
to:
'''CODE FROM CLASS'''
[@
/*
Serial RGB LED controller
by Tom Igoe
Controls an RGB LED whose R, G and B legs are
connected to pins 11, 9, and 10, respectively.
*/
// constants to hold the output pin numbers:
const int greenPin = 9;
const int bluePin = 10;
const int redPin = 11;
int currentPin = 0; // current pin to be faded
int brightness = 0; // current brightness level
void setup() {
  // initiate serial communication:
  Serial.begin(9600);
  // initialize the LED pins as outputs:
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}
void loop() {
  // if there's any serial data in the buffer, read a byte:
  if (Serial.available() > 0) {
    int inByte = Serial.read();
    // respond to the values 'r', 'g', 'b', or '0' through '9'.
    // you don't care about any other value:
    if (inByte == 'r') {
      currentPin = redPin;
    }
    if (inByte == 'g') {
      currentPin = greenPin;
    }
    if (inByte == 'b') {
      currentPin = bluePin;
    }
    if (inByte >= '0' && inByte <= '9') {
      // map the incoming byte value to the range of the analogRead() command
      //because our LEDs are common anode, we invert the values in the map() function
      brightness = map(inByte, '0', '9', 255, 0);
      // set the current pin to the current brightness:
      analogWrite(currentPin, brightness);
    }
  }
}
@]

Changed lines 158-161 from:
to:
'''LINKS'''
* [[http://www.moma.org/visit/calendar/exhibitions/1080 | Talk to Me]] at the MOMA

Changed lines 145-147 from:
'''PRESENT THIS WEEK:''' 
* Stupid Pet Trick

to:
'''DISCUSS PET TRICKS!'''
Added lines 160-162:
'''PRESENT THIS CLASS:'''
* Stupid Pet Trick

Deleted line 15:
*[[http://cargocollective.com/melodysong |Melody]]\\
Changed lines 115-118 from:
* Norretranders, ''[[http://itp.nyu.edu/physcomp/readings/userillusion.pdf |The User Illusion]]'', Chapter 6: The Bandwidth of Consciousness


to:
* Norretranders, ''[[http://itp.nyu.edu/physcomp/readings/userillusion.pdf |The User Illusion]]'', Chapter 6: The Bandwidth of Consciousness ''If you can't access the reading, email me''


Changed lines 125-126 from:
*Transistor
to:
Deleted lines 114-121:
'''ASSIGNMENT:''' 
->Stupid Pet Trick.  Make a simple physically interactive device that uses the skills you've learned in the labs. It must respond to a physical action or series of actions a person takes, and it must be amusing, surprising, or otherwise engaging.It doesn't have to be practical, or complex, as long it shows that you understand the basics of digital and analog I/O and how to use them. If you're unfamiliar with the term "stupid pet trick," Googling the term may provide you inspiration for the tone of this project.

->Examples:
* a love-o-meter, a device that tells you what a good lover you are, based on how it measures some action you take
* a combination lock, a device whose response is "unlocked" by a specific series of actions in a particular order from the user
* a light mixer, a device that mixes colors of light from some analog input (to simplify, use LEDs as lights)
* a tone mixer, same concept as the light mixer, but that mixes audible tones
Changed lines 135-144 from:
to:
'''ASSIGNMENT:''' 
->Stupid Pet Trick.  Make a simple physically interactive device that uses the skills you've learned in the labs. It must respond to a physical action or series of actions a person takes, and it must be amusing, surprising, or otherwise engaging.It doesn't have to be practical, or complex, as long it shows that you understand the basics of digital and analog I/O and how to use them. If you're unfamiliar with the term "stupid pet trick," Googling the term may provide you inspiration for the tone of this project.

->Examples:
* a love-o-meter, a device that tells you what a good lover you are, based on how it measures some action you take
* a combination lock, a device whose response is "unlocked" by a specific series of actions in a particular order from the user
* a light mixer, a device that mixes colors of light from some analog input (to simplify, use LEDs as lights)
* a tone mixer, same concept as the light mixer, but that mixes audible tones

Deleted lines 156-158:
'''BLOG:''' 
->Observation. Pick a piece of interactive technology in public, used by multiple people. Write down your assumptions as to how it's used, and describe the context in which it's being used. Watch people use it, preferably without them knowing they're being observed.  Take notes on how they use it, what they do differently, what appear to be the difficulties, what appear to be the easiest parts. Record what takes the longest, what takes the least amount of time, and how long the whole transaction takes. Consider how the readings from Norman and Crawford reflect on what you see.

Added lines 175-177:
'''BLOG:''' 
->Observation. Pick a piece of interactive technology in public, used by multiple people. Write down your assumptions as to how it's used, and describe the context in which it's being used. Watch people use it, preferably without them knowing they're being observed.  Take notes on how they use it, what they do differently, what appear to be the difficulties, what appear to be the easiest parts. Record what takes the longest, what takes the least amount of time, and how long the whole transaction takes. Consider how the readings from Norman and Crawford reflect on what you see.

Deleted lines 195-196:
'''PRESENT THIS WEEK:'''  media controller.
Added line 17:
*[[http://eatmybreadboard.wordpress.com/|Pia]]\\
Changed lines 20-21 from:
to:
*[[http://sophieatitp.wordpress.com/|Sophie]]\\
Changed line 92 from:
* Arduino [[Programming Reference | http://arduino.cc/en/Reference/HomePage]]
to:
* Arduino [[http://arduino.cc/en/Reference/HomePage | Programming Reference]]
Changed line 16 from:
*[[http://cargocollective.com/melodysong |Melody]]
to:
*[[http://cargocollective.com/melodysong |Melody]]\\
Added line 16:
*[[http://cargocollective.com/melodysong |Melody]]
Added lines 90-99:

'''LINKS'''
* Arduino [[Programming Reference | http://arduino.cc/en/Reference/HomePage]]
* ''Where to buy stuff''
*[[http://sparkfun.com | Sparkfun]]
*[[http://jameco.com | Jameco]]
*[[http://adafruit.com | adafruit]]
*[[http://radioshack.com|Radio Shack]]
*[[http://digikey.com|Digikey]]
*[[http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=269+Canal+St+10013&sll=37.0625,-95.677068&sspn=40.052282,81.914062&ie=UTF8&ll=40.719323,-74.000988&spn=0.009384,0.019999&z=16&iwloc=A|269 Canal Street]]
Changed line 15 from:
*[[http://glensaldanha.wordpress.com/ | Glen]]
to:
*[[http://glensaldanha.wordpress.com/ | Glen]]\\
Added line 15:
*[[http://glensaldanha.wordpress.com/ | Glen]]
Changed line 15 from:
*[[theeditingsuite.net | Rooki]]\\
to:
*[[http://theeditingsuite.net | Rooki]]\\
Added line 15:
*[[theeditingsuite.net | Rooki]]\\
Added line 12:
*[[http://adielfernandez.blogspot.com/ | Adiel]]\\
Changed lines 15-16 from:
*[[http://adielfernandez.blogspot.com/ | Adiel]]\\
to:
*[[http://sw1396physicalcomputing.wordpress.com/ | Sarah]]\\
Changed lines 18-20 from:
'''NB : The kits are not in the computer store yet, focus on the readings and your observations for the blog. Review the pages for the Labs from class 1!'''
'''Update July 7 : The kits are scheduled to arrive this afternoon
! Yay!'''
to:
'''Update July 7 : The kits arrived in the computer store this morning! Yay!'''
Added line 12:
*[[http://blogs.nyu.edu/blogs/alf431/onoinouno/ | Allen]]\\
Changed lines 14-15 from:
*[[http://blogs.nyu.edu/blogs/alf431/onoinouno/ | Allen]]\\
to:
*[[http://adielfernandez.blogspot.com/ | Adiel]]\\
Changed lines 18-19 from:
to:
'''Update July 7 : The kits are scheduled to arrive this afternoon! Yay!'''
Changed line 55 from:
* Put a link to your blog on the class wiki page.
to:
* Send me a link to your blog, and I will post it here.
Changed lines 72-74 from:
* Crawford, ''[[http://library.books24x7.com/book/id_4587/toc.asp | The Art of Interactive Design]]'', chapters 1 and 2 (note: you will need to sign into NYUHome to view this. From your NYUHome home page, click "Research" then "books24x7.com" then search for "The Art of Interactive Design" by Chris Crawford. Alternately, try [[http://library.books24x7.com/bookmark.asp?bookid=4587|this link]]. )  You can also find it on Google Books [[http://books.google.com/books?id=lefh5rSLbVUC&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false | here]]

to:
* Crawford, ''[[http://library.books24x7.com/book/id_4587/toc.asp | The Art of Interactive Design]]'', chapters 1 and 2 (note: you will need to sign into NYUHome to view this. From your NYUHome home page, click "Research" then "books24x7.com" then search for "The Art of Interactive Design" by Chris Crawford. Alternately, try [[http://library.books24x7.com/bookmark.asp?bookid=4587|this link]]. )  '''For those without Books24x7 access, you can also find the readings on Google Books [[http://books.google.com/books?id=lefh5rSLbVUC&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false | here]].'''

Added lines 17-18:
'''NB : The kits are not in the computer store yet, focus on the readings and your observations for the blog. Review the pages for the Labs from class 1!'''
Changed lines 25-27 from:
As we have fewer (but longer!) course meetings, follow the regular course, but lose some time for the final project.

to:
As we have fewer (but longer!) course meetings, we will follow the regular course, but lose some time for the final project.

Changed lines 12-14 from:
[[http://ardyharhar.wordpress.com/ | Bree]]\\
[[http://blogs.nyu.edu/blogs/alf431/onoinouno/ | Allen]]\\
\\
to:
*[[http://ardyharhar.wordpress.com/ | Bree]]\\
*[[http://blogs.nyu.edu/blogs/alf431/onoinouno/ | Allen]]\\
Changed lines 11-14 from:
If you don't send your blog to me, everyone will know when they come to this page! Massive public shaming to follow!
[[http://ardyharhar.wordpress.com/ | Bree]]
[[http://blogs.nyu.edu/blogs/alf431/onoinouno/ | Allen]]
to:
If you don't send your blog to me, everyone will know when they come to this page! Massive public shaming to follow!\\
[[http://ardyharhar.wordpress.com/ | Bree]]\\
[[http://blogs.nyu.edu/blogs/alf431/onoinouno/ | Allen]]\\
\\
Changed lines 12-14 from:
to:
[[http://ardyharhar.wordpress.com/ | Bree]]
[[http://blogs.nyu.edu/blogs/alf431/onoinouno/ | Allen]]

Deleted lines 23-25:
'''Attend a tool safety session in the shop'''
(Seeing if this can be scheduled for the start of class2)

Added lines 64-65:
* [[http://www.zambetti.com/projects/resistulator/ | Resistulator]] :the resistor color code tool I mentioned
* [[http://fritzing.org/ | Fritzing]] for making pretty circuit diagrams
Changed lines 68-70 from:
* Crawford, ''[[http://library.books24x7.com/book/id_4587/toc.asp | The Art of Interactive Design]]'', chapters 1 and 2 (note: you will need to sign into NYUHome to view this. From your NYUHome home page, click "Research" then "books24x7.com" then search for "The Art of Interactive Design" by Chris Crawford. Alternately, try [[http://library.books24x7.com/bookmark.asp?bookid=4587|this link]]. ) 

to:
* Crawford, ''[[http://library.books24x7.com/book/id_4587/toc.asp | The Art of Interactive Design]]'', chapters 1 and 2 (note: you will need to sign into NYUHome to view this. From your NYUHome home page, click "Research" then "books24x7.com" then search for "The Art of Interactive Design" by Chris Crawford. Alternately, try [[http://library.books24x7.com/bookmark.asp?bookid=4587|this link]]. )  You can also find it on Google Books [[http://books.google.com/books?id=lefh5rSLbVUC&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false | here]]

Added lines 64-66:

'''LINKS'''
* Jim Campbell's [[http://www.jimcampbell.tv/portfolio/miscellaneous_references/ | "Formula for Computer Art"]]
Changed line 36 from:
!!!Week 1
to:
!!!Week 1 : Getting to know your Arduino. Hello Everything!
Changed line 81 from:
!!!Week 2
to:
!!!Week 2 : Back to the Physical
Changed line 121 from:
!!!Week 3
to:
!!!Week 3 : Talk to me! Communication with other things
Deleted lines 125-136:
'''ASSIGNMENT:'''
->Media controller project. Make a physical device that controls a medium.  It should control the medium in real-time, so that the user can change her actions and see changes as they affect the medium.  There are lots of media: digital video, digital audio, electronic or acoustic sound, physical media like paint or ink, and others.  Think about paint brushes, video mixers, musical instruments, water faucets, sewing machines -- anything that can control a medium and let you see the changes as you vary your control is fair game.'

->This is a group assignment. Groups will be arranged in class this week.

'''READING:'''
* Norman, ''[[http://itp.nyu.edu/physcomp/readings/DesignOfEveryDayThings.pdf |Design of Everyday Things]]'', ch. 1
* Norman, ''[[http://www.jnd.org/dn.mss/emotion_design_at.html | Emotional Design]]'', Chapter 1, "Attractive Things Work Better". 



!!!!Class 6
Changed lines 136-138 from:
!!!Week 4
!!!!Class 7

to:
'''READING:'''
* Norman, ''[[http://itp.nyu.edu/physcomp/readings/DesignOfEveryDayThings.pdf |Design of Everyday Things]]'', ch. 1
* Norman, ''[[http://www.jnd.org/dn.mss/emotion_design_at.html | Emotional Design]]'', Chapter 1, "Attractive Things Work Better". 


!!!!Class 6
Changed lines 154-155 from:
!!!Class 8
to:
!!!Week 4 : Controlling high current loads, making things move
!!!!Class 7
Changed lines 170-172 from:
!!!Week 5
!!!!Class 9

to:
!!!Class 8
Changed lines 191-192 from:

!!!!Class 10
to:
!!!Week 5 : Additional concerns, wireless communication
!!!!Class 9
Changed lines 206-209 from:
!!!Week 6
!!!!Class 11
* final project workshop.  Discuss any technical issues

to:
!!!!Class 10
* Mopping up, checking on any outstanding issues on what we covered so far. Final project reports.

Added lines 212-217:

!!!Week 6 : Holy Mackerel, this is already over?
!!!!Class 11
* final project workshop.  Discuss any technical issues

Changed lines 46-47 from:
to:
* How to [[http://mightyohm.com/files/soldercomic/FullSolderComic_EN.pdf | solder something]] (PDF)
Changed lines 6-7 from:
Office Hours: Wed, 6:30 - 7:30p\\
to:
Office Hours: Wed, 7 - 8p\\
Changed lines 11-12 from:
If you don;t send these to me, everyone will know when they come to this page!
to:
If you don't send your blog to me, everyone will know when they come to this page! Massive public shaming to follow!
Deleted lines 9-16:
!! 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 to use sensors to detect changes in energy given off by our bodies (in the form of sound, light, motion, and other forms) and feed these values into a very simple computer called a microcontrollers that will also control output of the circuit. The microcontroller used in this class is called Arduino, is much more accessible than previous microcontrollers and is intended specifically for artists and hobbyist. The core technical concepts of the class include digital, analog and serial input and output. You'll also 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. Students have weekly lab exercises to build skills with the microcontroller and related tools, and longer assignments in which they apply the principles from weekly labs in creative applications. Both individual work and group work is required.

Changed lines 11-12 from:

to:
If you don;t send these to me, everyone will know when they come to this page!
Changed lines 17-18 from:
Some additional supplies are available in the shop, and feel free to use what is in there. However, dont go overboard (using an LED or 2 is fine, using 10 for your Glow-o-tron is not).
to:
Some additional supplies are available in the shop, and feel free to use what is in there. However, dont go overboard (using an LED or 2 is fine, using 100 for your Glow-o-tron is not).
Changed lines 21-225 from:
As we have fewer (but longer!) course meetings, we will deviate oh-so-slightly from the regular course list. I will update this for the first class.
to:
As we have fewer (but longer!) course meetings, follow the regular course, but lose some time for the final project.


'''Attend a tool safety session in the shop'''
(Seeing if this can be scheduled for the start of class2)

The syllabus is broken down into:

* '''Concepts''' we'll discuss in class.  Course notes are linked so you can read them before class, to know what we're talking about.
* '''Lab exercises''' that illustrate the concepts. You're not required to show your lab work in class, but do them each week to learn, and come in with questions if you have any.  If you did something you're proud of, feel free to bring it in, though this is optional.
* '''Production assignments''' larger assignments which have scheduled times you'll be expected to show them in class.
* '''Reading''' to be read in the week they're assigned.  Will come up in discussion the week after, usually.
* '''Blog assignments''' Writing the week when it's assigned. Will come up in class from time to time. Read each other's stuff too.
* '''Due dates''' for production assignments

!!!Week 1
!!!!Class 1
'''CONCEPTS:'''
* What is Physical Computing?
* What is a [[http://www.tigoe.net/pcomp/code/controllers/all-about-microcontrollers|Microcontroller]]?
** Microcontrollers and sensors in the everyday environment
* Analog vs. Digital
* [[http://www.tigoe.net/pcomp/code/controllers/input-output/digital-input-output| Digital Input and Output]]
* [[http://www.tigoe.net/pcomp/code/circuits/breadboards | Breadboards]]
* Intro to [[http://www.arduino.cc/|Arduino]] and first program.

'''LABS:'''
* [[Labs/Breadboard | Lab:]] Setting up a breadboard
* [[Labs/DigitalInOut | Lab:]] first Arduino program 

'''ASSIGNMENT:'''
* Join the [[Main/List| physcomp listserve]]
* Put a link to your blog on the class wiki page.
* [[https://itp.nyu.edu/signup/day.php?area=1 | Sign up]] for two days of [[http://itp.nyu.edu/physcomp/Policy/Cleanup | shop cleaning]]. 

'''BLOG:'''
->Sensor walk.  Take a walk around your neighborhood, or a different one.  Take a count of every interaction with a sensor you see. These might include:
* Pushbuttons on an ATM
* motion sensors on doors, faucets, etc.
* Floor mats
* Cameras
->Take pictures or video as appropriate, of the most interesting ones.

'''READING:'''
* Crawford, ''[[http://library.books24x7.com/book/id_4587/toc.asp | The Art of Interactive Design]]'', chapters 1 and 2 (note: you will need to sign into NYUHome to view this. From your NYUHome home page, click "Research" then "books24x7.com" then search for "The Art of Interactive Design" by Chris Crawford. Alternately, try [[http://library.books24x7.com/bookmark.asp?bookid=4587|this link]]. ) 


!!!!Class 2

'''CONCEPTS:'''
* [[http://www.tigoe.net/pcomp/code/controllers/input-output/analog-input|analog input]]

'''LABS:'''
* [[Labs/AnalogIn | Lab]]: Analog in; tracking changes with variables

'''ASSIGNMENT:'''
->Fantasy Device. Think of a fantasy device you've always wanted.  Doesn't have to be physically possible, but it has to have a physical interface.  Design what the physical interface was.  Document your design on your blog, and bring it in for the class. Your mock-up doesn't have to work, and it can be made out of any materials you're comfortable with.  Make this a quick sketch, just enough so that your classmates have a sense of what they would do to use your device. 
         

!!!Week 2
!!!!Class 3
'''PRESENT THIS WEEK:'''
* Fantasy Device

'''CONCEPTS:'''
* [[http://www.tigoe.net/pcomp/code/circuits/understanding-electricity| Understanding Electricity]]

'''LABS:'''
* [[Labs/Electronics | Lab]]: Electronics

'''ASSIGNMENT:''' 
->Stupid Pet Trick.  Make a simple physically interactive device that uses the skills you've learned in the labs. It must respond to a physical action or series of actions a person takes, and it must be amusing, surprising, or otherwise engaging.It doesn't have to be practical, or complex, as long it shows that you understand the basics of digital and analog I/O and how to use them. If you're unfamiliar with the term "stupid pet trick," Googling the term may provide you inspiration for the tone of this project.

->Examples:
* a love-o-meter, a device that tells you what a good lover you are, based on how it measures some action you take
* a combination lock, a device whose response is "unlocked" by a specific series of actions in a particular order from the user
* a light mixer, a device that mixes colors of light from some analog input (to simplify, use LEDs as lights)
* a tone mixer, same concept as the light mixer, but that mixes audible tones
'''READING:'''
* Norretranders, ''[[http://itp.nyu.edu/physcomp/readings/userillusion.pdf |The User Illusion]]'', Chapter 6: The Bandwidth of Consciousness



!!!!Class 4

'''CONCEPTS:'''
* [[http://www.tigoe.net/pcomp/code/controllers/input-output/analog-output|analog output]]
** pulsewidth modulation
*Sound out
*Transistor

'''LABS:'''
* [[Labs/Servo | Lab]]: servo/analog out
* [[Labs/ToneOutput | Lab]]: Tone output

'''READING:''' 
* Graham Pullin, ''[[http://itp.nyu.edu/physcomp/readings/Design_meets_disability.pdf|Design Meets Disability]]''


!!!Week 3
!!!!Class 5
'''PRESENT THIS WEEK:'''
* Stupid Pet Trick

'''ASSIGNMENT:'''
->Media controller project. Make a physical device that controls a medium.  It should control the medium in real-time, so that the user can change her actions and see changes as they affect the medium.  There are lots of media: digital video, digital audio, electronic or acoustic sound, physical media like paint or ink, and others.  Think about paint brushes, video mixers, musical instruments, water faucets, sewing machines -- anything that can control a medium and let you see the changes as you vary your control is fair game.'

->This is a group assignment. Groups will be arranged in class this week.

'''READING:'''
* Norman, ''[[http://itp.nyu.edu/physcomp/readings/DesignOfEveryDayThings.pdf |Design of Everyday Things]]'', ch. 1
* Norman, ''[[http://www.jnd.org/dn.mss/emotion_design_at.html | Emotional Design]]'', Chapter 1, "Attractive Things Work Better". 



!!!!Class 6
'''CONCEPTS:'''
* [[http://www.tigoe.net/pcomp/code/communication/serial-communication|serial communication]] week 1
** graphing a sensor

'''LAB:'''
* [[Labs/SerialOut | Lab]]: Serial Output

'''BLOG:''' 
->Observation. Pick a piece of interactive technology in public, used by multiple people. Write down your assumptions as to how it's used, and describe the context in which it's being used. Watch people use it, preferably without them knowing they're being observed.  Take notes on how they use it, what they do differently, what appear to be the difficulties, what appear to be the easiest parts. Record what takes the longest, what takes the least amount of time, and how long the whole transaction takes. Consider how the readings from Norman and Crawford reflect on what you see.

!!!Week 4
!!!!Class 7

'''CONCEPTS:'''
* [[http://www.tigoe.net/pcomp/code/communication/interpreting-serial-data-bytes| serial communication]] week 2
** multiple sensors
** Interpreting bytes: ASCII vs. binary
** handshaking/call-and-response
   
'''LABS:'''
** [[Labs/SerialDuplex | Lab]]: Multiple Serial Output

'''READING:'''
* Hoffman, ''[[http://itp.nyu.edu/physcomp/readings/Visual_intelligence.pdf|Visual Intelligence]]''

!!!Class 8
'''CONCEPTS:'''
* [[http://www.tigoe.net/pcomp/code/circuits/motors| high current loads and motors]]
** [[http://www.tigoe.net/pcomp/code/circuits/motors/controlling-dc-motors|controlling DC Motors]]
** [[http://www.tigoe.net/pcomp/code/circuits/motors/stepper-motors|stepper motors]]
* Dustyn's writing on:
** [[http://itp.nyu.edu/physcomp/readings/ch06_DRedit.pdf|Motors]]
** [[http://itp.nyu.edu/physcomp/readings/ch02_DRedit.pdf|Materials: what to choose and where to get]]
** [[http://itp.nyu.edu/physcomp/readings/ch09_DRedit.pdf|Making Things]]

'''LABS:'''
** [[Tutorials/HighCurrentLoads | Transistor Lab]]
** [[Labs/DCMotorControl | HBridge Lab]]


!!!Week 5
!!!!Class 9

'''PRESENT THIS WEEK:'''  media controller.

'''ASSIGNMENT:''' 
->Final project. Create a physically interactive system of your choice. Your focus in this assignment should be on careful and timely sensing of the relevant actions of the person or people that you're designing this for, and on clear, prompt, and effective response. Any interactive system is going to involve systems of listening, thinking, and speaking from both parties. Whether it involves one cycle or many, the exchange should be engaging.

->Document your work thoroughly online as you go. Include details of all phases of the project. Include a project summary as well, explaining what the system you built is, what it does, and what purpose it's intended to serve. Your summary should introduce the project.

->A few examples:

->Musical Instruments. Performing music involves a sustained engagement between the performer and the instrument. The feedback fro mthe instrument has to be immediate and clear in order for the performer to continue playing. The interface has to be flexible so that the musician can exercise her creativity in playing, but has to have some boundaries so that she knows what the instrument can do and what it can't do.

->Game interfaces. Like musical instruments, they involve constant back-and-forth interaction and immediate response. They are often simpler than musical instruments. In fact, the standard game controller has gotten so standard that the action of many games is artificially adapted to the needs of the controller, not the physical expressiveness of the player. Pick a specific game and see if you can change that.

->Assistive devices. Whether it's something as simple as a reaching device (think of pickle pickers) or something more complex, these devices are very demanding of clear, reliable response.

->Remote control systems. They require not only a clear interface, but must also return enough information on the remote system's action to let you know that you're doing the right thing. Whether it's a remote controller for your home electrical devices or a Mars rover controller, the need for clarity and good feedback are equally essential to the person who it's made for.

->There are many other good applications for this project. Discuss the specifics of yours with your instructor.


!!!!Class 10
'''CONCEPTS:'''
* complex data communications
** configuration vs. communication (command move vs. data mode)
** addressing
** Bluetooth serial as example
** protocols discussion
** [[Labs/Bluetooth | Optional Bluetooth Lab]]


'''BLOG:'''
* Final Project concept.  Explain the concept of your final project online.  Write it and/or illustrate it so that readers who are not in this class can get a clear and concise idea of what you plan to make for the final.


!!!Week 6
!!!!Class 11
* final project workshop.  Discuss any technical issues

'''BLOG:'''
* describe the technical system for your final project.

!!!!Class 12
* Final Project

'''BLOG:'''
* finish the documentation for your final project.
Deleted lines 20-37:
!!Grading
Participation & Attendance: 20%\\
Lab Assignments: 15%\\
Satellite Assignment(s): 5%\\
Midterm: 20%\\
Final: 20%\\
Journal: 20%

!!Books
The following books will be used as readings and references throughout the duration of the class. While none of the books below are mandatory purchases, some of the weekly readings will come from these books, and others come highly recommended as supplementary reading if you find yourself enjoying the subject matter. I will provide you with the weekly reading assignments in a physical or digital format.

* Massimo Banzi [[http://oreilly.com/catalog/9780596155513/|Getting Started with Arduino]]
* Forrest Mims [[http://www.amazon.com/Getting-Started-Electronics-Forrest-Mims/dp/0945053282|Getting Started in Electronics]] (a classic!)
* Dan O'Sullivan and Tom Igoe [[http://www.amazon.com/Physical-Computing-Sensing-Controlling-Computers/dp/159200346X/|Physical Computing]]
* Tom Igoe [[http://oreilly.com/catalog/9780596510510 | Making Things Talk]]
* Donald Norman [[http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0385267746|The Design of Everyday Things]]
* Dustyn Roberts [[http://www.makingthingsmove.com/about-the-book/ | Making Things Move]]

Changed lines 32-40 from:
* Banzi, Massimo. [[http://oreilly.com/catalog/9780596155513/|Getting Started with Arduino]]. O'Reilly, 2008.
*
Mims, Forrest. [[http://www.amazon.com/Getting-Started-Electronics-Forrest-Mims/dp/0945053282|Getting Started in Electronics]]. Master Publishing, 2003.
* Scherz, Paul.
[[http://books.google.com/books?id=NmD0SD1-1YwC|Practical Electronics for Inventors]]. McGraw-Hill, 2000.
* O'Sullivan, Dan and Igoe, Tom.
[[http://www.amazon.com/Physical-Computing-Sensing-Controlling-Computers/dp/159200346X/|Physical Computing]]. Thomson Course Technology, 2004.
* Igot, Tom
. [[http://oreilly.com/catalog/9780596510510 | Making Things Talk]] Make Books, 2007.
* Norman, Donald A
. [[http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0385267746|The Design of Everyday Things]]. Basic Books, 2002.
* Norman, Donald A. [[http://www.amazon.com/Emotional-Design-Love-Everyday-Things/dp/0465051367/|Emotional Design: Why We Love (or Hate) Everyday Things]]. Basic Books, 2005.
* Norretranders, Tor. [[http://www.amazon.com/User-Illusion-Cutting-Consciousness-Penguin/dp/0140230122|User Illusion: Cutting Consciousness Down to Size]]. Penguin, 1999.

to:
* Massimo Banzi [[http://oreilly.com/catalog/9780596155513/|Getting Started with Arduino]]
* Forrest Mims [[http://www.amazon.com/Getting-Started-Electronics-Forrest-Mims/dp/0945053282|Getting Started in Electronics]] (a classic!)
* Dan O'Sullivan and Tom Igoe
[[http://www.amazon.com/Physical-Computing-Sensing-Controlling-Computers/dp/159200346X/|Physical Computing]]
* Tom Igoe [[http://oreilly.com/catalog/9780596510510 | Making Things Talk]]
* Donald Norman [[http://www
.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0385267746|The Design of Everyday Things]]
* Dustyn Roberts [[http://www.makingthingsmove.com/about-the-book/ | Making Things Move]]
Changed lines 47-188 from:
!!! Week 1: Basic Electronics, Introduction to Microcontrollers
!!!! Class 1
* Class Topics
** Introductions
** Class Outline
** Physical Computing and Interaction Design
** Basic Electronics: Overview, Components, Breadboards, Multimeter, Schematics, Ohm's Law
** Analog vs. Digital

* Assignments
** Join the [[http://itp.nyu.edu/physcomp/Main/List|Physical Computing mailing list]]
** Create a blog or website to use as a journal for your class assignments, if you don't already have one, and e-mail me a link to the site. Some nice free options are [[http://www.tumblr.com|Tumblr]], [[http://www.blogger.com|Blogger]], and [[http://www.wordpress.com|WordPress]]. ITP also provides a free Wordpress blog. I'll find out whom you should speak with if you're interested in that option.
** [[https://itp.nyu.edu/signup/|Sign up]] for two days of [[http://itp.nyu.edu/physcomp/Policy/Cleanup|shop cleaning]]. This is MANDATORY.
** Speak with [[http://itp.nyu.edu/physcomp/People/People|John Duane]] about attending a [[http://itp.nyu.edu/physcomp/Policy/Policy|shop safety]] session. This is MANDATORY. We may do this at the top of class 2, if John's up for it.
** Lab: [[http://itp.nyu.edu/physcomp/Labs/Breadboard|Breadboard]]
** Lab: [[http://itp.nyu.edu/physcomp/Labs/Electronics|Electronics]]

* Readings
** [[http://www.newyorker.com/reporting/2008/02/11/080211fa_fact_orlean?currentPage=all|"Thinking In The Rain"]] by Susan Orlean

!!!! Class 2
* Class Topics
** Introduction to Microcontrollers, e.g. Arduino
** Programming: Basics, Variables, Structure, Controls, Arduino IDE (Integrated Development Environment)
** Discuss your [[http://itp.nyu.edu/physcomp/Intro/MidtermAssignment|midterm project]]

* Assignments
** Lab: [[http://itp.nyu.edu/physcomp/Labs/DigitalInOut|Digital Input and Output with an Arduino]]
** Create the device of your dreams
*** Requirements, Notes, and Inspiration
**** Must not be functional
**** Must be made of simple materials: cardboard, foam board, Manilla folders, construction paper, glue, tape, pen, markers, crayons, pencils, etc.
**** Think critically about its interface or usage
**** Have fun!

* Readings
** Crawford, [[http://library.books24x7.com/book/id_4587/toc.asp|The Art of Interactive Design]], Chapters 1 and 2 (note: You will need to sign into [[https://home.nyu.edu|NYUHome]] to view this. From your NYUHome home page, click "Research" then "books24x7.com" then search for "The Art of Interactive Design" by Chris Crawford. Alternately, try [[http://library.books24x7.com/bookmark.asp?bookid=4587|this link]]. )

----

!!! Week 2: Programming, Analog Input and Output

!!!! Class 3

* Class Topics
** Programming: Pseudo-Code, Commenting, Debugging, Using the [[http://arduino.cc/en/Reference/|Arduino reference]]
** Analog Input: Overview, Components, Arduino

* Assignments
** Lab: [[http://itp.nyu.edu/physcomp/Labs/AnalogIn|Analog Input]] with an Arduino

* Reading
** Norman, Design of Everyday Things, Chapter 1
** Norman, Emotional Design, Chapter 1, [[http://books.google.com/books?id=z2jvRlqhdlwC&dq=%22design+of+everyday+things%22+pdf&printsec=frontcover&source=bl&ots=iH3_ze7wKe&sig=nCDRYKwExqqwkSHWdXPF3KWdJSs&hl=en&ei=Hl8MSsntF8bktgeT6oiBCA&sa=X&oi=book_result&ct=result&resnum=3#PPA17,M1|"Attractive Things Work Better"]].

!!!! Class 4

* Class Topics
** Analog Output: Overview, Components, PWM (Pulse Width Modulation), Servos, Sound, Arduino
** Choose midterm partners and brainstorm

* Assignments
** Lab: [[http://itp.nyu.edu/physcomp/Labs/Servo|Analog Output with Arduino]]
**Begin your [[http://itp.nyu.edu/physcomp/Intro/MidtermAssignment|midterm project]]

* Reading
** Norretranders, The User Illusion, Chapter 6: The Bandwidth of Consciousness

----

!!! Week 3: Serial Communication

!!!! Class 5

* Class Topics
** Serial: Overview, Output, Interpreting, Arduino

*Assignments
** Lab: [[http://itp.nyu.edu/physcomp/Labs/SerialOut|Serial Output with Arduino]]

!!!! Class 6

* Class Topics
** Serial: Multiple sensors, ASCII vs. binary, handshake/call-and-response

* Assignments
** Lab: [[http://itp.nyu.edu/physcomp/Labs/SerialDuplex|Serial Duplex with Arduino]]

* Reading
** Myron Krueger, [[http://books.google.com/books?id=adtKCdwzwqIC&printsec=frontcover&source=gbs_summary_r&cad=0#PPA104,M1|"Responsive Environments"]], in Packer & Jordan, Multimedia: From Wagner to Virtual Reality, ch. 12, pp. 104-120.

----

!!! Week 4: Midterm, Movement

!!!! Class 7

* Class Topics
** Midterm Presentations
** Transistors and Relays

* Assignments
** Lab: [[http://itp.nyu.edu/physcomp/Tutorials/HighCurrentLoads|Using a TIP120 transistor]]

!!!! Class 8

* Class Topics
** Motors: Inductance, DC motors, stepper motors

** Discuss your final project ideas

* Assignments
** Lab: [[http://itp.nyu.edu/physcomp/Labs/DCMotorControl|Controlling a DC motor with Arduino]]

----

!!! Week 5: Project Development, Extra Topics

!!!! Class 9

* Class Topics
** Digi Xbee Zigbee Radios
** Batteries

!!!! Class 10

* Class Topics
** Wearables
** Renewable Energy: Solar and Kinetic
** Discuss your final project progress

----

!!! Week 6: Final Workshop and Presentations

!!!! Class 11

* Final Project Workshop

!!!! Class 12

* Final Presentations
to:
As we have fewer (but longer!) course meetings, we will deviate oh-so-slightly from the regular course list. I will update this for the first class.
Deleted line 49:
Deleted lines 54-55:
*** Reference(s)
**** Physical Computing, [[http://books.google.com/books?id=6JRcqhVUszEC&printsec=frontcover&source=gbs_summary_s&cad=0#PPR17,M1|Introduction]]
Deleted lines 55-61:
*** Reference(s)
**** [[http://www.tigoe.net/pcomp/code/circuits/breadboards |"Breadboards"]] from Tom Igoe
**** [[http://www.tigoe.net/pcomp/code/circuits/understanding-electricity |"Understanding Electricity"]] from Tom Igoe
**** Getting Started with Arduino, pp. 39-42, 93-94
**** Physical Computing, Chapters 1-3
**** Getting Started in Electronics, pp. 19, 20-22, 24-25, 28-35
**** [[http://library.thinkquest.org/10784/circuit_symbols.html|Schematic Symbols]]
Changed lines 57-58 from:
** [[http://itp.nyu.edu/physcomp/Labs/Soldering|Learn to Solder]]
to:
Changed line 60 from:
** Create a blog or website to use as a journal for your class assignments, if you don't already have one, and e-mail me a link to the site. Some nice free options are [[http://www.tumblr.com|Tumblr]], [[http://www.blogger.com|Blogger]], and [[http://www.wordpress.com|WordPress]]. ITP also provides a free Wordpress blog. If you're interested, please talk with Nancy Lewis.
to:
** Create a blog or website to use as a journal for your class assignments, if you don't already have one, and e-mail me a link to the site. Some nice free options are [[http://www.tumblr.com|Tumblr]], [[http://www.blogger.com|Blogger]], and [[http://www.wordpress.com|WordPress]]. ITP also provides a free Wordpress blog. I'll find out whom you should speak with if you're interested in that option.
Deleted lines 71-73:
*** Reference(s)
**** [[http://www.tigoe.net/pcomp/code/controllers/all-about-microcontrollers|"All About Microcontrollers"]] from Tom Igoe
**** [[http://arduino.cc/en/Tutorial/Foundations | Foundations]] of Arduino
Deleted lines 72-75:
*** Reference(s)
**** [[http://arduino.cc/en/Reference/HomePage | Arduino Language reference]]
**** [[http://www.tigoe.net/pcomp/code/code/variables | Variables]]
**** [[http://www.tigoe.net/pcomp/code/controllers/input-output/digital-input-output|"Digital Input and Output"]] from Tom Igoe
Changed lines 82-95 from:
**** Don't stress! This is supposed to be fun.
**** Thoughtless Acts Flickr Pool [[http://www.flickr.com/groups/thoughtlessacts/pool/]]
**** [[http://cre.ations.net/creation/face-mounted-lucid-dreaming-mask]]
**** Make a teleportation device, my childhood dream
**** Watch a sci-fi movie for ideas
**** Ask a friend what the device of his/her dreams is
**** Make a device for your pet, e.g. wearable, food dispenser
**** Sleep on it, see what comes to you in the morning after a good dream
**** A device that covers up a flaw of yours
**** "I want to create a device that records your dreams straight to video as you sleep"
**** Virtual Pet
**** Google "[[http://www.google.com/search?hl=en&site=&q=chindogu|Chindogu]]"
**** Consult with [[http://music.hyperreal.org/artists/brian_eno/oblique/oblique.html|Oblique Strategies]] ([[http://widgets.yahoo.com/widgets/oblique-strategies|Yahoo Widget]]) ([[http://davidseah.com/blog/creative-brain-joggers/|Blog Post]]) ([[http://curvedspace.org/software/oblique.html|Mac OS X App]])

to:
**** Have fun!
Deleted line 84:
** Getting Started with Arduino, pp. 19-51
Deleted lines 94-97:
*** Reference(s)
**** Physical Computing, Chapter 5
**** Getting Started with Arduino, pp. 87-92
**** [[http://arduino.cc/en/Reference/|Arduino.cc Reference]]
Changed lines 96-110 from:
*** Reference(s)
**** [[http://www.tigoe.net/pcomp/code/input-output/analog-input|"Analog Input"]] from Tom Igoe
**** Getting Started with Arduino, pp. 64-68
**** Physical Computing, pp. 102-112
**** [[http://itp.nyu.edu/physcomp/sensors/|ITP Sensor Workshop Wiki]]
** Electronics Shopping
*** [[http://www.sparkfun.com|SparkFun]]
*** [[http://www.goldmine-elec.com/|Electronic Goldmine]]
*** [[http://www.jameco.com|Jameco]]
*** [[http://www.newark.com|Newark]]
*** [[http://www.mouser.com|Mouser]]
*** [[http://www.digikey.com|Digikey]]
*** 269 Electronics Inc., 269 Canal Street, Manhattan ([[http://blog.makezine.com/archive/2008/03/269_electronics_canal_str.html|Make Blog]])
*** [[http://www.leedsradio.com/|Leeds Radio]], 68 North 7th Street, Brooklyn

to:
Deleted lines 107-110:
*** Reference(s)
**** [[http://www.tigoe.net/pcomp/code/input-output/analog-output|"Analog Output"]] from Tom Igoe
**** Getting Started with Arduino, pp. 56-62
**** Physical Computing, pp. 112-127
Changed lines 125-131 from:
*** Reference(s)
**** [[http://arduino.cc/en/Serial/Print|Serial Print]] with an Arduino
**** [[http://www.tigoe.net/pcomp/code/serial-communication|"Serial Communication"]] from Tom Igoe
**** [[http://tigoe.net/pcomp/serial-processing.shtml|"Serial To The Desktop"]] from Tom Igoe
**** [[http://arduino.cc/en/Reference/ASCIIchart|ASCII Chart]]
**** Getting Started with Arduino, pp. 68-69

to:
Changed lines 133-136 from:
*** Reference(s)
**** [[http://tigoe.net/pcomp/serial-processing.shtml|"Serial To The Desktop"]] from Tom Igoe
**** [[http://www.tigoe.net/pcomp/code/serial-communication/interpreting-serial-data-bytes|"Interpreting Serial Data"]] from Tom Igoe

to:
Changed lines 149-153 from:
*** Reference(s)
**** [[http://www.tigoe.net/pcomp/code/input-output/controlling-high-current-circuits|"Controlling High Current Circuits"]] from Tom Igoe
**** Getting Started in Electronics, pp. 26, 48-51
**** Getting Started with Arduino, pp. 70-71

to:
Changed lines 157-162 from:
*** Reference(s)
**** [[http://www.tigoe.net/pcomp/code/motors/controlling-dc-motors|"Controlling DC Motors"]] from Tom Igoe
**** [[http://www.tigoe.net/pcomp/code/motors|"Motors"]] from Tom Igoe
**** Physical Computing, Chapter 10
**** [[http://www.tigoe.net/pcomp/code/category/code/arduinowiring/51|"Stepper Motor Control"]] from Tom Igoe

to:
Deleted lines 170-175:
*** Reference(s)
**** [[http://oreilly.com/catalog/9780596510510/|"Making Things Talk"]] by Tom Igoe
**** [[http://itp.nyu.edu/physcomp/Notes/XBeePANIDs|ITP PAN ID Reservatons]]
**** [[http://www.faludi.com/itp_coursework/meshnetworking/XBee/index.html|Xbee Notes]] by Rob Faludi
**** [[http://www.faludi.com/projects/common-xbee-mistakes/|Common Xbee Mistakes]]

Changed lines 172-175 from:
*** Reference(s)
**** [[http://itp.nyu.edu/physcomp/Notes/Batteries|Rory's Battery Notes]]
**** [[http://www.faludi.com/projects/arduino-and-xbee-battery-test-results/|Rob Faludi's Arduino and Xbee Battery Tests]]

to:
Deleted lines 176-178:
*** Reference(s)
**** [[http://itp.nyu.edu/wearables/|ITP Wearables Wiki]]
**** [[http://www.fashioncenter.com/|The Fashion Center]]
Deleted lines 177-180:
*** Reference(s)
**** [[http://itp.nyu.edu/physcomp/Notes/SolarCells]]
**** [[http://costaricabeam.solarbotics.net/Circuits_Main.htm|BEAM Circuits]]
**** [[http://www.solarbotics.com/|Solarbotics]]
Changed lines 8-9 from:
Physical Computing Resident:
to:
Physical Computing Resident: Anybody in the Resident's office! It's a free-for all! (As long as you ask politely)
Added line 36:
* Igot, Tom. [[http://oreilly.com/catalog/9780596510510 | Making Things Talk]] Make Books, 2007.
Changed lines 43-44 from:
See [[http://itp.nyu.edu/physcomp/Intro/Supplies]]
to:
See [[http://itp.nyu.edu/physcomp/Intro/Supplies]] for a description of what you're getting. [[http://www.adafruit.com/products/170 | Kits]] (supplied by [[http://www.adafruit.com/ | adafruit]]) are for sale at the NYU computer store for ~$90. It will include pretty much everything you'll need to do the basic classwork.

Some additional supplies are available in the shop, and feel free to use what is in there. However, dont go overboard (using an LED or 2 is fine, using 10 for your Glow-o-tron is not).

Changed lines 60-61 from:
**** [[http://www.tigoe.net/pcomp/code/understanding-electricity/breadboards|"Breadboards"]] from Tom Igoe
**** [[http://www.tigoe.net/pcomp/code/understanding-electricity|"Understanding Electricity"]] from Tom Igoe
to:
**** [[http://www.tigoe.net/pcomp/code/circuits/breadboards |"Breadboards"]] from Tom Igoe
**** [[http://www.tigoe.net/pcomp/code/circuits/understanding-electricity |"Understanding Electricity"]] from Tom Igoe
Changed line 73 from:
** Speak with [[http://itp.nyu.edu/physcomp/People/People|John Duane]] about attending a [[http://itp.nyu.edu/physcomp/Policy/Policy|shop safety]] session. This is MANDATORY.
to:
** Speak with [[http://itp.nyu.edu/physcomp/People/People|John Duane]] about attending a [[http://itp.nyu.edu/physcomp/Policy/Policy|shop safety]] session. This is MANDATORY. We may do this at the top of class 2, if John's up for it.
Changed lines 84-85 from:
**** [[http://www.tigoe.net/pcomp/code/all-about-microcontrollers|"All About Microcontrollers"]] from Tom Igoe
to:
**** [[http://www.tigoe.net/pcomp/code/controllers/all-about-microcontrollers|"All About Microcontrollers"]] from Tom Igoe
**** [[http://arduino.cc/en/Tutorial/Foundations | Foundations]] of Arduino
Changed lines 88-90 from:
**** Getting Started with Arduino, pp. 97-104
**** Physical Computing, pp. 87-101
**** [[http://www.tigoe.net/pcomp/code/input-output/digital-input-output|"Digital Input and Output"]] from Tom Igoe
to:
**** [[http://arduino.cc/en/Reference/HomePage | Arduino Language reference]]
**** [[http://www.tigoe.net/pcomp/code/code/variables | Variables]]
**** [[http://www.tigoe.net/pcomp/code/controllers/input-output/digital-input-output|"Digital Input and Output"]] from Tom Igoe
Added lines 1-273:
(:title Introduction to Physical Computing - Summer 2011 :)

7 July - 11 August 2011\\
Instructor: Scott Fitzgerald (scott.fitzgerald at nyu.edu)\\
Class Hours: Tuesday & Thursday, 6:30p - 9:25p\\
Office Hours: Wed, 6:30 - 7:30p\\

Physical Computing Resident:

!! 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 to use sensors to detect changes in energy given off by our bodies (in the form of sound, light, motion, and other forms) and feed these values into a very simple computer called a microcontrollers that will also control output of the circuit. The microcontroller used in this class is called Arduino, is much more accessible than previous microcontrollers and is intended specifically for artists and hobbyist. The core technical concepts of the class include digital, analog and serial input and output. You'll also 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. Students have weekly lab exercises to build skills with the microcontroller and related tools, and longer assignments in which they apply the principles from weekly labs in creative applications. Both individual work and group work is required.

!! Student Blogs


!!Grading
Participation & Attendance: 20%\\
Lab Assignments: 15%\\
Satellite Assignment(s): 5%\\
Midterm: 20%\\
Final: 20%\\
Journal: 20%

!!Books
The following books will be used as readings and references throughout the duration of the class. While none of the books below are mandatory purchases, some of the weekly readings will come from these books, and others come highly recommended as supplementary reading if you find yourself enjoying the subject matter. I will provide you with the weekly reading assignments in a physical or digital format.

* Banzi, Massimo. [[http://oreilly.com/catalog/9780596155513/|Getting Started with Arduino]]. O'Reilly, 2008.
* Mims, Forrest. [[http://www.amazon.com/Getting-Started-Electronics-Forrest-Mims/dp/0945053282|Getting Started in Electronics]]. Master Publishing, 2003.
* Scherz, Paul. [[http://books.google.com/books?id=NmD0SD1-1YwC|Practical Electronics for Inventors]]. McGraw-Hill, 2000.
* O'Sullivan, Dan and Igoe, Tom. [[http://www.amazon.com/Physical-Computing-Sensing-Controlling-Computers/dp/159200346X/|Physical Computing]]. Thomson Course Technology, 2004.
* Norman, Donald A. [[http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0385267746|The Design of Everyday Things]]. Basic Books, 2002.
* Norman, Donald A. [[http://www.amazon.com/Emotional-Design-Love-Everyday-Things/dp/0465051367/|Emotional Design: Why We Love (or Hate) Everyday Things]]. Basic Books, 2005.
* Norretranders, Tor. [[http://www.amazon.com/User-Illusion-Cutting-Consciousness-Penguin/dp/0140230122|User Illusion: Cutting Consciousness Down to Size]]. Penguin, 1999.

!! Supplies

See [[http://itp.nyu.edu/physcomp/Intro/Supplies]]

!!Schedule

!!! Week 1: Basic Electronics, Introduction to Microcontrollers

!!!! Class 1
* Class Topics
** Introductions
** Class Outline
** Physical Computing and Interaction Design
*** Reference(s)
**** Physical Computing, [[http://books.google.com/books?id=6JRcqhVUszEC&printsec=frontcover&source=gbs_summary_s&cad=0#PPR17,M1|Introduction]]
** Basic Electronics: Overview, Components, Breadboards, Multimeter, Schematics, Ohm's Law
*** Reference(s)
**** [[http://www.tigoe.net/pcomp/code/understanding-electricity/breadboards|"Breadboards"]] from Tom Igoe
**** [[http://www.tigoe.net/pcomp/code/understanding-electricity|"Understanding Electricity"]] from Tom Igoe
**** Getting Started with Arduino, pp. 39-42, 93-94
**** Physical Computing, Chapters 1-3
**** Getting Started in Electronics, pp. 19, 20-22, 24-25, 28-35
**** [[http://library.thinkquest.org/10784/circuit_symbols.html|Schematic Symbols]]
** Analog vs. Digital
** [[http://itp.nyu.edu/physcomp/Labs/Soldering|Learn to Solder]]

* Assignments
** Join the [[http://itp.nyu.edu/physcomp/Main/List|Physical Computing mailing list]]
** Create a blog or website to use as a journal for your class assignments, if you don't already have one, and e-mail me a link to the site. Some nice free options are [[http://www.tumblr.com|Tumblr]], [[http://www.blogger.com|Blogger]], and [[http://www.wordpress.com|WordPress]]. ITP also provides a free Wordpress blog. If you're interested, please talk with Nancy Lewis.
** [[https://itp.nyu.edu/signup/|Sign up]] for two days of [[http://itp.nyu.edu/physcomp/Policy/Cleanup|shop cleaning]]. This is MANDATORY.
** Speak with [[http://itp.nyu.edu/physcomp/People/People|John Duane]] about attending a [[http://itp.nyu.edu/physcomp/Policy/Policy|shop safety]] session. This is MANDATORY.
** Lab: [[http://itp.nyu.edu/physcomp/Labs/Breadboard|Breadboard]]
** Lab: [[http://itp.nyu.edu/physcomp/Labs/Electronics|Electronics]]

* Readings
** [[http://www.newyorker.com/reporting/2008/02/11/080211fa_fact_orlean?currentPage=all|"Thinking In The Rain"]] by Susan Orlean

!!!! Class 2
* Class Topics
** Introduction to Microcontrollers, e.g. Arduino
*** Reference(s)
**** [[http://www.tigoe.net/pcomp/code/all-about-microcontrollers|"All About Microcontrollers"]] from Tom Igoe
** Programming: Basics, Variables, Structure, Controls, Arduino IDE (Integrated Development Environment)
*** Reference(s)
**** Getting Started with Arduino, pp. 97-104
**** Physical Computing, pp. 87-101
**** [[http://www.tigoe.net/pcomp/code/input-output/digital-input-output|"Digital Input and Output"]] from Tom Igoe
** Discuss your [[http://itp.nyu.edu/physcomp/Intro/MidtermAssignment|midterm project]]

* Assignments
** Lab: [[http://itp.nyu.edu/physcomp/Labs/DigitalInOut|Digital Input and Output with an Arduino]]
** Create the device of your dreams
*** Requirements, Notes, and Inspiration
**** Must not be functional
**** Must be made of simple materials: cardboard, foam board, Manilla folders, construction paper, glue, tape, pen, markers, crayons, pencils, etc.
**** Think critically about its interface or usage
**** Don't stress! This is supposed to be fun.
**** Thoughtless Acts Flickr Pool [[http://www.flickr.com/groups/thoughtlessacts/pool/]]
**** [[http://cre.ations.net/creation/face-mounted-lucid-dreaming-mask]]
**** Make a teleportation device, my childhood dream
**** Watch a sci-fi movie for ideas
**** Ask a friend what the device of his/her dreams is
**** Make a device for your pet, e.g. wearable, food dispenser
**** Sleep on it, see what comes to you in the morning after a good dream
**** A device that covers up a flaw of yours
**** "I want to create a device that records your dreams straight to video as you sleep"
**** Virtual Pet
**** Google "[[http://www.google.com/search?hl=en&site=&q=chindogu|Chindogu]]"
**** Consult with [[http://music.hyperreal.org/artists/brian_eno/oblique/oblique.html|Oblique Strategies]] ([[http://widgets.yahoo.com/widgets/oblique-strategies|Yahoo Widget]]) ([[http://davidseah.com/blog/creative-brain-joggers/|Blog Post]]) ([[http://curvedspace.org/software/oblique.html|Mac OS X App]])

* Readings
** Getting Started with Arduino, pp. 19-51
** Crawford, [[http://library.books24x7.com/book/id_4587/toc.asp|The Art of Interactive Design]], Chapters 1 and 2 (note: You will need to sign into [[https://home.nyu.edu|NYUHome]] to view this. From your NYUHome home page, click "Research" then "books24x7.com" then search for "The Art of Interactive Design" by Chris Crawford. Alternately, try [[http://library.books24x7.com/bookmark.asp?bookid=4587|this link]]. )

----

!!! Week 2: Programming, Analog Input and Output

!!!! Class 3

* Class Topics
** Programming: Pseudo-Code, Commenting, Debugging, Using the [[http://arduino.cc/en/Reference/|Arduino reference]]
*** Reference(s)
**** Physical Computing, Chapter 5
**** Getting Started with Arduino, pp. 87-92
**** [[http://arduino.cc/en/Reference/|Arduino.cc Reference]]
** Analog Input: Overview, Components, Arduino
*** Reference(s)
**** [[http://www.tigoe.net/pcomp/code/input-output/analog-input|"Analog Input"]] from Tom Igoe
**** Getting Started with Arduino, pp. 64-68
**** Physical Computing, pp. 102-112
**** [[http://itp.nyu.edu/physcomp/sensors/|ITP Sensor Workshop Wiki]]
** Electronics Shopping
*** [[http://www.sparkfun.com|SparkFun]]
*** [[http://www.goldmine-elec.com/|Electronic Goldmine]]
*** [[http://www.jameco.com|Jameco]]
*** [[http://www.newark.com|Newark]]
*** [[http://www.mouser.com|Mouser]]
*** [[http://www.digikey.com|Digikey]]
*** 269 Electronics Inc., 269 Canal Street, Manhattan ([[http://blog.makezine.com/archive/2008/03/269_electronics_canal_str.html|Make Blog]])
*** [[http://www.leedsradio.com/|Leeds Radio]], 68 North 7th Street, Brooklyn

* Assignments
** Lab: [[http://itp.nyu.edu/physcomp/Labs/AnalogIn|Analog Input]] with an Arduino

* Reading
** Norman, Design of Everyday Things, Chapter 1
** Norman, Emotional Design, Chapter 1, [[http://books.google.com/books?id=z2jvRlqhdlwC&dq=%22design+of+everyday+things%22+pdf&printsec=frontcover&source=bl&ots=iH3_ze7wKe&sig=nCDRYKwExqqwkSHWdXPF3KWdJSs&hl=en&ei=Hl8MSsntF8bktgeT6oiBCA&sa=X&oi=book_result&ct=result&resnum=3#PPA17,M1|"Attractive Things Work Better"]].

!!!! Class 4

* Class Topics
** Analog Output: Overview, Components, PWM (Pulse Width Modulation), Servos, Sound, Arduino
*** Reference(s)
**** [[http://www.tigoe.net/pcomp/code/input-output/analog-output|"Analog Output"]] from Tom Igoe
**** Getting Started with Arduino, pp. 56-62
**** Physical Computing, pp. 112-127
** Choose midterm partners and brainstorm

* Assignments
** Lab: [[http://itp.nyu.edu/physcomp/Labs/Servo|Analog Output with Arduino]]
**Begin your [[http://itp.nyu.edu/physcomp/Intro/MidtermAssignment|midterm project]]

* Reading
** Norretranders, The User Illusion, Chapter 6: The Bandwidth of Consciousness

----

!!! Week 3: Serial Communication

!!!! Class 5

* Class Topics
** Serial: Overview, Output, Interpreting, Arduino
*** Reference(s)
**** [[http://arduino.cc/en/Serial/Print|Serial Print]] with an Arduino
**** [[http://www.tigoe.net/pcomp/code/serial-communication|"Serial Communication"]] from Tom Igoe
**** [[http://tigoe.net/pcomp/serial-processing.shtml|"Serial To The Desktop"]] from Tom Igoe
**** [[http://arduino.cc/en/Reference/ASCIIchart|ASCII Chart]]
**** Getting Started with Arduino, pp. 68-69

*Assignments
** Lab: [[http://itp.nyu.edu/physcomp/Labs/SerialOut|Serial Output with Arduino]]

!!!! Class 6

* Class Topics
** Serial: Multiple sensors, ASCII vs. binary, handshake/call-and-response
*** Reference(s)
**** [[http://tigoe.net/pcomp/serial-processing.shtml|"Serial To The Desktop"]] from Tom Igoe
**** [[http://www.tigoe.net/pcomp/code/serial-communication/interpreting-serial-data-bytes|"Interpreting Serial Data"]] from Tom Igoe

* Assignments
** Lab: [[http://itp.nyu.edu/physcomp/Labs/SerialDuplex|Serial Duplex with Arduino]]

* Reading
** Myron Krueger, [[http://books.google.com/books?id=adtKCdwzwqIC&printsec=frontcover&source=gbs_summary_r&cad=0#PPA104,M1|"Responsive Environments"]], in Packer & Jordan, Multimedia: From Wagner to Virtual Reality, ch. 12, pp. 104-120.

----

!!! Week 4: Midterm, Movement

!!!! Class 7

* Class Topics
** Midterm Presentations
** Transistors and Relays
*** Reference(s)
**** [[http://www.tigoe.net/pcomp/code/input-output/controlling-high-current-circuits|"Controlling High Current Circuits"]] from Tom Igoe
**** Getting Started in Electronics, pp. 26, 48-51
**** Getting Started with Arduino, pp. 70-71

* Assignments
** Lab: [[http://itp.nyu.edu/physcomp/Tutorials/HighCurrentLoads|Using a TIP120 transistor]]

!!!! Class 8

* Class Topics
** Motors: Inductance, DC motors, stepper motors
*** Reference(s)
**** [[http://www.tigoe.net/pcomp/code/motors/controlling-dc-motors|"Controlling DC Motors"]] from Tom Igoe
**** [[http://www.tigoe.net/pcomp/code/motors|"Motors"]] from Tom Igoe
**** Physical Computing, Chapter 10
**** [[http://www.tigoe.net/pcomp/code/category/code/arduinowiring/51|"Stepper Motor Control"]] from Tom Igoe

** Discuss your final project ideas

* Assignments
** Lab: [[http://itp.nyu.edu/physcomp/Labs/DCMotorControl|Controlling a DC motor with Arduino]]

----

!!! Week 5: Project Development, Extra Topics

!!!! Class 9

* Class Topics
** Digi Xbee Zigbee Radios
*** Reference(s)
**** [[http://oreilly.com/catalog/9780596510510/|"Making Things Talk"]] by Tom Igoe
**** [[http://itp.nyu.edu/physcomp/Notes/XBeePANIDs|ITP PAN ID Reservatons]]
**** [[http://www.faludi.com/itp_coursework/meshnetworking/XBee/index.html|Xbee Notes]] by Rob Faludi
**** [[http://www.faludi.com/projects/common-xbee-mistakes/|Common Xbee Mistakes]]

** Batteries
*** Reference(s)
**** [[http://itp.nyu.edu/physcomp/Notes/Batteries|Rory's Battery Notes]]
**** [[http://www.faludi.com/projects/arduino-and-xbee-battery-test-results/|Rob Faludi's Arduino and Xbee Battery Tests]]

!!!! Class 10

* Class Topics
** Wearables
*** Reference(s)
**** [[http://itp.nyu.edu/wearables/|ITP Wearables Wiki]]
**** [[http://www.fashioncenter.com/|The Fashion Center]]
** Renewable Energy: Solar and Kinetic
*** Reference(s)
**** [[http://itp.nyu.edu/physcomp/Notes/SolarCells]]
**** [[http://costaricabeam.solarbotics.net/Circuits_Main.htm|BEAM Circuits]]
**** [[http://www.solarbotics.com/|Solarbotics]]
** Discuss your final project progress

----

!!! Week 6: Final Workshop and Presentations

!!!! Class 11

* Final Project Workshop

!!!! Class 12

* Final Presentations
  Edit | View | History | Print | Recent Changes | Search Page last modified on July 27, 2011, at 12:22 AM