Making Furniture Interactive

October 11, 2007

Tutorial for today’s class — high current loads

Filed under: Course Materials,Examples,Resources — jet @ 7:22 pm

In the midst of photographing my boards and writing up docs I was thinking, “this all seems familiar for some reason…”.

Here’s the ITP tutorial on High Current Loads.  It covers pretty much everything we did today and then some.  There are many excellent tutorials on ITP’s site, it’s a good first-go-to site for how to do various things with the Arduino.


October 4, 2007

Chinese clockwork automaton from 1920 performs magic trick

Filed under: Examples,Matt Thompson — Mattt @ 10:31 pm

It’s like a whole new world of a forgotten art has finall been revealed to me with this wole automaton thing–I’m now seeing them everywhere.

Via Boing Boing:

This five-foot tall, 1920 Chinese automaton performs a lovely little clockwork magic trick: making other clockwork dolls disappear and appear. It’s being sold at auction on Oct 28 at Skinner in Bolton, MA — judging from the video, this looks like the kind of thing I’d love to bid on but could never afford


October 2, 2007

Some links from and related to today’s class

Filed under: Course Materials,Examples — jet @ 2:52 pm

Kinematic Models for Design Digital Library – huge collection of mechanisms with animated examples.

Kugelbahn’s paper automata directory.

A guide to pop-up books.

Another Gallery of Paper Automata.

Tippoo’s Tiger and more

Filed under: Examples,Jenn Gooch — jenngooch @ 10:12 am

There’s an article and long video on the V&A site (where it’s actually housed, not the British Science Museum as I falsely stated).

“The Writer” is another great 18th century automata. Here’s a video, in French, and another how-it-works video, also in French, but pretty self-explanatory.

September 28, 2007

Example of subroutines in Arduino

Filed under: Course Materials,Examples — jet @ 3:42 pm

A simple example of an Arduino sketch that uses subroutines.

/* subroutine_demo.

The basics of subroutines in Arduino, this is no substitute for the
real documentation.

int minReadPin = 1;                // the first pin we're reading
int maxReadPin = 8;                // the highest pin we're reading

int minLedPin = 9;
int maxLedPin = 11;
int redLedPin = 9;
int blueLedPin = 10;
int greenLedPin = 11;

void setup() {                    // run once, when the sketch starts
pinMode(redLedPin, OUTPUT);      // sets the digital pin as output

// a subroutine with no arguments
// turn all the LEDs off
void LedAllOff() {
digitalWrite(redLedPin, LOW);
digitalWrite(blueLedPin, LOW);
digitalWrite(greenLedPin, LOW);


// a subroutine with two arguments
void LedOn(int pin, int duration) {
digitalWrite(pin, HIGH);   // sets the LED on
delay(duration);                  // waits for a second
digitalWrite(pin, LOW);    // sets the LED off

// a subroutine that returns a value using a loop
bool AreAnyPinsTrue()  {

// start with minReadPin and go to maxReadPin, checking each pin
for (int i = minReadPin; i <= maxReadPin; i++) {
// make sure we're in read mode.
pinMode(i, INPUT);
int i = digitalRead(i);
if (i > 0) {
return true;

/* or we can be the cool c hacker:
if(digitalRead(i)) {
return true;
// if we didn't find any pins on, then return false by default
return false;

void loop()                     // run over and over again
if (AreAnyPinsTrue() == true) {
LedOn(redLedPin, 1000);

September 25, 2007

Example of how to post code

Filed under: Course Materials,Examples — jet @ 8:54 am

To post source code, you need to put a wrapper around it using “sourcecode”. Use the “Code” tab of the editor to insert the “sourcecode” tags, not the “Visual” tab. The “Visual” tab does all sorts of magic that will cause the “sourcecode” tag to not be recognized.

[sourcecode language="cpp"]

[put your source here]


* AnalogInput
* by DojoDave <>
* Turns on and off a light emitting diode(LED) connected to digital
* pin 13. The amount of time the LED will be on and off depends on
* the value obtained by analogRead(). In the easiest case we connect
* a potentiometer to analog pin 2.

// int cellPin = 0;    // select the input pin for the potentiometer
int ledPin = 12;   // select the pin for the LED
int cdsPin = 0;
int cdsVal =0;
int ledDelay =0;

void setup() {
pinMode(ledPin, OUTPUT);  // declare the ledPin as an OUTPUT
pinMode(cdsPin, INPUT);

void loop() {

cdsVal = analogRead(cdsPin);
ledDelay = cdsVal;

digitalWrite(ledPin, HIGH);  // turn the ledPin on
digitalWrite(ledPin, LOW);   // turn the ledPin off


September 23, 2007

Example: Temperature controlled fan

Filed under: Course Materials,Examples — jet @ 9:57 pm

Very nice — a tutorial on controlling a fan’s speed with a temperature sensor.

September 18, 2007

arduino programming notebook

Filed under: Alastair Firth,Course Materials,Examples,Resources — afirth @ 8:38 am

can also be found at /afs/

September 14, 2007

Other Arduino form-factors – Textiles

Filed under: Course Materials,Examples — jet @ 4:18 pm

The Arduino boards we’re using in class are typical of prototyping kits developed by engineers: A PC board with a lot of leads, and it’s up to the user to figure out how to attach/hide it to whatever project they are working on.

Leah Buechley at University of Colorado, Boulder,  has gone a different direction. Her Arduino toolkit is designed from the point of view of someone working with textiles. It’s a stitchable “patch” with the connection points placed around the outside of the patch:

September 12, 2007

Portable Arduino!!!

Filed under: Alastair Firth,Examples,Resources,Tools,Uncategorized — afirth @ 1:26 pm

sorry it’s so late, blame Kodak. hit more for the sketch on how to run your arduino off a 9volt


« Previous PageNext Page »

Blog at