Sunday, May 6, 2018

Build and Final Test

Building and Final Test


I have taken several steps in order to make my backpack a successful project. I decided to sketch out how I wanted to place the LED's on the bag. I also decided to sketch out the circles that I wanted to incorporate on the bag. I decided that I wanted the LED's to remain connected to illustrate an illuminated chase of light. Here's a list of items needed to build my bag:

1. painters tape
2. needle
3. white thread
4. container for Arduino
5. speaker wire tubing
6. rechargeable power supply


First

I wanted to re-engineer the clear backpack because it came with mesh pockets on either side of it that I felt were too distracting. I removed the mesh and began to shape the bag. The bag arrived via Amazon smashed in a box. 


Next

I needed to measure the LED's to their corresponding sides of the backpack. I decided that labeling the cut length LED's should be numbered in order to keep there exact placement exact. I drew out the circle and began to cut individual LED sections from the strip and place them an approximate distance in order to make a circle. I also had to solder the power, ground and data wires to each individual LED to create a chain that would then be reconnected to the other two strips that I have now cut and set aside.


Secondly

I now had to secure the LED's to the backpack by utilizing the painter's tape. Once, I had all the LED's in place and tape, I began to sew the LED's down to the backpack with white thread in order to keep the bag as translucent as possible and minimize any distracting colors or objects.

Third,




Once, I got the LED's sewed in, I needed to install the power supply and Arduino case (I found a portable drive case to use as the Arduino case) to the bag. I plugged everything in and I got no reaction. Oh, no...


Fourth

The LED's are not working. It would seem that I somehow crossed the power wire from the circle to the main strip with the ground wire. I was very lucky to discover that this mistake did not blow out the LED strip or cause a surge in my Arduino Uno. I found the bad connection and resoldered the strip. 

Fifth

Yureka, it works. The strip, code, Arduino, and radar are all working harmoniously. 
Somehow in my journey, I plugged the sensors power jumper into the 5V port on the Arduino and the LED's power jumper into the 3.3V port. I was happy that this did not cause a burnout but I discovered during my final critique in class that it was causing the Arduino to shut off everytime the LED's would fire off the first time. Thank you, Thomas, for pointing this exhausting error out. By putting the LED's on the 5V port and the sensor on the 3.3V port, my project fired up once it detected movement. Success...I am including the final code on the bottom and the final video of it working as well. Thanks for reading and viewing ...Please keep an eye out for backpack version 3 here in the future.

Here's the code:
#include <Adafruit_NeoPixel.h>
#define PIN 3
#define NUM_LIGHTS  80
// revised by Slem Lucio May 2nd, 2018
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LIGHTS, PIN, NEO_GRB + NEO_KHZ800);
const int mwPin = 2;     // the number of the pushbutton pin
      // the number of the LED/Buzzer pin

// variables will change:
int mwState = 0;         // variable for reading the pushbutton status
int motionCount = 0;     // variable 

void setup() {
  // initialize the LED pin as an output:
  pinMode(PIN, OUTPUT);
  // initialize the pushbutton pin as an input:
  //pinMode(buttonPin, INPUT);
  attachInterrupt(0, handler, CHANGE);
  Serial.begin(115200);
  Serial.println("Hello");
}

void loop() {
  // Nothing to see here :)
}

// The handler is called via interrupt and does all the hard work
void handler() {
  // read the state of the pushbutton value:
 uint32_t low = strip.Color(0, 0, 0); 
    uint32_t high = strip.Color(255, 255, 255);
  mwState = digitalRead(mwPin);

  // check if the Microwave sensor is HIGH.
  // if it is, set the ledPin HIGH and report the count
  if (mwState == HIGH) {
    // turn LED on:   
    motionCount++;
    digitalWrite(PIN, HIGH);
    Serial.print("Motion: ");
    Serial.println(motionCount);
for( int i = 0; i<NUM_LIGHTS; i++){
        strip.setPixelColor(i, high);
        strip.show();
}
for( int i = 0; i<NUM_LIGHTS; i++){
        strip.setPixelColor(i, low);
        strip.show();
  }
  }    else {
    // turn LED off:
    digitalWrite(PIN, LOW);
}
}

Please feel free to visit my Instructableshttps://www.instructables.com/id/LED-Microwave-Radar-Backpack/

Here's the video:



Microwave Radar continued...

Microwave Radar continued...


I have tested the microwave radar and after modifying it to the specs that I needed, I was able to get 

the code, the Arduino, and the radar to successfully work together. Now, I need to check my LED's 

to make sure they still work. Oops, nope, they do not work? I discovered a break on the strip that 

prevented the LED's from lighting up.  I had to re-solder the bad connection. I used the same test

code from the proximity backpack to check them. Thank you Dr. D-Flo for the in-

depth explanation of how to properly power on your LED's. He provides a lot of useful information,

but he also explains that this information is should be adapted to your particular needs. Here's the

link to the how to connect your LEDs video: https://youtu.be/bdIij70_VN0 and here is the link to the

test code: https://github.com/adafruit/Adafruit_NeoPixel


LED's Working with Radar

Radar synch with LED's


Thanks to discovering were the interrupts, I was able to successfully test my final test code.


Proximity vs Microwave Radar

Proximity vs Microwave Radar

 Phase II:
I discovered that the proximity had a limited proximity to detection of only a few centimeters and did not successfully net my end goals for the backpack. After extensive research, I found that other DIY individuals found great success with their projects utilizing microwave radar sensors. I search for the best inexpensive radar on the market and stumbled on the WHDTS 2.25GHz microwave radar detector module with a detection range 6 to 9 meter. This would prove to be exactly what I needed to and it would also change the name of my project to the microwave radar backpack.  

The XYC-WB-DC microwave chipset comes with several dedicated resistors, transistors and power regulator. The microwave radar works by sending out microwave signals that detect the movement of an object within its field of view when the signal is bounced back to the radar.  

Humor: I began to solder my components and discovered that my soldering iron was no longer working. After I tried unplugging, cleaning, and moving the heating element around, I decided to take the iron apart. I discovered that one of the wires connected to the heating element was disconnected. I taught myself;” How do I solder a soldering iron?”. Yup, it happens, but I was able to firmly push it back together and it soon started to heat up again.


I found some test code for XYC-WB-BC and I was able to check the accuracy of the radar.  I discovered that the XYC-WB-BC was under-powered and unable to detect anything within its prescribed specs of 6 to 9 meters. Instead, I got a constant register at approximately 12 inches from the sensor using the serial monitor with the Arduino software.

I now needed to figure out how to achieve the 6 to 9 meters of detection that was guaranteed by WHDTS. I found a fantastic video on youtube by Blair Thompson, ‘Modifying an XYC-WB-DC Microwave Motion Sensor for use in a Sonoff SC’, that illustrates how to basically give the chipset a boost. He adds a variable Bournes 0-100k resistor to his modification. I discovered that adding the variable resistor would not be necessary to achieve a 6-meter distance with this modification (in his defense, he does state that adding the variable resistor was over-kill).

Now, that I have my modification done, I was able to utilize Blair’s code to check the radar with the Arduino Uno. Blair’s code basically states that if the radar triggers then the LED pin 13 will go high and lights up and prints to the serial bus. If the sensor goes low then it turns the LED off.

I am happy to report that this was a successful test. Here's the link to his video: https://youtu.be/41rf6NbuhBs and here is the link to the test code: https://github.com/Justblair/microwaveTester. Thank you, Blair.
I soldered together two microwave radars with the intention of creating a 360-degree field of visual stimuli but I was running short on time and was unable to add the second radar. I am including a video that illustrates putting it together.






LED Backpack Revised

Microwave Radar Backpack

Phase1: I need to recycle any salvageable parts and accessories from the proximity backpack project.

I was able to remove most of the wiring and devices without any problems. I will be using the following from my prior project; male and female jumpers, 9V batteries, Arduino Uno, WS2812B 30 pixel (5 meters), USB power cable, breadboard, 470 Ohm resistor, 1000 uF Capacitor. I purchased a clear backpack to enhance the amount of light emitted. I also wanted to explore the bio-luminesces that are exhibited by deep-sea jellyfish. My goal is to create a visual stimulus for anyone within a 180-degree radius.