Skip to content

12. Soft robotics

Inspiration

What I associated with "inflatables":

Air Dancer

In the class, lots of interesting cool projects: organic-like robots, padded robotic arms...

What I find the most interesting is the intersection of wearables and soft robotics, and the ideas of compression and protection.

Hug Shirt

Sense-Roid: hug yourself https://www.novriki.com/sense-roid-en/ Already mentioned in week 5

Inflatable Hood

http://wiki.textile-academy.org/fabricademy2017/students/julie.taris/final_projectpresentation https://hovding.com/ https://www.inflabi.com/ http://shoparos.com/#about

I thought making an inflatable hood associated to a sensor that would detect being tired or distracted to protect myself from falling down the street would be a good idea.

References

https://class.textile-academy.org/2022/saskia-helinska/finalproject.html

Grasshopper Inflatable Simulation tutorial: https://www.youtube.com/watch?v=HneukatzElw

Soft Robotic Toolkit Tutorial: https://softroboticstoolkit.com/resources-for-educators/pneuwrist-brace

Louise's documentation: https://class.textile-academy.org/2022/louise-massacrier/Assignments/week12/#vinyl-soft-robotics-pattern

Making the inflatables

I personally find soft robots made of gooey biomaterials or silicon to be quite icky, so I chose to focus on building inflatables out of non-organic-looking materials. Two techniques seemed particularly interesting to me:

  • vinyl + baking paper
  • plastic sheets + 3D printer extruder

Due to time constraints I only experimented with the first one, but others such as .... got interesting results with the 3D printer method.

Vinyl + Baking Paper Method

two layers of vinyl are fused together, with baking paper inserted in the middle that prevent fusing in specific areas, leaving space for air to get in

Designed the samples parametrically in grasshopper, then used the scan&cut machine to cut the vinyl and baking paper

Issues with the machine, vinyl had trouble adhering to the mat, baking paper was even worse

Retrospectively I would have cut by hand

Bending

grasshopper code

Bending Inflatable

Bending Inflatable

Twisting

grasshopper code

Twisting Inflatable

Twisting Inflatable

Seaming

Vinyl sheets are 25 x 25 cm, so in order to make a larger projects one would need to seam several pieces together.

I decided to experiment with seaming two pieces while leaving a path for air to flow between them

FAIL

maybe if using a tiny iron like this: https://www.rascol.com/mini-fer-a-repasser-p-237118

Powering the inflatables with Arduino

Inflatable On/Off

circuit

const int AIR_PIN = 9; 

void setup() {

  pinMode(AIR_PIN, OUTPUT);

}

void loop() {

  digitalWrite(AIR_PIN, HIGH); 
  delay(5000);                 
  digitalWrite(AIR_PIN, LOW);  
  delay(5000);                 

}

Digital Sensor + Inflatable

circuit diagram

Digital Circuit

const int DIGITAL_SENSOR_PIN = 8; 
const int AIR_PIN = 9;

int digital_sensor_value = 0;

void setup() {

  pinMode(DIGITAL_SENSOR_PIN, INPUT_PULLUP);  //initialize the sensor pin
  pinMode(AIR_PIN, OUTPUT);   //initialize led pin
  Serial.begin(9600);

}

void loop() {
  digital_sensor_value = digitalRead(DIGITAL_SENSOR_PIN);

  if(digital_sensor_value == LOW){ 

      digitalWrite(AIR_PIN, HIGH); 
      Serial.println("Air on");

  } else {                          

      digitalWrite(AIR_PIN, LOW);  
      Serial.println("Air off");

  }  

}

Analog Sensor + Inflatable

circuit

Analog Circuit

const int ANALOG_SENSOR_PIN = A0;
const int ANALOG_SENSOR_MIN = 500;
const int ANALOG_SENSOR_THRESHOLD = 1000;
const int AIR_PIN = 9;

int analog_sensor_value = 0;


void setup() {

  pinMode(ANALOG_SENSOR_PIN, INPUT);
  pinMode(AIR_PIN, OUTPUT);
  Serial.begin(9600);

}

void loop() {

  analog_sensor_value = analogRead(ANALOG_SENSOR_PIN);
  Serial.println(analog_sensor_value);

  if (analog_sensor_value<ANALOG_SENSOR_THRESHOLD)
  {
    analog_sensor_value = map(analog_sensor_value, ANALOG_SENSOR_MIN, ANALOG_SENSOR_THRESHOLD, 255, 50);
    analogWrite(AIR_PIN, analog_sensor_value);
  } else 

  analogWrite(AIR_PIN, 0);

  delay(50);

}

Last update: 2022-12-12