As computing becomes more ubiquitous in our objects, designers need to be more aware of how to design meaningful interactions into electronically enhanced objects. At the University of Washington, a class of junior Interaction Design majors is exploring this question. These pages chronicle their efforts.

Tuesday, April 30, 2013

The GIFt of Light

SAM: William ... come see thine latest creation

WILLIE: Ser Samuel what discovery of wonder and creation of magic hath you delivered here today?!

S: It ish a curcuit my simple friend. One that uses both the simple LED circuitry I have shown you previously and a three-post variable potentiometer -- a dial, Ser William -- to control the brightness of said light.

W: fffaassssssccinating Samuel

S: But there is more! As I control this system and output feed is transfered back to my computer operating system, displaying to me the changes in intensity  and resistance of energy.

W: I am frozen in a state of amazement! 

-------------------------------------

Below is a GIF of 
a) the process in motion 
b) sam represents what the LED is doing
c) willie represents what the dial is doing to control the LED
d) a gif of hands to represent the motion of electrons in our circuit




Our Code looks like this:

/*
  Analog input, analog output, serial output

 Reads an analog input pin, maps the result to a range from 0 to 255
 and uses the result to set the pulsewidth modulation (PWM) of an output pin.
 Also prints the results to the serial monitor.

 The circuit:
 * potentiometer connected to analog pin 0.
   Center pin of the potentiometer goes to the analog pin.
   side pins of the potentiometer go to +5V and ground
 * LED connected from digital pin 9 to ground

 created 29 Dec. 2008
 modified 9 Apr 2012
 by Tom Igoe

 This example code is in the public domain.

 */

// These constants won't change.  They're used to give names
// to the pins used:
const int analogInPin = A0;  // Analog input pin that the potentiometer is attached to
const int analogOutPin = 9; // Analog output pin that the LED is attached to

int sensorValue = 0;        // value read from the pot
int outputValue = 0;        // value output to the PWM (analog out)

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600); 
}

void loop() {
  // read the analog in value:
  sensorValue = analogRead(analogInPin);            
  // map it to the range of the analog out:
  outputValue = map(sensorValue, 0, 1023, 0, 255);  
  // change the analog out value:
  analogWrite(analogOutPin, outputValue);           

  // print the results to the serial monitor:
  Serial.print("sensor = " );                       
  Serial.print(sensorValue);      
  Serial.print("\t output = ");      
  Serial.println(outputValue);   

  // wait 2 milliseconds before the next loop
  // for the analog-to-digital converter to settle
  // after the last reading:
  delay(2);                     
}


No comments:

Post a Comment