Category Archives: RS3. Digital Tectonics

Machinic Conversations II

During this 4 days workshop, students from the Fabrication Ecologies research line of the Master in Advanced Architecture 2013 were able to develop and test a new fabrication protocol deploying Hemp fibres by means of an industrial robot.
Through the production of a 1:1 scale prototype, the 4 teams explored the design opportunities arising from 2 different fabrication techniques developed within the Fabrication Ecologies Studio, focussed on the production of:
- an aggregate substratum via pick and place of fibrous component units.
- a non-woven fabric skin via robotic spraying of row hemp filaments.

Read More »

Also posted in RS3. Digital Tectonics | Tagged , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Sandbot

Posted in RS3. Digital Tectonics | Tagged | Leave a comment

Dream Weaver

1.1.KUMIHIMO BRAIDING

SYSTEM -Yarn Shifting Based (variable amount of feeders – even number)
OUTCOME – single yarn(or geometrical variation if some object is inserted)

1.2. BRAIDING MACHINES

SYSTEM –> Rotative (variable amount of feeders –> even number)
OUTCOME –> closed revolved surface

1.3  KNITTERS

SYSTEM –> CIRCULAR OR LINEAR (singular feeder)
OUTCOME –> open & closed surfaces

KNITTERS OUTCOME & EXISTING SOFTWARE

(based on bidimensional patterns)

You can find the link to the code on Dream Weaver DC motor controls

You can find the video of the machine in action on dreamweaver_Brian,Joao,Melat

You can find the link for the servo controls on Dream Weaver Servo controls


The pdf of this presentation can be found at DREAMWEAVER_Melat.Brian.Joao

Posted in RS3. Digital Tectonics | Tagged , | Leave a comment

The Fluid Inject Printer

SPHERIFICATION

In our conceptual machine we borrowed the technique of  ‘Inverse Spherification’ that was invented Ferran Adrià in the molecular gastronomy  – when a liquid droplet whichever contains calcium is submerged into an alginate bath, the droplet of liquid will then be spherified by forming a ‘gel’ like surface around the sphere. Droplets become ‘caviers’ in water depending on the sizes of injecting device.

THE MATERIAL EXPERIMENTS

We are carrying out series of experiments of spherifying a variety of liquid (e.g. water liquid, oil, plaster cement, yoghurt, milk etc.) as well as  investigating the physical and chemical properties of the spherified liquid.

Spherification of various water-based liquid

Forms of yoghurt droplets in alginate bath injected by syringe

Forms of milk droplets in alginate bath

Positions of yoghurt droplets in higher concerntrated alginate bath

Position of yoghurt droplets in higher concerntration of alginate bath

The simultaneous emulsification and spherification of milk in alginate bath

THE PRINTING MACHINE

The first generation of the Fluid Inject Printer is a 1-axix machine with only 2 controllable parameters. It consists a stepper motor that controls the syringe’s trajectory and  a DC motor that controls the amount of injection into the alginate bath.

(1) Both devices are feeded by commands of the Arduino;

(2) Trajectory of syringe determines the location of print;

(3) While liquid is being ejected out from the syringe it becomes instantaneously ’spherified’ in the alginate bath. Hence the first form is printed.

#include <Stepper.h>

// change the steps variable to the number of steps on your motor
int steps = 100;
int switchPin = 2;    // switch input
int motor1Pin1 = 8;    // pin 2 on L293D
int motor1Pin2 = 9;    // pin 7 on L293D

// create and attaches a stepper motor
// with 100 steps to pins 0, 1, 2 and 3

// calibration
int stepLength = 50;
int liquidAmount = 25;

Stepper stepper(steps, 3, 4, 5, 6);

void setup()
{
// set the speed of the motor to 20 rpms
stepper.setSpeed(200);
pinMode(switchPin, INPUT);
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
Serial.begin(9600);
Serial.println(”hello world”);
}

void loop() {
if (Serial.available() > 0) {
int dataIn = Serial.read();
switch(dataIn) {
case ‘]’:
stepper.step(stepLength);
break;
case ‘[’:
stepper.step(-stepLength);
break;
case ‘,’: //up
digitalWrite(motor1Pin1, LOW);   // set pin 2 on L293D low
digitalWrite(motor1Pin2, HIGH);  // set pin 7 on L293D
delay(liquidAmount);
digitalWrite(motor1Pin2, LOW);  // set pin 7 on L293D
break;
case ‘.’: //down
digitalWrite(motor1Pin1, HIGH);   // set pin 2 on L293D low
digitalWrite(motor1Pin2, LOW);  // set pin 7 on L293D
delay(liquidAmount);
digitalWrite(motor1Pin1, LOW);   // set pin 2 on L293D low
break;
}
}
}

Posted in RS3. Digital Tectonics | Tagged , , | Leave a comment

Interactive systems

1.  Stepper motor receives rotate command from laptop. This movement triggers piezo sensor1 which activates machine2.
2.  The motion produced by machine2 activates piezo sensor2 which activates machine3.
3.  Machine3 randomly roves and draws.

SCRIPT CODE

#include <Stepper.h>

// change the steps variable to the number of steps on your motor
int steps = 100;
int switchPin  =  9;
int chipPin1 =  10;
int chipPin2 =  11;
int dollPin1 =  8;
int dollPin2 =  12;
int piezoPin1 =  5;
int piezoPin2 =  4;

// create and attaches a stepper motor
// with 100 steps to pins 0, 1, 2 and 3

Stepper stepper(steps, 14,15,16,17);

void setup()
{
pinMode(switchPin,INPUT);
digitalWrite(switchPin,HIGH);
// set the speed of the motor to 20 rpms
stepper.setSpeed(50);
stepper.step(50);
pinMode(dollPin1, OUTPUT);
pinMode(dollPin2, OUTPUT);
pinMode(chipPin1, OUTPUT);
pinMode(chipPin2, OUTPUT);
Serial.begin(9600);
Serial.println(”hello world”);

}

void loop()
{
Serial.println(analogRead(piezoPin1));
if (analogRead(piezoPin1) > 1) {
for (int i=0;i<50;i++) {
digitalWrite(dollPin1, HIGH);
digitalWrite(dollPin2, LOW);
delay(50);
digitalWrite(dollPin1, LOW);
digitalWrite(dollPin2, HIGH);
delay(200);
digitalWrite(dollPin1, LOW);
digitalWrite(dollPin2, LOW);
}
Serial.println(analogRead(piezoPin2));
}
if (analogRead(piezoPin2) > 2) {
for (int i=0;i<5;i++) {
digitalWrite(chipPin1, HIGH);
digitalWrite(chipPin2, LOW);
delay(500);
digitalWrite(chipPin1, LOW);
digitalWrite(chipPin2, HIGH);
delay(500);
digitalWrite(chipPin1, LOW);
digitalWrite(chipPin2, LOW);
}
}
if (Serial.available() > 0) {
int dataIn = Serial.read();
switch(dataIn) {
case(49):  // number 1
stepper.step(50);
break;
case(50):
stepper.step(-50);
break;
case(51):
stepper.step(50);
break;
case(52):
stepper.step(-50);
break;
case(53):
stepper.step(-10);
break;
case(54):
for (int i=0;i<10;i++) {
digitalWrite(dollPin1, HIGH);
digitalWrite(dollPin2, LOW);
delay(random(50));
digitalWrite(dollPin1, LOW);
digitalWrite(dollPin2, HIGH);
delay(random(50));
digitalWrite(dollPin1, LOW);
digitalWrite(dollPin2, LOW);
}
break;
case(55):
for (int i=0;i<10;i++) {
digitalWrite(chipPin1, HIGH);
digitalWrite(chipPin2, LOW);
delay(random(100));
digitalWrite(chipPin1, LOW);
digitalWrite(chipPin2, HIGH);
delay(random(100));
digitalWrite(chipPin1, LOW);
digitalWrite(chipPin2, LOW);
}
break;
}
}

delay(100);
/*
if (digitalRead(switchPin) == HIGH) {
// move 20 steps forward
stepper.step(50);
}
else {
stepper.step(-50);
}
{
digitalWrite(dollPin1, HIGH);
digitalWrite(dollPin2, LOW);
delay(2000);
digitalWrite(dollPin1, LOW);
digitalWrite(dollPin2, HIGH);
delay(2000);
digitalWrite(dollPin1, HIGH);
digitalWrite(dollPin2, LOW);
delay(2000);
}
digitalWrite(chipPin1, HIGH);
delay(5000);
digitalWrite(chipPin2, LOW);
delay(10000);
*/
}

Posted in RS3. Digital Tectonics | Tagged , , | Leave a comment

“Robot “Arm”"

This script operates 2 stepper motors using 2 potentiometers.  playing with the values allows you to calibrate the sensitivity of the motors.

#include <Stepper.h>

#define STEPS 100 // no. of steps on motor

Stepper stepper(STEPS, 8, 9, 10, 11); // stepper, number of steps, pins

Stepper stepper1(STEPS, 4, 5, 6, 7);

int potval0 = 0; //incoming potentiometer values

int potval1 = 1;

int previous = 0;

int previous1 = 0;

int potmin = 1023;// pot minimum and maximum for re-mapping the values

int potmax = 0;

void setup()

{

// set the speed of the motor (RPMs)

stepper.setSpeed(50);

stepper1.setSpeed(50);

}

void loop()

{

// get the sensor value

potval0 = analogRead(0);

potval0 = map(potval0, potmin, potmax, 0, 100);//re-map sensor value to no. of steps

potval1 = analogRead(1);

potval1 = map(potval1, potmin, potmax, 0, 100);

int val = potval0;

int val1 = potval1;

stepper.step(val – previous); //number of steps sent to sensor

stepper1.step(val1 – previous1); // remember the previous value of the sensor

previous = val;

previous1 = val1;

}

Posted in RS3. Digital Tectonics | Tagged | Leave a comment

RSIII. Digital Tectonics (FAB)BOTS

Student groups were researching on how to work on their Robots, their applications and how to
improve them through out the Easter break. They presented their development to Faculty Marta
Malé-Alemany, Victor Viña, Luis Fraguada and Assistant Cesar Cruz Cazares. This is a start of a
workshop which will continue through out the weekend giving students a good outline on how to
compute the machines and get working accordingly to their applications.

Posted in RS3. Digital Tectonics | Tagged , , | Leave a comment