LIDAR Intrusion Detector

Using the Garmin LIDARLite v3HP, Arduino MKR WIFI 1010 and Pushsafer to detect an intruder and send a push notification to a smartphone.

Dec 9, 2020

11849 views

8 respects

Components and supplies

1

Two 4.7K Ohm 1/4 watt resistors

1

Garmin LIDAR-Lite v3HP

1

Arduino MKR WiFi 1010

1

680 uF capacitor

Tools and machines

1

Breadboard, 170 Pin

1

10 Pc. Jumper Wire Kit, 5 cm Long

Apps and platforms

1

Pushsafer

Project description

Code

LIDAR intrusion sensor sketch

arduino

Sends LIDAR infrared laser pulses continuously and monitors the reflected beam for interruptions

LIDAR intrusion sensor sketch

arduino

Sends LIDAR infrared laser pulses continuously and monitors the reflected beam for interruptions

Downloadable files

Wiring Diagram

Wiring Diagram

Comments

Only logged in users can leave comments

maulepilot

2 years ago

Since this project was published, I've resumed experimenting with a limited form of LIDAR mapping using a servo mounted LIDAR-Lite v3HP sensor. The goal is to minimize false alarms while maximizing true intrusions. By panning the sensor over a 180 degree arc which most servos can handle, a 180-point distance map is built as a reference with no intrusions. Then the servo-mounted LIDAR sensor is swept back and forth over the same area continuously and compared with the reference map. A threshold is established to identify true intrusions and when the difference between the reference map and distance readings exceeds the threshold, an alarm is generated. The key to achieving the goal is in the algorithm used to compare the reference map with the distance readings. Simply subtracting the two at each degree point is not sufficient to minimize false alarms. Machine learning may be a possible technique to solve this problem. I am in the process of investigating how it could be implemented in this project. Once a viable technique is discovered, I plan to introduce a tilt servo and scan the target area 180 degrees horizontally and 20 degrees vertically. At 20 degrees of tilt and 40 feet of distance, the LIDAR beam will cover a height of about 4 feet. That should be sufficient to tell the difference between an animal and a human or vehicle. I've discovered that the type of servo and delay between servo movements are key factors in minimizing false alarms. Nylon gear servos are smoother and create less vibration that affects the distance reading. Servos that remain in position without continuous position pulses have less vibration as well. A 100 millisecond delay between servo positioning movements helps reduce the vibration but makes the 180 degree sweep last 18 seconds. I'm considering using a slip-ring motor and rotating the LIDAR sensor continuously to eliminate servo vibration and speed up distance readings. Adafruit's SRC022A-6 slip-ring motor has a rotation speed of 0 - 300 RPM but I would still need a tilt servo and current drain might increase to the point where battery operation is not feasible. Magnetically driven, contactless actuators would be the ideal solution to eliminate mechanical vibration and wear. I am also researching that possibility.

mchl

2 years ago

Seriously impressive. Thumbs up.

markvander

2 years ago

I would love to make contact with you to discuss this project as the distance you are detecting is just what I am looking for to build a collision avoidance system. Have been really struggling to find a sensor suitable and am very new to Arduino. I am trying to build a system that triggers an alarm on a mobile phone. mk.vander@bigpond.com

Anonymous user

2 years ago

Old post / project, but would love to try this now in 2022. However. Wire.h is giving me a hard time with the MKR WIFI 1010 board. (it can not be found when compiling for the 1010 board!) Am I missing something here? Wire.h is working fine with other boards (micro / nano ..... )

mchl

3 years ago

Seriously impressive. Thumbs up.

Anonymous user

4 years ago

Hello, I would mike to use a similar technology, but I don't know how to code the sensor to have a reference map. Have you succeeded in programming a comparison between the reference map and the other measurements taken?

maulepilot

4 years ago

Since this project was published, I've resumed experimenting with a limited form of LIDAR mapping using a servo mounted LIDAR-Lite v3HP sensor. The goal is to minimize false alarms while maximizing true intrusions. By panning the sensor over a 180 degree arc which most servos can handle, a 180-point distance map is built as a reference with no intrusions. Then the servo-mounted LIDAR sensor is swept back and forth over the same area continuously and compared with the reference map. A threshold is established to identify true intrusions and when the difference between the reference map and distance readings exceeds the threshold, an alarm is generated. The key to achieving the goal is in the algorithm used to compare the reference map with the distance readings. Simply subtracting the two at each degree point is not sufficient to minimize false alarms. Machine learning may be a possible technique to solve this problem. I am in the process of investigating how it could be implemented in this project. Once a viable technique is discovered, I plan to introduce a tilt servo and scan the target area 180 degrees horizontally and 20 degrees vertically. At 20 degrees of tilt and 40 feet of distance, the LIDAR beam will cover a height of about 4 feet. That should be sufficient to tell the difference between an animal and a human or vehicle. I've discovered that the type of servo and delay between servo movements are key factors in minimizing false alarms. Nylon gear servos are smoother and create less vibration that affects the distance reading. Servos that remain in position without continuous position pulses have less vibration as well. A 100 millisecond delay between servo positioning movements helps reduce the vibration but makes the 180 degree sweep last 18 seconds. I'm considering using a slip-ring motor and rotating the LIDAR sensor continuously to eliminate servo vibration and speed up distance readings. Adafruit's SRC022A-6 slip-ring motor has a rotation speed of 0 - 300 RPM but I would still need a tilt servo and current drain might increase to the point where battery operation is not feasible. Magnetically driven, contactless actuators would be the ideal solution to eliminate mechanical vibration and wear. I am also researching that possibility.