Wildcard week

Objectives of the week

  • General assignment
    • Design and produce something with a digital fabrication process (incorporating computer-aided design and manufacturing) not covered in another assignment, documenting the requirements that your assignment meets, and including everything necessary to reproduce it. Possibilities include (but are not limited to) composites, textiles, biotechnology, robotics, folding, and cooking.
  • Group assignment
    • Test and automatize the production of nylon thread artificial muscles
    • Integrate the artificial muscle in fabric
  • Individual assignment
    • Document you individual contribution.

We decided to do this week assignment in group, working on artificial muscle. A fun and interesting week!

What I did

  • Understood the principle of twisted nylon thread artificial muscle
  • Made a bench to easily twist the thread
  • Documented it and including javascript

What I learned

  • How to make a script on a web page
  • The potential and limitations of twisted nylon thread artificial muscle
  • How to weave

If I had the time to go further...

  • We would have optimized the muscle parameter to make nice fabric

Files and resources

Step 1: planning the work

For this week, we were inspired by artificial muscle made of nylon thread. Our objective for this week is to make fabable version of this, to demonstrate the possibility of those muscle. Axel, Christophe, and I decided to do it as a group.

Step 2: making the bench and testing the actuated fabric

As reported in the scientific papers, there are multiple ways to include constrains in the thread and make those artificial muscles. Me and Axel focused on one way: twisting them on themselves, while Christophe focused on a second one: coiling them around an axis.

To twist the tread, we imagined a small setup controlling the number of turns:

The twisting bench is composed of the following:

I focus on the mechanical part of the bench, while Axel took care of the electronics. This is further developed in the the group page.

We made some tests to with the fabricated threads. The results were not as impressive as in the papers, but we were able to obtain a contraction of the thread. We suppose that it could be improve by controlling better other parameter (weight, actuation temperature, coil ratio, type of nylon, …). Here is an example of results with a 0.2 mm diameter thread:

With the working twisted thread, we want to make a small “smart fabric”. To do this, we first made a mini loom frame weaving, found and nicely documented on instructables. And making the fabric:

We could finally test the fabric. After a first heating causing an elongation, we were able to observe contraction!

Step 3: documenting the work and using javascript

I also documented this work, and tried to embed a little bit of javascript, inspired by the work of last year’s team. Based on the paper Artificial muscle from fishing line and sewing thread), I made a little script that allows to estimate those values as a function of the thread diameter and its length

Thread diameter (mm)
Thread length (mm)
Number of turns
Weight (kg)

And here is the code behind it. Getting the values:

<form id="flexForm">
      <table>
        <tbody>
          <tr>
            <td>Thread diameter (mm)</td>
            <td><input id="diameter" type="number" min="0.001" value="0.2" step="0.001"></td>
          </tr>
          <tr>
        <td>Thread length (mm)</td>
        <td><input id="length" type="number" min="1" value="200" step="0.1"></td>
      </tr>  
    </tbody>
    <tfoot>
      <tr>
        <td colspan="2" style="padding:12px;">
            <input type="button" value="compute" onclick="updateValues()">
          </td>
        </tr>
      </tfoot>
      </table>
</form>

The smart part of the script:

<script>
    function updateValues(){
    var d     = parseFloat($("#diameter").val());
    var l    = parseFloat($("#length").val());
    var p = 20 //pressure applied (MPa)
    var g = 9.81 //(m/s^2)
    var pi = 3.1415926

    var n = (4430-11118*d)* l/1000;
    var w = (p*pi*d*d)/(g*4);

    document.getElementById("number_turns").innerHTML = n;
    document.getElementById("weight").innerHTML =  w;
  }
</script>

And rendering the output:

<table>
  <tbody>
    <tr>
      <td>Number of turns</td>
      <td id="number_turns"></td>
    </tr>
    <tr>
  <td>Weight (kg)</td>
  <td id="weight"></td>
</tr>  
</tbody>
</table>