Patent Publication Number: US-10332374-B2

Title: Apparatus and method for detection of movement behind wearer of wearable device and signal

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is a continuation of U.S. patent application Ser. No. 15/802,548 filed on Nov. 3, 2017, which claims priority to U.S. Provisional Patent Application No. 62/416,947, filed Nov. 3, 2016, which are hereby incorporated by reference. 
    
    
     COPYRIGHT NOTICE 
     The figures included herein contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of this patent document as it appears in the U.S. Patent and Trademark Office, patent file or records, but reserves all copyrights whatsoever in the subject matter presented herein. 
     TECHNICAL FIELD 
     The present invention relates generally to detection of movement and, more particularly, to a method of detection of movement from behind a wearer of a wearable device and providing a signal of that movement to the wearer of the wearable device. 
     BACKGROUND 
     A need has been found for walkers and runners in an environment where a faster moving person or a person on a vehicle, such as a bicycle, may approach a walker/runner from behind on a walking/running path, bicycle path, road or similar area where walkers, runners and bicycles (or other vehicles) are used, particularly when a walker or runner is using earphones and listening to music or something transmitted into the earphones or earbuds. A Bluetooth-enabled device can be worn on the backside of an individual (belt, collar, waistband, shoe, hat or similarly attached to communicate rearwardly) that detects movement approaching the wearer from the rear and interrupts or otherwise alerts the person to the oncoming danger, be it accidental danger, intentional danger (in the case of a mugger), or as an added measure of self-awareness, such as a construction worker having a person or persons located in the same area or working in the same area behind the worker. Upon detection of movement, the device can vibrate, emit a sound or transmit another signal to the wearer&#39;s cell phone App which then can be transmitted to the user&#39;s earphones, headphones, earbuds, and/or can emit a signal directly from the cellphone or other device. The technology described can also be built into and integrated directly within a cell phone, if so desired, potentially using the processor, sensor or battery already present within the cell phone. 
     Depending on settings and preferences, the App can cause the cell phone or wearable device to vibrate, emit a custom alarm or send a tone to earphones, headphones or earbuds to notify wearer of a person (or person on a bicycle, etc.) approaching from the rear. The wearer can set the App for various possible scenarios, with potential different resulting alarms or tones. 
     SUMMARY 
     The device of the present invention is a Bluetooth or other near field communication enabled device worn on the back or side of an individual (belt, collar, waistband, hat or similarly attached). The unit contains a proximity sensor(s) (temperature, ultrasonic, infrared, laser, etc.) that detects movement or approaching person (person, person on vehicle, etc.) from the rear or sides of the wearer, and which then activates a signal to the user. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Advantages of the present invention will be readily appreciated as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings wherein: 
         FIGS. 1 a , 1 b , and 1 c    are plan schematic views indicating a wearer  1  moving down a path where other persons and vehicles ( 2 ) may be encountered from behind the wearer  1  as the wearer  1  moves in the direction of the arrow A; 
         FIGS. 2 a , 2 b , and 2 c    illustrate running path environments where walkers and runners as wearers  1  are exposed to vehicles, such as bicycles  2 ; 
         FIGS. 3 a , 3 b , and 3 c    are examples of placements of the device  3  (or  3   a ) of the present invention on a wearer  1 ; 
         FIG. 3 a    illustrates a wearer  1  having an operating device for an App  3   a  integrated with headphones/earbuds  6  that are used during a walk or run; 
         FIGS. 3 b  and 3 c    illustrate a wearer  1  having a separate device  3  which communicates with the music or other sound transmission device  5  and sends signals through earbuds/headphones  6 ; 
         FIGS. 4, 5, 6, 7, 8, and 9  illustrate a device that can be used as a separate device;  FIG. 4  is a rear elevational view of the device; 
         FIG. 5  is a front elevational view of the device; 
         FIG. 6  is a right side elevational view of the device; 
         FIG. 7  is a left side elevational view of the device; 
         FIG. 8  is a top elevational view of the device; 
         FIG. 9  is a bottom elevational view of the device; 
         FIG. 10  is a schematic diagram of the device; 
         FIG. 11  is a circuit board corresponding to  FIG. 10 ; 
         FIG. 12  ( 12 A,  12 B and  12 C) is a flow chart of the described process; and 
         FIG. 13  illustrates a depiction of visual alert on a smart telephone in reception from  FIG. 11 . 
     
    
    
     DETAILED DESCRIPTION 
     Upon detection of movement or object, the device  3  of the present invention can vibrate, emit a sound, or transmit another signal to a wearer&#39;s ( 1 ) phone App  4  and/or earbuds/headphones  6 . Depending on settings and preferences, the device  3  (or the App  4 ) can cause the device  3 , or even a separate device  3   a , to vibrate, emit a custom alarm, send a tone to earbuds/headphones  6 , either through the App  4  or directly from the device  3  or  3   a , or otherwise signal the wearer  1 . The device  3  or  3   a  uses these communication methods as a means to notify the wearer  1  of an object  2  (person, car, bike, etc.) approaching or moving in the rear or side areas of the wearer  1 . The technology described can also be built into and integrated directly within a cell phone if so desired potentially using the processor, sensor or battery already present within the cell phone. 
     The device  3  or  3   a  uses proximity sensor(s) (temperature sensitive, ultrasonic, infrared, etc.) to detect movement or approaching objects from the rear or side of the wearer  1  toward the wearer  1 , such as, for example, in  FIG. 2 a    where a person on a bicycle  2  approaches a running wearer  1  on a path. 
     The sensor(s) will detect this movement from close to the user up to a 20-50 foot distance or greater, depending on the sensor choice, user preference and localized conditions. As shown in  FIGS. 1 a , 1 b , and 1 c   , the sensor will operate when the wearer  1  is moving or stationary. 
     The device uses Bluetooth, other wireless near field communication or hard wired signals to transmit information (tone, alarm, mute volume, vibrate, etc.) to either a cellular phone App  4  operating in a device and/or earbuds/headphones  6  when movement towards the device is detected to be within range as set for the wearer  1  and/or by the wearer  1 . The earbuds/headphones  6  can be hard wired or Bluetooth technology or have similar remote connection with the device  3  or  3   a . Information from the device sensor(s) information may be conditioned and further transmitted either by a cellular phone App  4  or by a separate device  3   a  itself depending on user preference. 
     The device sensor with or without additional hardware such as phone or signal conditioning unit, is worn on the back or side of an individual wearer  1  (belt, collar, waistband, hat, strap, headband, hair band or similarly attached) to preferably detect someone  2  rearwardly of the user  1 .  FIG. 3 b    discloses the device  3   a  on a hoe of a runner or walker, but it is preferred that the device  3  or  3   a  be located in the torso (back, such as at the waistline) or arm (back of bicep) area of the body of the runner or walker  1  for more effective and consistent results. 
     As shown in  FIGS. 4, 5, 6, 7, 8, and 9 , the present invention is attachable as a separate device  3   a  and includes sensors  10 , power circuitry/signal conditioning  12 , a vibration and/or volume control  14  (for a vibrating element or a speaker), a clip attachment  16 , a slide  18  to control the intensity/sensitivity of the sensors  10 , a power (on/off) switch  20 , a Bluetooth transmitter  22  (and/or may be a Bluetooth receiver), and a USB port  24 . The device  3   a  would be constructed of lightweight polymeric materials with enclosed interior circuitry. The device  3   a  could be made water resistant or even waterproof in the manufacturing process as needed by customers. Although two sensors  10  are shown in  FIGS. 4 and 5 , it is also within the scope of the invention to use one sensor, such as a temperature sensor, in such a device  3   a.    
     A schematic diagram 100 of the device  3   a  having a Bluetooth connection is illustrated at  FIG. 12  ( 12 A,  12 B and  12 C). A thermal sensor  105  is connected to a microcircuit  110  which also connects with a Bluetooth controller module  115  having its own microcircuit  120 . The microcircuit  110  is preferably a Teensy3.2 from Fritzing as shown in  FIG. 11  in a breadboard versions, where the microcircuit  110 , controller module  115  and thermal sensor  105  are pinned onto a board  101  and connected as shown for proof of concept. The Bluetooth controller module  115  includes a US3 wireless Bluetooth HC-06 unit as shown. The thermal sensor  105  is a MLX90621 Arduino thermopile array sensor. The preferable setting for sensing is between 33 degrees C. and 37 degrees C. as an optimum setting to sense a human body from a safe distance. Typically the sensor performs best at an operating voltage of 2.8 volts, so a regulator is also usually used. 
     A battery  125 , preferably a 3 volt lithium-ion battery, is wired to the microcircuit  110  in a conventional manner. The battery  125  is also connected to a charge management circuit  127  and secured in a manner to be rechargeable in a conventional manner with the circuit  127  as illustrated. The battery charge management circuit  127  includes an on/off switch  128 . The connection is shown twice in  FIG. 10  where “VCC”  129  of the circuit  127  connects to (or continues as) “VCC”  131  of the microcircuit  110 . 
     Software is disposed in the microcircuit in a programmable module. The following program is an example of the software code used for the Teensy3.2 (Arduino) with background code included. 
     
       
         
           
               
             
               
                   
               
             
            
               
                 #define BLYNK_MAX_SENDBYTES 256 
               
               
                 #define BLYNK_PRINT Serial 
               
               
                 #include &lt;SimpleTimer.h&gt; 
               
               
                 #include &lt;i2c_t3.h&gt; 
               
               
                 #include “MLX90621.h” 
               
               
                 #define LED 13 
               
               
                 #define HWSERIAL Seriall 
               
               
                 #include &lt;BlynkSimpleSerialBLE.h&gt; 
               
               
                 // You should get Auth Token in the Blynk App. 
               
               
                 // Go to the Project Settings (nut icon). 
               
               
                 char auth[ ] = “e2c9345047ca40e18bbe31684304381d”; 
               
               
                 MLX90621 sensor; // create an instance of the Sensor class 
               
               
                 SimpleTimer timer; 
               
               
                 void sendSensor( ){ 
               
               
                  sensor.measure( ); //get new readings from the sensor 
               
               
                  int h=0; 
               
               
                  int i=0; 
               
               
                  int j=0; 
               
               
                  int k=0; 
               
               
                  int l=0; 
               
               
                  int m=0; 
               
               
                  int n=0; 
               
               
                  for(int y=0;y&lt;4;y++){ //go through all the rows 
               
               
                   for(int x=0;x&lt;16;x++){ //go through all the columns 
               
               
                   double tempAtXY= sensor.getTemperature(y+x*4); // extract the  
               
               
                 temperature at position x/y 
               
               
                   if(tempAtXY &lt; 29) h++; 
               
               
                   if(tempAtXY &gt; 29 &amp;&amp; tempAtXY &lt; 31) i++; 
               
               
                   if(tempAtXY &gt; 31 &amp;&amp; tempAtXY &lt; 33) j++; 
               
               
                   if(tempAtXY &gt; 33 &amp;&amp; tempAtXY &lt; 35) k++; 
               
               
                   if(tempAtXY &gt; 35 &amp;&amp; tempAtXY &lt; 37) l++; 
               
               
                   if(tempAtXY &gt; 37 &amp;&amp; tempAtXY &lt; 39) m++; 
               
               
                   if(tempAtXY &gt; 39) n++; 
               
               
                    } 
               
               
                   } 
               
               
                   Serial.print(“ Values &lt; 29:  ”); Serial.println(h); 
               
               
                   Serial.print(“ Values &gt; 29 &amp; &lt; 31: ”); Serial.println(i); 
               
               
                   Serial.print(“ Values &gt; 31 &amp; &lt; 33: ”); Serial.println(j); 
               
               
                   Serial.print(“ Values &gt; 33 &amp; &lt; 35: ”); Serial.println(k); 
               
               
                   Serial.print(“ Values &gt; 35 &amp; &lt; 37: ”); Serial.println(l); 
               
               
                   Serial.print(“ Values &gt; 37 &amp; &lt; 39: ”); Serial.println(m); 
               
               
                   Serial.print(“ Values &gt; 39:  ”); Serial.println(n); 
               
               
                   Blynk.virtualWrite(V5, k); 
               
               
                   Blynk.virtualWrite(V6, l); 
               
               
                   Blynk.virtualWrite(V7, m); 
               
               
                   Blynk.virtualWrite(V8, n); 
               
               
                   digitalWrite(LED, LOW); 
               
               
                   if(m&gt;0) { 
               
               
                   Blynk.email(“prasanndutt.bitmesra@gmail.com”, “Human Alert”,  
               
               
                  “Approach detected!!!”); 
               
               
                   BLYNK_LOG(“Mail sent”); 
               
               
                   Blynk.notify(“Approach detected!!!”); 
               
               
                   BLYNK_LOG(“Push Notification sent”); 
               
               
                   digitalWrite(LED, HIGH); 
               
               
                   } 
               
               
                   Serial.print(“\n”); 
               
               
                   //delay(1000); 
               
               
                   } 
               
               
                   void setup( ) 
               
               
                   { 
               
               
                   // Debug console 
               
               
                   Serial.begin(9600); 
               
               
                   pinMode(LED, OUTPUT); 
               
               
                   HWSERIAL.begin(38400); 
               
               
                   Blynk.begin(HWSERIAL, auth); 
               
               
                   Serial.println(“trying to initialize sensor...”); 
               
               
                   sensor.initialise (16); // start the thermo cam with 8 frames per second 
               
               
                   Serial.println(“sensor initialized!”); 
               
               
                   BLYNK_LOG(“sensor initialized!”); 
               
               
                   timer.setInterval(2000L, sendSensor); 
               
               
                   Blynk.email(“prasanndutt@gmail.com”, “BackEye ON”,  
               
               
                   “Wooo Hooo!!!”); 
               
               
                   BLYNK_LOG(“Mail sent”); 
               
               
                   Blynk.notify(“BackEye Switched ON!!!”); 
               
               
                   BLYNK_LOG(“Push Notification sent”); 
               
               
                   } 
               
               
                   void loop( ) 
               
               
                   { 
               
               
                   Blynk.run( ); 
               
               
                   // You can inject your own code or combine it with other sketches. 
               
               
                   // Check other examples on how to communicate with Blynk.  
               
               
                   Remember 
               
               
                   // to avoid delay( ) function! 
               
               
                   timer.run( ); 
               
               
                   } 
               
               
                   
               
            
           
         
       
     
     The code for the MLX90621 Arduino thermopile array sensor  105  is as follows: 
     The user starts the device at 200 in  FIG. 12  and powers up the whole system within the recommended voltage range and initializing the Bluetooth Low Energy (“BLE”) module at 202. If a first time user, or a re-initiated user, the device would be paired at 204 by input of a code for pairing on a smartphone or other device at 206. Note that at this point, the smartphone Bluetooth must be tuned in and the device must be verified after successful connection. A prompt of the user will occur at 208 for automatic BLE connection. A prompt then occurs to determine if the battery is sufficiently charged at 210. If NO, then the user prompt indicates that battery should be charged at 212 and a pause or a restart of the process occurs. 
     If YES, then a determination is made if the smartphone is in range of the device at 214. If NO, then a prompt of the user occurs to indicate device disconnection on smartphone at 216. IF YES, then at 218 the user presses the start button on the app (or otherwise initiates the sequence). At this point in time, the device  3   a  is place on the body as a wearable device and fastened on the back of the body or on the arm bicep of the wearer/user  1 , the user makes sure that no vicinity obstruction is in front of a sensor  10 , and the wearer/user  1  makes sure that there is no heating element behind or in any near distance with the sensor  10  or the device  3   a  (usually within a few feet). At 220, the GPIO, the MLX90621 sensor, and the i2S module of the MLX90621 sensor are initialized. RAM is accessed at 222 for temperature data, and then at 224 the temperature is calculated for ambient and object temperature, along with initializing one local counter. 
     At 226, a monitor of the temperature is determined for any objects having a temperature between 33 degrees C. and 37 degrees C. At 228, If YES, then the number of pixels within this ranges is counted. If NO (or none), then 228 is skipped. The monitor at 226 checks for human body temperature and further counts the number of pixels within range. The range can be adjusted according to environmental conditions, accuracy and precision needed. 
     If the count at 230 is not greater than 3, then the device goes back to 222 to access RAM data for temperature and restart from there. If greater than 3 as a count, as a YES, then a monitor occurs at 232 to determine if the pixel location is in the middle of the sensor array  10 . If NO, a low priority push notification is sent at 234, and the RAM access at 222 is redone and a new monitor sequence occurs. If YES, then a high priority push notification occurs at 236 and an alert is transmitted through the device  3   a  to the user. The app may be stopped at 238, and the device may be turned off at 240. 
     The alerts can be a mute of the volume, a sound alert, a vibration alert, or other alert as desired or selected by either the user from selections provided by the manufacturer or the manufacturer itself. A visual alert is another option. If the alert is to be displayed on a cell phone device, a typical visual output cab be that illustrated at  FIG. 13 . 
     Several embodiments have been discussed in the foregoing description. However, the embodiments discussed herein are not intended to be exhaustive or limit the invention to any particular form. The terminology which has been used is intended to be in the nature of words of description rather than of limitation. Many modifications and variations are possible in light of the above teachings and the invention may be practiced otherwise than as specifically described.