temp

Readings: required and optional

The links below should get you started. Links to online readings open in a new window or tab, so you can get back to this list easily by closing the new window or tab. You will find additional links, for offsite readings, organized by subject area in the "Bookmarks" area of the course website.

Readings shown in parentheses are recommended, but optional. [Accordion] [Tabs]

Wk 1

Week 1: Boot camp - Basic Electronics, Simple Coding

Safety

Class Notes • "Short Circuits"

Theory

Architectronics • Good intro and some architectural examples.
Responsive Environment • Good intro and some examples, more social than architectural.
All About Circuits • "OHM's Law"

Praxis

arduino programming notebook • Read through about page 18 now, and the rest next week.
Sparkfun Inventors Guide • everything through the end of Circuit #1 (on page 26)
A Beginners Guide to Physical Computing • a source for basic ideas and suggestions.

Back to top

Wk 2

Week 2:

Processing: Animation and Vision on the desktop/laptop

Our Processing Introduction • (borrowed from another course)

A basic background for circuit diagrams • Download and edit, or print and scan ...

Back to top

Wk 3

Week 3: Vision and Meaning

Theory

Working with vision (cameras) can be difficult on several fronts-- the volume of data encountered at 30 or 60 frames per second, recognizing what has changed between frames (not "everything"), and understanding what it might mean (intruder? fire? cloud?).

The Processing Video Library We want to pay attention to the CAPTURE methods, not the Movie methods.
A nice video intro to Processing Video operations.

Praxis

FrameDifferencing One of the sample sketches from the Processing installation (handed out last week). Look at it and see if you can think of some ways to extend it to do more than recognize "change" -- like the amount of change, the direction of movement, or the location of movement.
The Bouncing Ball seed sketch, through which we looked at Processing animation and drawing.

Back to top

Wk 4

Week 4: Analog to Digital, Digital to Analog, and Floating Inputs

Praxis

"DIY Instrumentation" - The A0 data viewer • My "poor man's oscilloscope" for viewing analog input data. Helps explain "floating" input irregularities, AND how to use Processing with Arduino.

Theory

Analog Input Pins • Intro to analog input.
Analog to Digital Conversion • Turning real-world voltages into binary (digital) information.
Digital to Analog Conversion • Making "continuously variable" using binary events (i.e. faking it).
What a "Floating input" voltage looks like (aka, why we need pull-up resistors).
Pull-up Resistors • How to make a switch behave in a reliable way.

Back to top

Wk 5

Week 5: Interrupts and bitwise operation

Praxis

SIK 3.2 #11 - Piezo Buzzer • Build project #11 (SIK PDF pp 63-66) and study the code.

Theory

Bitwise Operations • An attempt to contextualize and explain a murky subject.
Blog::How To: Arduino Interrupts • A pretty digestible discussion.
Sketch::Interrupts_both • A demo/sample implementing both kinds of Arduino interrupt. Study it. (It blinks one LED on pin 10 at regular intervals, and lets a switch (on pin 2) control the other one (pin 13), turning it ON and OFF).

Back to top

Wk 6

Week 6: On Line: Hooking up with big brother

Theory

The Coming Age of Calm Technology (1996) • The paper that labeled the subject.
Tangible Bits (1997) • Oft-cited catalog of MIT media-lab projects that use peripheral awareness or tangible interaction.

The Arduino is a complete computer system, with memory, central processing units, and peripherals (shields, certain sensors, etc.). However, we develop applications by compiling them on a traditional laptop or desktop and then transferring the executable application to the board, so we know we can use the USB cable as a communications channel. We've already looked at one way to use the Arduino as a smart instrument cluster while doing the "real" computing on the lap-/desk-top in Processing. It is also possible to communicate through Processing to the wider universe of the Internet. Other "hookups" using Rhino's Grasshopper plugin (using Firefly) are also possible, as are Arduino-only possibilities.

Guide to Arduino and AVR Communications • A thorough and concise overview of 'communications' without too much detail.
Processing.org • All things "Processing" (it'll look a lot like Aruduino--it is).
Arduino Library for Processing (and Firmata) • Making the Arduino a slave to Processing
Grasshopper • All things "Grasshopper" (way TMI if you've never met)
The Firefly website • downloads, demos, etc.

Praxis

The Arduino IDE includes (File > Examples > Firmata > StandardFirmata) a sketch which turns the Arduino into a slave device for software on your laptop. If you upload it to the Arduino you can use Processing (link above) to write "sketches" (same name) on your laptop that use the Arduino as a slave device. Try a simple "blink" sketch.

Client-Server Programming • A couple of examples of client-server coding that you can use, copy, or modify.

Back to top

Wk 7

Week 7: in Motion: Magnetism, Relays, Motors, Solenoids, Servos, & Steppers (oh my!)

Theory

Inductance Make sure you understand the physics principle that currents create magnetism and magnetism creates currents. Om?
Electric Motors Way too much information, probably, but repeated visits may help understand a bit more. We're concerned with DC motors and stepper-motors.
Stepper Motors They can be quite complicated. We're looking at "unipolar" steppers and will generally use a controller board and a library to simplify things, but some background might be helpful.
Adafruit Motor Selection Guide Simple explanations of different kinds of motors available and important issues in their selection.

Starting Points

SIK Guide (v3) Circuits 8, 12, 13 • At the very least, read through these, including the sample code, but even better would be to build them.
Adafruit Motor Selection Guide Simple explanations of different kinds of motors available and important issues in their selection.

Back to top

Wk 8

Week 8: Mechanism

Theory

Notes:Linkages A high-level review of some basics, plus some deep question 'teasers'.
Mechanical Advantage Refresher! One of the primary uses of gears is to change how fast something spins, and in the process change how much torque it delivers.
Introduction to Mechanisms Good general info is hard to find. One reason attraction of the laser-cutter is making your own gears, but gear design turns out to be fairly complex. I'm still working on simplified tools to help. In the mean time you can take a look at the full-depth-complexity if you want.

Praxis

Nothing particularly assigned here except opportunity. If you have a set of lego mindstorm gears at home, you might cobble something together with them to see if you can operate a mechanical device via Arduino. If you're drawn to laser-cutting and have AutoCAD or Rhino skills, you might construct a set of gears, cut them, and see how they work. Completely at a loss? how about a steerable web-cam mount for a GoPro or iSight camera? Two steppers or servos, some mechanism, and some logic and you should be good to go.

Back to top

Wk 9

Week 9: The Big Picture

Theory

Sensing produces data, and data can be used in many, many different ways. The readings here will expose you to some more ideas about what we can do with that data.

"Responsive Environments ..." • A (VR-centric) definition of Responsive Environments.
Zaragoza's Digital Mile • An interesting collection of RE proposals.
Architecture as Science • Smart Walls, eInk, etc (odd title).

Starting Points

Journal of Ambient Intelligence and Smart Environments • Some free papers. Read one.
Ulster's Smart Environments Research Group • One (largely CSE) research group.
MIT Media Lab's Responsive Environments Group • Another academic take.

Back to top

Wk 10

Week 10: The End is Near!

No more reading! You should be almost done with your final project by now, so we'll leave time for you to work on that.

Back to top