First Prototype

IMAG1513.jpgUsing my concept sketch, I created a digital version  of the design in Illustrator.

With the laser cutter and assistance from and lab mate, we cut out a piece of non-adhering paper to sandwich between the heat sealable nylon.

To get the pouches in the prototype to bend, I referenced the work done by the MIT Media Lab. “aeroMorph – Heat-sealing Inflatable Shape-change Materials for Interaction Design

Screenshot_20180731-080107_1.jpg

After fusing the nylon with a heat press, but leaving one side open, the small valves were installed, and then the last side sealed.

 

 

Test with a hand pump:

This wasn’t quit the dramatic shape change I was hoping for, but not too bad for a first try.

The next step was to hook it up to a system with tubes, an air pump and small solenoid valves.

Test Code


int sValve_0 = 1;
int sValve_1 = 2;
int sValve_2 = 3;
int pump = 8;
void setup() {
Serial.begin(9600);
pinMode(sValve_0, OUTPUT);
pinMode(sValve_1, OUTPUT);
pinMode(sValve_2, OUTPUT);
pinMode(pump, OUTPUT);
}
void loop() {
digitalWrite(sValve_0, LOW);
Serial.print("0 on");
Serial.println();
digitalWrite(sValve_0, HIGH);
delay(500);
digitalWrite(sValve_0, LOW);
delay(500);
digitalWrite(sValve_1, LOW);
Serial.print("1 on");
Serial.println();
digitalWrite(sValve_1, HIGH);
delay(500);
digitalWrite(sValve_1, LOW);
delay(500);
digitalWrite(sValve_2, LOW);
Serial.print("2 on");
Serial.println();
digitalWrite(sValve_2, HIGH);
delay(500);
digitalWrite(sValve_2, LOW);
delay(500);
digitalWrite(pump, LOW);
Serial.print("pump on");
Serial.println();
digitalWrite(pump, HIGH);
delay(500);
digitalWrite(pump, LOW);
delay(500);
}

Even with all the components wired to a bread board, all the components, except for power, for this project fit into a small flat box.  Still a bit big to wear on your arm, but a few adjustments and I think it will work.

Functional Code with Buttons


int upPin = A0; // select analog input pins for the pressure sensors
int downPin = A1;
int up; // declare variables to store the values coming from the sensors
int down;
int pump = 8; //this pin is named to keep track of which pin the air pump is on
int level; //declare variable to track the selected level
void setup() {
Serial.begin(9600);
// setup pins to be inputs or outputs
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
// for pins controlling solenoid valves, HIGH means the valve is closed and not letting air through,
//for the pump, HIGH means it is on and pumping air into the system.
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(pump, LOW);
level = 0; //set the "score" of the level to 0 to start
}
void loop() {
up= analogRead(upPin);
down = analogRead(downPin);
Serial.println(up);
Serial.println(down);
// calculate current level and set the bounds of the levels so that the "level" is
//always a number that aligns with one of the defined states
if (up >= 10) {
level = (level +1);
delay(500);
}
if (down >= 10) {
level = (level – 1);
delay(500);
}
if (level < 0) {
level = 0;
}
if (level > 3) {
level = 3;
}
Serial.print("level = ");
Serial.println(level);
//inflate pouches for visual and tactile level indication
if (level == 1) {
digitalWrite(pump, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
}
else if (level == 2) {
digitalWrite(pump, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
}
else if (level == 3) {
digitalWrite(pump, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
}
else {
digitalWrite(pump, LOW);
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
}
}

 

The prototype worked pretty well.  The level tracking function worked, and partially inflated the correct pouches.

Problems:

  1. Power!  The current system needs different power sources to run the valves, pump, and microcontroller.  Additionally, a 12V battery pack will certainly interfere with the “wearability” of the device.
  2. Shape changing is too subtle.  Need to make the pouches bigger, or change the angle of the fused shape in middle of pouches, or separate the pouches and make them individual, or rewrite code so there is more air pressure flowing into each pouch, or some combination of these options.
  3. Material.  After running the test code for a while, some of the pouches started to leak and wouldn’t inflate all the way.  I’d also like to look into getting plastic fixtures for attaching the pump to the pouches to lower weight and cost.

 

 

https://gist.github.com/melPlett/b2b248c19e86bfb3a7c90e6ad84719a6.js

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s