Notes from "Physical Computing" Tom Igoe At O'Reilly Emerging Tech Conference 2003 Cory Doctorow doctorow@craphound.com -- Interaction: a cyclic process in which two actors alternately listen, think and speak. Physical computing focuses on listening, listening to the human body. When you ask people to draw a computer, they draw the screen, mouse, keyboard -- the CPU is out of sight, out of mind. If a computer saw us, it would see us as a Tralfamadorian from Vonnegut -- small hand-shaped being with an eye (and an ear). It doesn't know anything about our physical expressions -- lost on the computer. Design interaction to capture expression. Don't want people to build robots: want low-autonomy devices that focus on listening to you via sensors. -- Transduction: conversion of one form of energy to another * Input: convert mechanical/heat/acoustic energy to electricial energy * Output: convert electrical energy to /mechanical/heat/acoustic energy -- Forrest Mims III: patron saint of Physical Computing, author of "Engineer's Mini Notebooks" -- primers for doing this stuff. Nonthreatening appearances -- happy electrons. -- Microcontrollers: just a computer. Basic Stamp 2 -- the right place to start. Simple, put it into a breadboard, connect it with a serial cable, free programming environment, 5 minutes to blink an LED> Once you've blunked an LED, it's all downhill from there. Con: slow -- code is not compiled on it. BX-24: Faster (runs compiled code), more robust programming environment (like VisBas), built-in timers, ADC. Useful tool for beginners and programmers who've never had any microcontroller experience. PIC: Many models to choose from, very cheap ($1 - $10), fast. Expensive to set up -- need to buy software environment (assembly compiler is free). Requires a separate programming device. You can build 42-PIC projects -- these are real cheap. Javelin: Java microcontroller. Very expensive ($80). -- Sensors: Conscious actions: Action intended to send a message to a computer, obvious physical affordance, i.e. buttons Unconscious actions: Action has other purposes, sending message to computers is secondary, nonobvious affordances, ie., door-entry sensors Faucet sensors in airports suck -- they don't stay on for enough time. Need more room for error in the sensing. -- Discrete v. analog sensing: Digital: two states, usually conscious sensors Analog: spectrum of states, better for unconscious sensors -- build a door-opening doormat with two piece of metal and a rubber bit -- Our eyes and skin are forgiving -- we don't notice small changes. Microcontrollers will sense lots of flux in environmental conditions. The real world is messy (and a great source of random numbers!) Touch sensor: Quantum QT113H. $3 -- cheaper than building it yourself, also force-sensitive resistors, flex sensors, conductive rubber. -- Motion sensors: Simple: Did something cross my path or not? The opposite of touch-sensor Complex: Object-tracking. CMU released CMUCam recently -- cam with microcontroller and serial port -- outputs x,y of brightest thing on the screen ($100). You can also object-track with software on a PC: Macromedia TrackThemColors, Cyclops and Jutter, BigEye -- Acoustic sensors: * Simple: sound level via mic, via PC or microcontroller, rough triangulation possible with multiple piezos/microcontroller. * Complex: Frequency analysis via fast Fourier transforms for things like speech-recognition, not easy on a microcontroller, better on a PC -- Device-to-device comms: Most forms are serial (asynch or synch) Most transports are serial (USB, RS-232, etc) -- You can build "Carnivore-on-a-board" -- Ethernet controller and a PIC. Siteplayer: $30 webserver on a board. I have a fan attached to an Ethernet-on-a-board box on my desk. Every time a student connects to my site to download notes, I get a puff of air. -- Wireless RF: Omnidirectional, can be long-distance, good for many-to-many, high power needs IR: Directional, short distances, good for one to one, low power needs -- [[Shows the JelloPhone -- a midi-controller based on swirling your fingers around in cups of jello]] [[shows a flight-sim for birds -- flap your wings to fly, lean forward and back, etc, written 14 weeks after the first time they touched code]] http://itp.nyu.edu/tigoe/pcomp -- Q&A