Interaction Design WikiDigital Fabrication

ZHdK Zoetrope


Zoetrope parts files: 

Assembly files: 

Arduino code for those who are interested: 

/*
 * Arduino ATTINY85 code for the IAD ZHdK Zoetrope 
 * Author: Luke Franzke 
 * luke.franzke@zhdk.ch 
 * 2017
 * This example code is in the public domain.
 */

const int analogInPin = A2;  // Distance sensor
const int analogInPin2 = A3;  // Poti for motor
const int digOutPin = 1; // LED
const int pwmOutPin = 0; //Motor
const int ledTrigger = 280;
const int maxLedTime = 25; // maximum duration of led flash

int sensorValue = 0;   // value read from the distance sensor
int motorSpeed=0;
int lightCount = 0;
boolean trigerTag = false;

int flashTime = 1; //duration of flash

void setup() {
  pinMode(digOutPin, OUTPUT);
  pinMode(pwmOutPin, OUTPUT);
  pinMode(analogInPin, INPUT);
  pinMode(analogInPin2, INPUT);
}

void loop() {
  lightCount++;
  sensorValue = analogRead(analogInPin);

  if (sensorValue >= ledTrigger && trigerTag == true) {
    lightCount = 0;
    trigerTag = false;
  }
  // make sure the led can't be trigered again imediatly 
  if (sensorValue < ledTrigger && lightCount >= flashTime*2) {
    trigerTag = true;
  }
  if (lightCount >= flashTime) {
    digitalWrite(digOutPin, LOW);
  } else { 

    digitalWrite(digOutPin, HIGH);

  }
  motorSpeed = map(analogRead(analogInPin2), 0, 1024, 0, 255);
   // Flash duration is mapped to correlate to motor speed
  flashTime = floor(map(motorSpeed, 0, 255, maxLedTime, 1)); 
  
  if (motorSpeed>=30) {
  analogWrite(pwmOutPin, motorSpeed);
  }
  // reset lightcount
  if (lightCount >= 1000) {
    lightCount = flashTime * 2;
  }
}


Eagle files for electronics for those who are interested: 

ZoetropeZHdKEagle.zip