Instruction Sets for Strangers - Prototyping

Instruction Sets for Strangers - Prototyping

Prototype 2

Continuing from last post where a basic prototype testing was conducted. We designed a physical form of the prototype to test it out inside the park and observe how people react to eyes following them around when they pass. It was interesting to see that different persons had different reactions to the installation.

Designing the Installation

We thought of the installation as - two physical eyes shaped as googly eyes put up on the lamp post acting as pole’s own eyes. Following is a concept sketch for the installation we planned

Following Eyes

We chose material to be 1/8” acrylic sheet with components mounted on it. The brains of this would be a linux based machine capable of running opencv and with a minimum of 2 USB ports. The eyes are controlled by an Arduino Uno which gets control commands from the linux machine.

Fabrication and Assembly

Laser Cutting

The basic model of the installation was laser cut out of 1/8” opaque black acrylic.


Laser cut model

To make the base look like sclera we spray painted it with a white paint.


Spray Painting

Electronics

For getting the eyes movement, we chose 28BYJ-48 (5V Stepper Motors) with ULN2003 as stepper driver. The motors are being controlled using an Arduino UNO which in turn is controlled by a linux machine.

Electronics

Coding

This installation uses OpenCV for computer vision and detection for people passing by. Along with an arduino code that translates the motion coordinates generated by OpenCV and rotates stepper motors to show the follow movement. Below is the Arduino Code that translates camera co-ordinates to motor movements.

#include <AccelStepper.h>
#define HALFSTEP 8

// Motor pin definitions
#define motorPin11  4     // IN1 on the ULN2003 driver 1
#define motorPin12  5     // IN2 on the ULN2003 driver 1
#define motorPin13  6     // IN3 on the ULN2003 driver 1
#define motorPin14  7     // IN4 on the ULN2003 driver 1

#define motorPin21  8     // IN1 on the ULN2003 driver 2
#define motorPin22  9     // IN2 on the ULN2003 driver 2
#define motorPin23  10    // IN3 on the ULN2003 driver 2
#define motorPin24  11    // IN4 on the ULN2003 driver 2

// Stepper Motor 1 Initialization
AccelStepper stepper1(HALFSTEP, motorPin11, motorPin13, motorPin12, motorPin14);

// Stepper Motor 2 Initialization
AccelStepper stepper2(HALFSTEP, motorPin21, motorPin23, motorPin22, motorPin24);

int distance;

void setup() {
  // Establishing Serial Communication at 115200 baud rate
  Serial.begin(115200);

  // Basic setup for stepper motors

  stepper1.setMaxSpeed(500.0);
  stepper1.setAcceleration(150.0);
  stepper1.setSpeed(500);

  stepper2.setMaxSpeed(500.0);
  stepper2.setAcceleration(150.0);
  stepper2.setSpeed(500);

}

void loop() {

  // Data from openCV is received as *coordinate*

  while (Serial.available()) {
    if (Serial.read() == '*') {
      distance = 0;
      String steps = Serial.readStringUntil('*');
      distance = steps.toInt();
      distance = map(distance, 0, 640, 600, -600);

      stepper1.moveTo(distance);
      stepper2.moveTo(distance);
    }
  }
  stepper1.run();
  stepper2.run();

}

Initial Testing

First Public Space Interaction

Observations and Failures

  • Number of reactions we got on this installation were very contrasting. We got reactions such as surprising, creepy, funny, interesting, exciting, confusing, playful and many more.
  • The installation attracted more children than adults
  • Not everyone who passed by noticed the moving eyes.
  • Many didn’t know the eyes moved until someone passed by.
  • Due to software glitches not everyone who passed by was detected.
  • The structure had some mechanical failures.

Future Improvements

  • Try and get more interactions, probably installing it on a new location inside the park.
  • Improve upon detection algorithm so it follows everyone around.
  • Make the installation more structurally solid.
  • Add music for prolonged interactions.