Kinetic Object Test / Thesis Exploration

This object is an extension of my midterm, this time testing the effectiveness of kinetic feedback to a greater extent than the origami. The design is generic purposefully in order for the user to be able to focus more on the movement. A series of user tests will be conducted as soon as possible, and the results would be able to inform the design of future iterations.

Questions I am asking are the following:

-Can an abstract object stimulateĀ mirror neurons?

– What type of movement is the most gratifying for this specific type of exercise?

– How strongly is kinetic movement associated with the notion of life? To what extent does this object feel anthropomorphic?

– What is too much motion as feedback, when does it get annoying rather than gratifying?

Please see the circuit from the midterm, as it is the same except for the servo motors.

image

#include <Servo.h>

Servo myservo;
Servo myservo2;
Servo myservo3;

int pos = 0;

int vibration = 3;
int sensorValue = A2;
int flex = 2; //flexSensor
int counter = 0;
int timer;
int startTime;
int endTime;
int trainTime;

void setup()
{
pinMode(vibration, OUTPUT);

myservo.attach(9);
myservo2.attach(8);
myservo3.attach(7);

myservo.write(0);
myservo2.write(0);
myservo3.write(0);

Serial.begin(9600);
}

void loop() {

// read the input on analog pin 0:
sensorValue = analogRead(flex);
Serial.println(sensorValue);
// print out the value you read:

delay(1); // delay in between reads for stability

// if (sensorValue > 240 && sensorValue < 245)
if (sensorValue < 400) {
if (counter == 0) {
startTime = millis();
}

Serial.println(counter);

counter = counter + 1;

delay(1000);

if (counter > 9) {
analyze();
//motor();
//Serial.println(“moootooor”);
counter = 0;
}
}
}

void analyze(){
endTime = millis();
trainTime = endTime – startTime;
Serial.println(trainTime);
if(trainTime <= 4000){
motor(3000);
Serial.println(“FLEEEXINOOOL”);

for (pos = 0; pos <= 180; pos += 1)
{
myservo.write(pos);
myservo3.write(pos);
delay(5);
}
for (pos = 180; pos >= 0; pos -= 1)
{
myservo.write(pos);
myservo3.write(pos);
delay(5);
}
}

if(trainTime > 4000 && trainTime < 5000){
motor(1000);
delay(1000);
motor(1000);
Serial.println(“FLEEEXINOOOL”);

for (pos = 0; pos <= 180; pos += 1)
{
myservo.write(pos);
myservo2.write(pos);
myservo3.write(pos);
delay(20);
}
for (pos = 180; pos >= 0; pos -= 1)
{
myservo.write(pos);
myservo2.write(pos);
myservo3.write(pos);
delay(20);
}

for (pos = 0; pos <= 180; pos += 1)
{
myservo.write(pos);
myservo2.write(pos);
myservo3.write(pos);
delay(20);
}
}
if(trainTime > 5000){
motor(100);
delay(1000);
motor(100);
Serial.println(“FLEEEXINOOOL”);

for (pos = 0; pos <= 180; pos += 1)
{
myservo.write(pos);
delay(25);
}
for (pos = 180; pos >= 0; pos -= 1)
{
myservo.write(pos);
delay(25);
}
}
}
void motor(int valueLong) {
digitalWrite(vibration, HIGH);
delay(valueLong);
digitalWrite(vibration, LOW);
}

 

 

 

 

 

 

Leave a Reply

Your email address will not be published.