Text editor powered by tinymce.
Light-Up Angler Fish Embroidery
Overview
Tools & Supplies
- FLORA main board
- 1 FLORA RGB NeoPixel
- 3xAAA battery pack or 150mAh LiPo battery
- Conductive thread
- A single sew-on snap
- Standard thread
- Embroidry floss in your choice of colors
-
Dark blue shorts
Text editor powered by tinymce.
Layout & Circuit Diagram
D6 is the data bus for the NeoPixel, VBATT and GND also connect to + and - on the pixel. A snap is used as a switch-- one half is connected to GND and stitched to the body of the fish, and the other to TX (aka D1, any digital pin will work), and sewn to the back of the fin so you can snap and unsnap it at will. You can print out the fish pattern on transfer paper or just use it as a reference.
You an adapt this project for Gemma by changing the button pin to be Digital #0 or #2 and the NeoPixels on Digital #1 - the code will also need adjustments for the new pin connections
Text editor powered by tinymce.
Sew Circuit
Begin tightening the knob on the outer ring and also pulling the fabric taut in the hoop.
Thread a needle with 2-ply conductive thread and pierce the fabric from back to front next to the pad marked D6 on FLORA.
Leave a 5" tail at the back of the fabric and make a few stitches through the D6 hole, securing it to the pant leg.
Learn more tips over at our Conductive Thread guide!
Knot and seal at the back, then cover the snap by folding the fabric in half.
Stitch two lines as shown in plan thread, creating the shape of a fin. Cut off excess fabric about 1/4" from the seam and turn the fin right side out.
You should have a long piece of conductive thread coming from the inside of the fin.
Line up the snap on the fin and snap together, then stitch the fin to the body with plain thread.
Pick up the conductive thread tail coming out of the fin and use it to stitch a path to TX (aka D1, or any digital pin) on FLORA.
These two parts will serve as a switch, detectable when you snap and unsnap the fin.
Text editor powered by tinymce.
Code
First test out your pixel's connections by uploading the sketch in File >> Examples >> Adafruit_NeoPixel >> strandtest.
Then upload the code below to make the pixel change color when the snap is connected/disconnected:
#include <Adafruit_NeoPixel.h> // Parameter 1 = number of pixels in strip // Parameter 2 = pin number (most are valid) // Parameter 3 = pixel type flags, add together as needed: // NEO_RGB Pixels are wired for RGB bitstream // NEO_GRB Pixels are wired for GRB bitstream // NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels) // NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip) Adafruit_NeoPixel strip = Adafruit_NeoPixel(1, 6, NEO_GRB + NEO_KHZ800); const int buttonPin = 1; // the fin snap is connected to FLORA TX, the other half of the snap is conntected to GND int buttonState = 0; // variable for reading the snap status void setup() { strip.begin(); strip.show(); // Initialize all pixels to 'off' // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); digitalWrite(buttonPin, HIGH); } void loop() { // read the state of the pushbutton value: buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState == LOW) { // turn LED on: strip.setPixelColor(0, strip.Color(200, 211, 254)); // color when snap is connected strip.show(); } else { // change LED color strip.setPixelColor(0, strip.Color(250, 0, 0)); // color when snap is disconnected strip.show(); } delay(50); }
#include <Adafruit_NeoPixel.h> // Parameter 1 = number of pixels in strip // Parameter 2 = pin number (most are valid) // Parameter 3 = pixel type flags, add together as needed: // NEO_RGB Pixels are wired for RGB bitstream // NEO_GRB Pixels are wired for GRB bitstream // NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels) // NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip) Adafruit_NeoPixel strip = Adafruit_NeoPixel(1, 6, NEO_GRB + NEO_KHZ800); const int buttonPin = 1; // the fin snap is connected to FLORA TX, the other half of the snap is conntected to GND int buttonState = 0; // variable for reading the snap status void setup() { strip.begin(); strip.show(); // Initialize all pixels to 'off' // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); digitalWrite(buttonPin, HIGH); } void loop() { // read the state of the pushbutton value: buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState == LOW) { // turn LED on: strip.setPixelColor(0, strip.Color(200, 211, 254)); // color when snap is connected strip.show(); } else { // change LED color strip.setPixelColor(0, strip.Color(250, 0, 0)); // color when snap is disconnected strip.show(); } delay(50); }
You an adapt this project for Gemma by changing the button pin to be Digital #0 or #2 and the NeoPixels on Digital #1 - the code will also need adjustments for the new pin connections
Text editor powered by tinymce.
Hand Embroidery
Text editor powered by tinymce.
Battery
Bring the male end of the JST extension cable through the hole from the back of the fabric to the front, then plug it into FLORA.
Route the extension cable up to the pocket, in which you should also cut a small hole.
You can now plug the battery pack in through the pocket of the shorts!
We recommend powering this project with our 3xAAA holder.
Remove the battery for washing and turn the shorts inside out before washing by hand. Allow to dry thoroughly before plugging the battery back in.
For a smaller battery option, try our tiny lipo battery and micro lipo USB charger. Be sure to heed all safety warnings about lithium polymer batteries and do not use them unless you are comfortable with power supplies.
Text editor powered by tinymce.
Wear it!
Text editor powered by tinymce.