You Never Close Your Eyes Anymore @ AC Direct

close-your-eyes-ac-direct-me-19_1000h

You Never Close Your Eyes Anymore opens tonight at AC Institute in Chelsea.

July 1 – July 31, 2010
Opening: Thursday, July 1, 2010 6-8pm

AC Institute [Direct Chapel]
547 W. 27th St, 5th Floor
New York, NY

Gallery Hours: Wed., Fri. & Sat.: 1-6pm, Thurs.: 1-8pm

close-your-eyes-ac-direct-me-14_1000h

close-your-eyes-ac-direct-me-23_compTop_1000w_cropped

close-your-eyes-ac-direct-me-24_compBot_1000w

Schematic for You Never Close Your Eyes Anymore

“Open sourcing” the schematic for the electronic components for You Never Close Your Eyes Anymore.

Picture 5

Products:

RBBB boards (Arduino clone)
custom-designed circuits
– female headers
– TIP31 transistor
– 6-wire Unipolar Stepper motor (48 step Nippon Electric Pulse Motor)
– ULN2803A Darlington Array
– hook-up wire
– various resistors
– LEDs
used camera lenses
aluminum “flat bar”
hose clamps
rubber wine corks
various mounting hardware

Fading an LED with PWM and a Potentiometer

Using a potentiometer and PWM on an Arduino to fade an LED.

  1.  
  2. /* POT to LED test -> by Owen Mundy March 11, 2010
  3.    from: http://itp.nyu.edu/physcomp/Labs/AnalogIn
  4. —————————————————————*/
  5.  
  6. int potPin = 0;    // Analog input pin that the potentiometer is attached to
  7. int potValue = 0;  // value read from the pot
  8. int led = 9;      // PWM pin that the LED is on.  n.b. PWM 0 is on digital pin 9
  9.  
  10. void setup() {
  11.   // initialize serial communications at 9600 bps:
  12.   Serial.begin(9600);
  13.   // declare the led pin as an output:
  14.   pinMode(led, OUTPUT);
  15. }
  16.  
  17. void loop() {
  18.   potValue = analogRead(potPin); // read the pot value
  19.   analogWrite(led, potValue/4);  // PWM the LED with the pot value (divided by 4 to fit in a byte)
  20.   Serial.println("hello");      // print the pot value back to the debugger pane
  21.   delay(10);                     // wait 10 milliseconds before the next loop
  22. }
  23.  

Here is the schematic for the above project.

Using PWM and a potentiometer to fade an LED and drive a stepper motor, powered by a Boarduino RBBB.

  1.  
  2. /*
  3.   Owen Mundy
  4.  July 29, 2009
  5.  
  6.  p. 262 of Physical Computing
  7.  Using BBB to run stepper motor by manually moving steppers
  8.  
  9.  */
  10.  
  11. int pin1 = 3;                 // PWM
  12. int pin2 = 5;                 // PWM
  13. int pin3 = 6;                 // PWM
  14. int pin4 = 9;                 // PWM
  15. int ledpin = 13;              // LED
  16. int led = false;              // LED monitor
  17. int motor_time_lapse = 80;
  18.  
  19. int potPin = 0;      // Analog input pin that the potentiometer is attached to
  20. int potValue = 0;    // value read from the pot
  21. int ledPotPin = 11;  // PWM pin that the LED is on.  n.b. PWM 0 is on digital pin 9
  22.  
  23.  
  24. void setup()
  25. {
  26.   pinMode(pin1, OUTPUT);      // sets the pin as output
  27.   pinMode(pin2, OUTPUT);      // sets the pin as output
  28.   pinMode(pin3, OUTPUT);      // sets the pin as output
  29.   pinMode(pin4, OUTPUT);      // sets the pin as output
  30.   pinMode(ledpin, OUTPUT);    // sets the pin as output
  31.  
  32.   // initialize serial communications at 9600 bps:
  33.   Serial.begin(9600);
  34.   // declare the led pin as an output:
  35.   pinMode(ledPotPin, OUTPUT);
  36. }
  37.  
  38. void loop()
  39. {
  40.   potValue = analogRead(potPin); // read the pot value
  41.   analogWrite(ledPotPin, potValue/4);  // PWM the LED with the pot value (divided by 4 to fit in a byte)
  42.   Serial.println(potValue);
  43.  
  44.   digitalWrite(pin1, HIGH);   // on
  45.   digitalWrite(pin2, LOW);    // off
  46.   digitalWrite(pin3, HIGH);   // on
  47.   digitalWrite(pin4, LOW);    // off
  48.   delay(motor_time_lapse);    // wait
  49.  
  50.  
  51.   digitalWrite(pin1, LOW);    // off
  52.   digitalWrite(pin2, HIGH);   // on
  53.   digitalWrite(pin3, HIGH);   // on
  54.   digitalWrite(pin4, LOW);    // off
  55.   delay(motor_time_lapse);    // wait
  56.  
  57.   digitalWrite(pin1, LOW);    // off
  58.   digitalWrite(pin2, HIGH);   // on
  59.   digitalWrite(pin3, LOW);    // off
  60.   digitalWrite(pin4, HIGH);   // on
  61.   delay(motor_time_lapse);    // wait
  62.  
  63.  
  64.   digitalWrite(pin1, HIGH);   // on
  65.   digitalWrite(pin2, LOW);    // off
  66.   digitalWrite(pin3, LOW);    // off
  67.   digitalWrite(pin4, HIGH);   // on
  68.   delay(motor_time_lapse);    // wait
  69.  
  70.   blink();
  71. }
  72.  
  73. void blink()
  74. {
  75.   if (led == false)
  76.   {
  77.     led = true;
  78.     digitalWrite(ledpin, HIGH); // on  
  79.   }
  80.   else
  81.   {
  82.     led = false;
  83.     digitalWrite(ledpin, LOW); // on  
  84.   }
  85. }

BBB (Freeduino) and stepper motor test

Test with BBB (Freeduino) board, Darlington H-Bridge, Mabuchi # PF35T-48L4 stepper motor. Many thanks to Tom Igoe and his Physical computing book.

  1. /*
  2.   Owen Mundy
  3.   July 29, 2009
  4.  
  5.   p. 262 of Physical Computing
  6.   Using BBB to run stepper motor by manually moving steppers
  7.  
  8. */
  9.  
  10. int pin1 = 3;                 // PWM
  11. int pin2 = 5;                 // PWM
  12. int pin3 = 6;                 // PWM
  13. int pin4 = 9;                 // PWM
  14. int ledpin = 13;              // LED
  15.  
  16. void setup()
  17. {
  18.   pinMode(pin1, OUTPUT);      // sets the pin as output
  19.   pinMode(pin2, OUTPUT);      // sets the pin as output
  20.   pinMode(pin3, OUTPUT);      // sets the pin as output
  21.   pinMode(pin4, OUTPUT);      // sets the pin as output
  22.   pinMode(ledpin, OUTPUT);      // sets the pin as output
  23. }
  24.  
  25. void loop()
  26. {
  27.   for (int i=0; i<24; i++)
  28.   {
  29.     digitalWrite(pin1, HIGH);   // on
  30.     digitalWrite(pin2, LOW);    // off
  31.     digitalWrite(pin3, HIGH);   // on
  32.     digitalWrite(pin4, LOW);    // off
  33.     delay(10);                  // waits for a second
  34.  
  35.     digitalWrite(pin1, LOW);    // off
  36.     digitalWrite(pin2, HIGH);   // on
  37.     digitalWrite(pin3, HIGH);   // on
  38.     digitalWrite(pin4, LOW);    // off
  39.     delay(10);                  // waits for a second
  40.  
  41.     digitalWrite(pin1, LOW);    // off
  42.     digitalWrite(pin2, HIGH);   // on
  43.     digitalWrite(pin3, LOW);    // off
  44.     digitalWrite(pin4, HIGH);   // on
  45.     delay(10);                  // waits for a second
  46.  
  47.     digitalWrite(pin1, HIGH);   // on
  48.     digitalWrite(pin2, LOW);    // off
  49.     digitalWrite(pin3, LOW);    // off
  50.     digitalWrite(pin4, HIGH);   // on
  51.     delay(10);                  // waits for a second
  52.   }
  53.  
  54.   blink();
  55.  
  56.   for (int i=0; i<24; i++)
  57.   {
  58.  
  59.     digitalWrite(pin1, HIGH);   // on
  60.     digitalWrite(pin2, LOW);    // off
  61.     digitalWrite(pin3, LOW);    // off
  62.     digitalWrite(pin4, HIGH);   // on
  63.     delay(10);                  // waits for a second
  64.  
  65.     digitalWrite(pin1, LOW);    // off
  66.     digitalWrite(pin2, HIGH);   // on
  67.     digitalWrite(pin3, LOW);    // off
  68.     digitalWrite(pin4, HIGH);   // on
  69.     delay(10);                  // waits for a second
  70.  
  71.     digitalWrite(pin1, LOW);    // off
  72.     digitalWrite(pin2, HIGH);   // on
  73.     digitalWrite(pin3, HIGH);   // on
  74.     digitalWrite(pin4, LOW);    // off
  75.     delay(10);                  // waits for a second
  76.    
  77.     digitalWrite(pin1, HIGH);   // on
  78.     digitalWrite(pin2, LOW);    // off
  79.     digitalWrite(pin3, HIGH);   // on
  80.     digitalWrite(pin4, LOW);    // off
  81.     delay(10);                  // waits for a second
  82.   }
  83.  
  84.   blink();
  85.  
  86.   for (int i=0; i<6; i++)
  87.   {
  88.     digitalWrite(pin1, HIGH);   // on
  89.     digitalWrite(pin2, LOW);    // off
  90.     digitalWrite(pin3, HIGH);   // on
  91.     digitalWrite(pin4, LOW);    // off
  92.     delay(10);                  // waits for a second
  93.  
  94.     digitalWrite(pin1, LOW);    // off
  95.     digitalWrite(pin2, HIGH);   // on
  96.     digitalWrite(pin3, HIGH);   // on
  97.     digitalWrite(pin4, LOW);    // off
  98.     delay(10);                  // waits for a second
  99.  
  100.     digitalWrite(pin1, LOW);    // off
  101.     digitalWrite(pin2, HIGH);   // on
  102.     digitalWrite(pin3, LOW);    // off
  103.     digitalWrite(pin4, HIGH);   // on
  104.     delay(10);                  // waits for a second
  105.  
  106.     digitalWrite(pin1, HIGH);   // on
  107.     digitalWrite(pin2, LOW);    // off
  108.     digitalWrite(pin3, LOW);    // off
  109.     digitalWrite(pin4, HIGH);   // on
  110.     delay(10);                  // waits for a second
  111.   }
  112.  
  113.   blink();
  114.  
  115.   for (int i=0; i<6; i++)
  116.   {
  117.  
  118.     digitalWrite(pin1, HIGH);   // on
  119.     digitalWrite(pin2, LOW);    // off
  120.     digitalWrite(pin3, LOW);    // off
  121.     digitalWrite(pin4, HIGH);   // on
  122.     delay(10);                  // waits for a second
  123.  
  124.     digitalWrite(pin1, LOW);    // off
  125.     digitalWrite(pin2, HIGH);   // on
  126.     digitalWrite(pin3, LOW);    // off
  127.     digitalWrite(pin4, HIGH);   // on
  128.     delay(10);                  // waits for a second
  129.  
  130.     digitalWrite(pin1, LOW);    // off
  131.     digitalWrite(pin2, HIGH);   // on
  132.     digitalWrite(pin3, HIGH);   // on
  133.     digitalWrite(pin4, LOW);    // off
  134.     delay(10);                  // waits for a second
  135.    
  136.     digitalWrite(pin1, HIGH);   // on
  137.     digitalWrite(pin2, LOW);    // off
  138.     digitalWrite(pin3, HIGH);   // on
  139.     digitalWrite(pin4, LOW);    // off
  140.     delay(10);                  // waits for a second
  141.   }
  142.  
  143.   blink();
  144.  
  145. }
  146.  
  147. void blink()
  148. {
  149.   digitalWrite(ledpin, HIGH); // on  
  150.   delay(1000);                // waits for a second
  151.   digitalWrite(ledpin, LOW);  // off  
  152. }
-->