The Full-Sight Jacket is a sewable electrical framework that allows the wearer to detect moving objects from behind via PIR motion sensors, an Arduino, and LED rings.
When the left motion sensor in the back of the jacket sets off, the left LED Ring animates. The same with the right side of the body. The two motion sensors have a field of overlap, so when both LED Rings go off (Both sensors go off), then that means the moving object is near your center area.
So while wearing this jacket, you can get a general sense of the location of objects moving behind you by just glancing down at your arms. However, these motion sensors go off when they themselves are moved, so you can't move your body or arms too quickly for the sensors to be accurate. Essentially, the Full-Sight Jacket can only be used practically while you're staying fairly still.
Step 1: Gather Your Materials
The components for the Full-Sight Jacket, and the links to purchase them, are as follows:
- 1x Arduino Uno (https://www.adafruit.com/products/50)
- 2x 16 Pixel RGB LED Rings (http://tinkersphere.com/led-rings/1173-16-x-ws2812-5050-rgb-led-ring-with-integrated-drivers-neopixel-compatible.html) (The one I bought isn't specifically a NeoPixel product, which is the most common brand for these ring lights, but the 16 LED NeoPixel Ring will work with this guide)
- 2x PIR motion sensors (https://www.adafruit.com/products/189)
- Portable USB battery pack (http://tinkersphere.com/raspberry-pi-accessories/833-raspberry-pi-rechargeable-battery.html)
- Half-size breadboard (https://www.adafruit.com/products/64)
- USB cable type A/B (https://www.adafruit.com/products/900)
- Conductive thread, various wires
- Hot glue
- Jacket / vest for the enclosure
Step 2: Solder and Connect the LED Rings
The RGB LED Rings will have to be soldered together. If you have the NeoPixel brand of LED Rings, then see Adafruit's guide on using the LED Ring here:
If you have the version from Tinkerspheres I used, then the soldering process is a little different, but still very simple. Solder a wire to the VCC pin, which will go to 5V power on the Arduino Uno. Solder a wire to the ground pin, which of course goes to negative / ground on the Arduino. Last, solder a wire onto the Data Input pin, and connect these wires to digital input pins 9 and 11 on the Arduino. After you've finished soldering both LED Rings, you're done!
Connect the positive and negative pins to the half-size breadboard, as you'll need to connect the motion sensors to 5V as well.
Step 3: Connect the Motion Sensors
Now it's time to connect the two PIR motion sensors the Arduino.
For technical information on the motion sensors, check this Adafruit guide:
The motion sensors already have pins on them, so there's no need to solder. Connect the power pins on the motion sensors to power on the breadboard, and the ground pins to ground on the breadboard. Connect the input pin on one motion sensor to pin 2 on the Arduino, and the other pin to pin 4.
You should have two motion sensors and two LED Rings connected to a breadboard connected to the Arduino by now.
Step 4: Check Your Connections
Double-check all your wiring before plugging in the Arduino and testing!
Here are some detailed images I have of the connections used in this guide.
Step 5: Test Your Prototype With the Code
You'll need the Arduino IDE, and Adafruit's NeoPixel library, which can be found here:
Link to the code for Full-Sight Jacket on GitHub:
Make sure that you have the corresponding left and right motion sensors and LED Rings on the correct sides, and test out the program by making a motion near the left or right motion sensor (They have about a 180 degree range of detection), and the corresponding left or right LED Ring will light up. After a few seconds, the lights will turn back off, and the sensors reset.
Step 6: Begin Adding the Electrical System Into Your Jacket of Choice!
Now it's time to begin the process of incorporating the connected components and microcontroller into your jacket.
I chose to use velcro to attach the Arduino, battery pack, and the breadboard itself in the inside of the jacket, so that the Arduino and battery pack were detachable. The Arduino Uno is a little overkill for this project, as it can be done with more compact and less expensive controllers, so it'd be good to be able to use the Arduino again for future projects. The battery pack must be charged, so it's definitely wise to keep that detachable in the jacket.
When you have the Arduino, battery, and breadboard components firmly attached, try on the jacket itself to make sure all the components are aligned and in the correct orientations. Plug in the Arduino to the battery pack, and test the sensors out on the jacket. This way, you'll get a feel of how much thread you'll need to sew and how many extra wires you'll have to add to stretch out the electrical system so that the motion sensors are on the outside of the jacket, and the LED Rings on the sleeves near the wrists.
Step 7: Stretch Your System With Wires and Thread to Fill the Jacket
Now that you have all your components nestled inside your jacket, you'll have to sew conductive thread around the wires and add extra wires so that the motion sensors can be placed equidistant on the back of your jacket, and so that the LED Rings can be sewn to the outside of your jacket sleeves.
Since every jacket won't be the same size, you'll have to measure and cut the threads to match what's represented in the photos proportionally, or you can do it all to your own specifications from here, now that you have all the components connected and the software running!
You can either use conductive thread and sew the wires to the thread, then stitch that across the jacket, or, you can do what I did, which was to just solder multiple wires together to form one very long one. While the wiring solution is less elegant than stitching, full access to voltage for the motion sensors is very important in order for them to be accurate. A sewing solution, unless very sturdy and supported, probably won't carry electricity as well as the soldered wires.
If you're using just wires, all you need to do is to hot glue everything in place. If you're sewing, you can stitch both motion sensors and both LED Rings as they all have holes; however, you should still hot glue them in place so they're extra sturdy.
Step 8: Cut Out Holes on the Jacket for the Motion Sensors
Each motion sensor is to go on the back of the jacket, near the shoulderblade area, for the left and right sides of the body. Measure out the positions and mark the places on the inside of your jacket, and make a small hole on the marks with a knife.
Gradually make the holes larger until you can push the motion sensor out of the holes. Really push hard to make it go through, so that you don't have to cut the hole any larger than it has to be.
Each motion sensor has two holes for thread to be sewn through. Sew the motion sensors tightly in place. Because they're close together, the motion sensors will have a field of overlap. This way, when both sensors go off, both LED Rings light up, so you know that the moving object was detected near your center area. If it's the left LED Ring, then you know it's on your left, and of course the right LED Ring for the right sensor.
Step 9: Sew / Glue the LED Rings Onto the Sleeves
The 16 Pixel RGB Led Rings have holes as well so that they may be sewed. Measure out distances and lightly mark the places where you'd like the LED Rings to be on your sleeves, In this guide, the LED Rings are placed about an inch below the start of the wrist. The LED Rings are sewn on the side so that they face you when your palms are facing you.
Step 10: Bonus: Add a Power Switch!
I was not able to do this in time, but you go ahead!
Step 11: Refine and Personalize Your Design
When everything's finished, connected, and tested, take the hot glue gun and glue every wire in place on the Arduinos, breadboard, and sensor. Be careful not to get too messy, but the hot glue will really help keep everything in place permanently.
Try spray-painting the motion sensors before sewing so that they match the color of your jacket, or draw directly on them with sharpies. Note: I haven't tested this out yet, so I'm not sure if adding these decorations on the sensors will affect their sensitivity / how well they pick up motion; it's definitely something to test slowly as you go.
The Arduino and breadboard are open and vulnerable attached inside your jacket. Try molding some fabric (Using something like foamboard for the structure) so that a smooth, softer covering for the electrical components can be developed. Edit the code! Play around with the animations, color choices.