Introduction: Neopixel Dress: PROTOTYPE

About: Student at University of West Florida studying Digital Art will be graduating Fall of 2019. Plan to use this site to document my electronic projects and possibly other things.

For my electronics art class, we are making wearables for the Pensacola Maker Faire. I was inspired to make this dress to be able to work with conductive thread and sewable neopixels. This is a decorative/fashion piece using an Arduino and Doppler Radar Motion Sensor to keep the dress blinking with lights. Laura Dempsey made a motion-sensitive dress for Make Fashion. Her craft to the dress is well executed and is part of my inspiration. I'm also excited by Dutch fashion designer Iris Van Herpen for her unique forms she creates using many materials on her pieces. These fashion icons are references to what I researched. I've decided to laser cut glittery fabric to attach to the dress to unify the neopixels in the round. The neopixels will be under a sheer lining the dress has. The housing of the Arduino will be a pouch and belt attached under the dress of the wearer. It will run off 9V battery and twinkle away with many colors.

I hope to show a unique use of soldering + sewing for electronics.

(This is the prototype instructable and will not show the completed project, there will be a second instructable containing the entire project.)

Step 1: Supplies List

(This project is a prototype and will not include completion with all items.)

Step 2: Fritzing Schematic

Although this is not what my circuit will actually look like, since the connections between each neopixel will be much further away on the dress, but this helps simplify and lay it out.

Step 3: Breadboard

I tested all neopixels with the breadboard. It turns out after doing more research I don't need the resistor or capacitor components because all the neopixels will be sewn with the conductive thread.

Step 4: The Code

/*

* Rachel's hack for flora neopixel and doppler motion sensor * */ byte neopix_gamma[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25, 25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36, 37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50, 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89, 90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114, 115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142, 144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175, 177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213, 215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };

#include #ifdef __AVR__ #include #endif

#define PIN 6

#define NUMPIXELS 7

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int delayval = 10; // delay for half a second

int Sensor = 2; //Input Pin int LED = 6; // Led pin for Indication

int flg = 0; //Change detection flag void setup() { Serial.begin(9600); strip.begin(); // This initializes the NeoPixel library. strip.setBrightness(50); pinMode (Sensor, INPUT); //Define Pin as input pinMode (LED, OUTPUT); //Led as OUTPUT Serial.println("Waiting for motion"); }

void loop() { int val = digitalRead(Sensor); //Read Pin as input if((val > 0) && (flg==0)) { digitalWrite(LED, HIGH); Serial.println("Motion Detected"); flg = 3; rainbowFade2White(1,5,5); } else { colorWipe(strip.Color(0, 0, 0), 5); // none }

if(val == 0) { digitalWrite(LED, LOW); flg = 0; colorWipe(strip.Color(0, 0, 0), 5); // none } delay(10); Serial.print("val is "); Serial.println(val); Serial.print("flg is "); Serial.println(flg); }

void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) { float fadeMax = 100.0; int fadeVal = 0; uint32_t wheelVal; int redVal, greenVal, blueVal;

for(int k = 0 ; k < rainbowLoops ; k ++){ for(int j=0; j<256; j++) { // 5 cycles of all colors on wheel

for(int i=0; i< strip.numPixels(); i++) {

wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) & 255);

redVal = red(wheelVal) * float(fadeVal/fadeMax); greenVal = green(wheelVal) * float(fadeVal/fadeMax); blueVal = blue(wheelVal) * float(fadeVal/fadeMax);

strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );

}

//First loop, fade in! if(k == 0 && fadeVal < fadeMax-1) { fadeVal++; }

//Last loop, fade out! else if(k == rainbowLoops - 1 && j > 255 - fadeMax ){ fadeVal--; }

strip.show(); delay(10); } }

delay(10);

for(int k = 0 ; k < whiteLoops ; k ++){

for(int j = 0; j < 256 ; j++){

for(uint16_t i=0; i < strip.numPixels(); i++) { strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) ); } strip.show(); }

delay(0); for(int j = 255; j >= 0 ; j--){

for(uint16_t i=0; i < strip.numPixels(); i++) { strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) ); } strip.show(); } }

delay(10); } void colorWipe(uint32_t c, uint8_t wait) { for(uint16_t i=0; i> 16); } uint8_t green(uint32_t c) { return (c >> 8); } uint8_t blue(uint32_t c) { return (c); }

Step 5: The Prototype

I used numerous alligator clips to test all my neopixels together in a circuit with the Arduino and doppler radar sensor. The test was my prototype and to guarantee all would work together without the resistor or capacitor. They all worked but the only problem was alligator clips being in the way and causing loose connections. If able to download the video shows the sensor in action.

Step 6: The Shield (Working Towards Final Product)

The only soldering I had to do was making my shield for the Arduino and the wires that go out from the sensor and neopixel connections. It was quite easy and most of the work goes into the sewing aspect which you can see on my final instructable for the project.

After ruining one neopixel later I thought of doing this with the wire to create a loop to be able to sew onto the dress. It was quite simple and only need stranded core wire, wire cutters, wire strippers, and small jewelry pliers to twist the wire onto itself. First, you cut the wire length needed, make sure you think about how much length you'll need to make the loop. Then you will strip the part of wire that will be made into the loop. Next, you take the pliers and twist from the end into the wire to create a circle and can loop the end onto the top to make sure the wire is touching each other. Finally, you secure using the solder on the wire loop.

Step 7: Other Thoughts

The biggest thing I've learned during this project was finding a way to successfully connect soldering wires to sewing with conductive thread(pictured). I used this neopixel as a test with one connection and then used alligator clips for the other two connections. It was successful and I felt at ease to finally start sewing the neopixels onto the dress. This also allowed me to practice sewing with the conductive thread before starting the dress.

I also learned how to use a laser cutter and the many materials able to be used on this machine. Like cutting fabric (pictured) to get precise detailed drawings. I revised the outline and made the waves thicker. Since I will probably sew the fabric onto the dress it would be easier to manage if slightly bigger.

My final instructable with the dress completion will be done in a few weeks. Hopefully, all neopixels will work. I'm worried some may be loose because the fabric is a little stretchy and being my first time sewing with the conductive thread. I have just the power lines to sew and to check lines with multimeter. I checked the data line and it showed a read of a secure connection.

View the final project here: https://www.instructables.com/id/Neopixel-Motion-Dress/

Multi-Discipline Contest

Participated in the
Multi-Discipline Contest