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;
}
}
}