Amfani da VL53L0X Laser Distance Meter tare da Arduino
A cikin wannan darasa, za mu bincika yadda za a yi amfani da ma'aunin laser na VL53L0X tare da Arduino. Wannan na'urar tana ba ku damar auna nesa daidai ta amfani da laser, yana mai da shi manufa ga aikace-aikace daban-daban kamar mutum-mutumi da sarrafa kansa. A ƙarshen wannan koyarwar, za ku sami saitin aiki wanda zai iya auna nesa kuma ya nuna su a cikin mai saka idanu.

Don aikinmu, za mu yi amfani da ɗakin karatu na Adafruit VL53L0X, wanda ke sauƙaƙa tsarin hulɗa tare da firikwensin. Wannan ɗakin karatu yana ba da ayyukan da ake buƙata don fara firikwensin, karanta ma'auni, da kuma kula da duk wani kuskuren da zai iya tasowa. Kuna iya komawa zuwa bidiyon don jagorar gani akan saiti (a cikin bidiyo a 02:15).
Hardware ya bayyana
Manyan abubuwan da ke cikin wannan aikin sun haɗa da mita mai nisa na laser VL53L0X da allon Arduino. VL53L0X firikwensin lokaci ne wanda ke amfani da laser don auna nesa har zuwa mita 2 tare da babban daidaito. Yana aiki ta hanyar yarjejeniyar I2C, yana ba da damar sadarwa mai sauƙi tare da Arduino.
Kwamitin Arduino yana aiki a matsayin microcontroller wanda ke sarrafa bayanai daga VL53L0X. Yana aika umarni zuwa firikwensin kuma yana karɓar ma'aunin nesa, wanda za'a iya nunawa ko amfani dashi a wasu aikace-aikace. Ingantaccen wiring yana da mahimmanci don tabbatar da ingantaccen karatu daga firikwensin.
Bayanan Bayanai
| Masana'anta | STMicroelectronics |
|---|---|
| Lambar ɓangare | VL53L0X |
| Ƙarfin lantarki na aiki | 2.6 V zuwa 3.5 V |
| Kewayon | 30 mm zuwa 2000 mm |
| Daidaito | ±3% na al'ada |
| Interface | I2C |
| Yanayin zafin jiki | -40 ° C zuwa + 85 ° C |
| Amfani da yanzu | <1 mA (jira), 20 mA (mai aiki) |
| Kunshin | VFLGA-8 |
- Tabbatar cewa firikwensin yana da ƙarfi daidai (2.6 V zuwa 3.5 V).
- Kula da saitunan adireshin I2C daidai don kauce wa rikice-rikice.
- Ajiye firikwensin a tsabta don ma'aunin nesa daidai.
- Yi amfani da masu tsattsauran ra'ayi a kan layi na I2C idan ya cancanta.
- Guji hasken rana kai tsaye a kan firikwensin don karatu mai aminci.
Umarnin Wiring

Don haɗa firikwensin VL53L0X zuwa Arduino, haɗa fil ɗin VCC na firikwensin zuwa fil 5V akan Arduino. Dole ne a haɗa fil ɗin GND zuwa ƙasa (GND) na Arduino. Don sadarwa ta I2C, haɗa fil SDA na VL53L0X zuwa fil ɗin A4 akan Arduino, kuma haɗa fil ɗin SCL zuwa fil ɗin A5. Idan kuna amfani da samfurin Arduino daban-daban, koma zuwa takamaiman SDA da SCL pin assignments don wannan hukumar.
Alal misali, a kan Arduino Mega, zaku haɗa SDA zuwa fil 20 da SCL zuwa fil 21. Tabbatar cewa duk hanyoyin sadarwa suna da aminci don kauce wa matsalolin sadarwa. Idan firikwensin bai amsa ba, duba wiring sau biyu kuma tabbatar da cewa Arduino yana da ƙarfi yadda ya kamata.
Misalai na Code & Walkthrough
Da ke ƙasa akwai snippet daga aikin saitin wanda ke ƙaddamar da firikwensin VL53L0X:
void setup() {
Serial.begin(9600);
while (! Serial) {
delay(1);
}
Serial.println("Robojax Test");
if (!lox.begin()) {
Serial.println(F("Failed to boot VL53L0X"));
while(1);
}
}Wannan lambar tana farawa da sadarwa ta serial kuma tana ƙoƙari don fara firikwensin VL53L0X. Idan firikwensin ya kasa kunnawa, zai buga saƙon kuskure kuma ya dakatar da shirin.
Na gaba, a nan ne snippet daga aikin madauki wanda ke karanta ma'aunin nesa:
void loop() {
VL53L0X_RangingMeasurementData_t measure;
lox.rangingTest(&measure, false);
if (measure.RangeStatus != 4) {
Serial.print("Distance (mm): "); Serial.println(measure.RangeMilliMeter);
} else {
Serial.println(" out of range ");
}
delay(100);
}Wannan toshe yana ci gaba da karanta ma'aunin nesa daga firikwensin kuma ya buga shi zuwa mai saka idanu. Idan ma'aunin ya fita daga kewayon, yana nuna wannan daidai gwargwado.
Zanga-zangar / Abin da za a yi tsammani
Lokacin da kake gudanar da shirin, ya kamata ka ga ma'aunin nesa da aka nuna a cikin serial monitor. Ya kamata a sabunta karatun kowane milliseconds 100. Idan firikwensin yana nuna wani abu, zai nuna nesa a milimita. Idan abu ya fita daga kewayon, zai nuna hakan ma. Tabbatar gwada firikwensin a cikin kewayon da aka ƙayyade don sakamako mafi kyau (a cikin bidiyo a 10:00).
Lokaci na Bidiyo
- 00:00- Gabatarwa
- 02:15- Saitin Wiring
- 05:30- Bayanin lambar
- 10:00- Zanga-zangar
/* This example shows how to use continuous mode to take
range measurements with the VL53L0X.
// Original source from Adafruit https://github.com/adafruit/Adafruit_VL53L0X
// Modified by Ahmad Shamshiri for RoboJax.com
// Date modified: Sep 26, 2017
// Nejrabi
* Get this code and other Arduino codes from Robojax.com
Learn Arduino step by step in a structured course with all material, wiring diagrams, and libraries
all in one place.
If you found this tutorial helpful, please support me so I can continue creating
content like this.
or make a donation using PayPal http://robojax.com/L/?id=64
* * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Copyright (c) 2015, Majenko Technologies
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
* * Neither the name of Majenko Technologies nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "Adafruit_VL53L0X.h"
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
void setup() {
Serial.begin(9600);
// wait until serial port opens for native USB devices
while (! Serial) {
delay(1);
}
Serial.println("Robojax Test");
if (!lox.begin()) {
Serial.println(F("Failed to boot VL53L0X"));
while(1);
}
// power
Serial.println(F("VL53L0X API Simple Ranging example\n\n"));
}
void loop() {
VL53L0X_RangingMeasurementData_t measure;
Serial.print("Reading a measurement... ");
lox.rangingTest(&measure, false); // pass in 'true' to get debug data printout!
if (measure.RangeStatus != 4) { // phase failures have incorrect data
Serial.print("Distance (mm): "); Serial.println(measure.RangeMilliMeter);
} else {
Serial.println(" out of range ");
}
delay(100);
}
Albarkatun da kuma shafukan da za a duba
-
WajeVL53L0X datasheet (PDF)st.com
Fayiloli📁
Fayil Fritzing
-
Adafruit VL6180X Time of Flight Distance SensorFritzing part for the Adafruit VL6180X Time of Flight distance sensor. This sensor measures absolute distance up to 100mm and ambient light, communicating via I2C. Includes the sensor breakout board and pin connections for use in Fritzing projects.
Adafruit VL6180X Time of Flight Distance Sensor-1.fzpz0.02 MB
Sauran fayiloli
-
Polou VL53L0X ɗakin karatu
robojax-VL53L0X-polou-arduino-master.zip0.02 MB