Sunday, December 15, 2013

Technical Weaving

Last week I modified a loom to allow me to weave technical wire ribbons. We use a lot of very fine wire at work, to connect stuff at 300K to stuff at 130mK. Yep, 0.1 degrees above Absolute Zero. We need to use wire that has low thermal conductivity, or we will overwhelm our refrigeration capacity. So we use wire made of manganin alloy, or brass, or some other disordered solid, and use very small diameters.

One way to organize the wire is to line the wires up parallel in a loom, as the warp threads in a weave. The thread adds mechanical stability and strain relief without adding much in the way of thermal conductivity.

I started with the Cricket Rigid Heddle Loom from Schacht Spindle. I removed the rigid heddle plates from the frame bars, and added a pair of aluminum plates to hold the heddle frame together. With one plate off, I put the warp on the loom in a manner very similar to warping an Inkle style loom. I use a pair of double heddles made of thread, so I can make the wire warp continuous, so I don't have to tie each wire length off.

These photos show the test weave, using 26 gauge uninsulated brass wire. The wire we will use for the instruments is 0.005" or 0.003" diameter formvar jacketed twisted pair manganin wire. I used polyester thread for the practice weave. We will use Nomex flame resistant thread for the instrumentation cables.

Code

Here's the code for the dress shirt:

-------------------------------------------------

//dress_shirt_v5_slow_color
//dress shirt slow color change, Paul Mirel 20131214
//Open Source. You may use or modify this code any way you wish.
//this code sets two pixels to two different, slowly changing colors. Both start green, and then drift away from each other.
//I based it on the Adafruit NeoPixel sample code.
//The recursive delay I added to rainbow() is a brute force way to get longer delays than the 8 bit integer allows.



#include <Adafruit_NeoPixel.h>

#define PIN 6

// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(2, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

void loop() {
  rainbow(32); //slow color change for cocktail parties
  //rainbow(4); //faster color change for debugging

}


void rainbow(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) {
    strip.setPixelColor(0, Wheel(j & 255));
    strip.setPixelColor(1, Wheel((255-j) & 255));
    //strip.setPixelColor(1, Wheel((j+16) & 255));
    strip.show();
  for (i=0; i< wait; ++i) {
       delay (wait);
    }

  }
}



// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  if(WheelPos < 85) {
   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  } else if(WheelPos < 170) {
   WheelPos -= 85;
   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else {
   WheelPos -= 170;
   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
}

Saturday, December 14, 2013

Adafruit Flora

Hi Everybody! Welcome to my new blog. I build a lot of really interesting stuff, so I am going to share some of it here.

I made my first project with the Adafruit Flora today. I sewed NeoPixel LEDs into the collar points, and wrote code to change the color slowly, so it's constantly interesting, and not too flashy. The Flora is a special Arduino platform made by Adafruit specifically for sewing. The NeoPixels are RGB LEDs that can be controlled using only one serial line from the Flora. They have shift registers built in, so the first one in the chain is pixel 0, the second one pixel 1, and so on. Great fun!