Wa Koodu

Lilo ọ̀pọ̀lọ́pọ̀ CJMCU VL53L0X Laser Distance Meter pẹ̀lú Arduino

Lilo ọ̀pọ̀lọ́pọ̀ CJMCU VL53L0X Laser Distance Meter pẹ̀lú Arduino

Ẹkọ́ yìí ṣàfihàn bí a ṣe le lo CJMCU VL53L0X laser distance meter pẹ̀lú Arduino. Mọ́díù yìí, tí ó ní Texas Instruments VL53L0X time-of-flight sensor àti TXS0108E bidirectional level shifter (nínú fídíò ní 00:06), ń pèsè ìwọ̀n ọ̀nà tí ó péye títí dé mítà méjì (nínú fídíò ní 00:52). Ìbáṣepọ̀ rẹ̀ pẹ̀lú oríṣiríṣi logic levels (3.3V, 1.8V, 5V) ń rọrùn ìsopọ̀ pẹ̀lú oríṣiríṣi microcontrollers (nínú fídíò ní 00:21). Iṣẹ́-ọwọ́ yìí ń ṣí ọ̀nà fún ọ̀pọ̀lọpọ̀ àǹfààní.

Àwọn Èrò Iṣẹ́:

  • Robotics: Ṣe ìmúṣẹ yíyẹra fún àwọn roboti.
  • Automation: Ṣàkóso ẹ̀rọ nípa ìsúnmọ́.
  • Smart Home: Ṣẹ̀dá ìmọ́lẹ̀ tí ó ń ṣiṣẹ́ fúnra rẹ̀ nípa ọ̀nà.
  • Security: Ṣe àgbékalẹ̀ ètò ìtànijẹ́ tí ó dá lórí ìsúnmọ́.

Hardware/Àwọn Ẹ̀yà

Láti kọ́ iṣẹ́-ọwọ́ yìí, ìwọ yóò nílò àwọn ẹ̀yà wọ̀nyí:

  • Arduino Board (èyíkéyìí tí ó bá ṣiṣẹ́)
  • CJMCU VL53L0X Laser Distance Meter Module
  • Jumper Wires

Ìtọ́sọ́nà Ìsopọ̀

Mọ́díù VL53L0X ń sopọ̀ mọ́ Arduino báyìí:

So pín VCC ti mọ́díù náà mọ́ pín 5V lórí Arduino. Regulator inú mọ́díù náà ń ṣàkóso 3.3V tí sensor nílò. (nínú fídíò ní 01:50)

So pín GND ti mọ́díù náà mọ́ pín GND lórí Arduino.

So pín SDA ti mọ́díù náà mọ́ pín A4 lórí Arduino.

So pín SCL ti mọ́díù náà mọ́ pín A5 lórí Arduino.

Fi pín XSHUT sílẹ̀ láìsopọ̀ àyàfi tí o bá nílò rẹ̀ fún ìṣàkóso ìmúpadà. (nínú fídíò ní 03:50)

Àlàyé Kóòdù

Kóòdù tí a pèsè ń lo VL53L0X library. Èyí ni àlàyé àwọn apá pàtàkì tí o lè yí padà:


#include <Wire.h>
#include <VL53L0X.h>

VL53L0X sensor;

void setup()
{
  Serial.begin(9600);
  // ... àwọn kóòdù ìmúrà mìíràn ...
  sensor.setTimeout(500); // Ṣeto timeout sí 500ms (nínú fídíò ní 06:40)
  sensor.startContinuous(); // Bẹ̀rẹ̀ ìwọ̀n lílo tí ó ń tẹ̀síwájú (nínú fídíò ní 06:50)
}

void loop()
{
  Serial.print(sensor.readRangeContinuousMillimeters()); // Ka ọ̀nà ní millimeters (nínú fídíò ní 07:01)
  // ... àwọn kóòdù loop mìíràn ...
}

Ìlà sensor.setTimeout(500) ń ṣeto àkókò ìdúró fún ìwọ̀n ọ̀nà sí 500 milliseconds. Yí iye yìí padà bí o bá nílò rẹ̀ fún ohun tí o ń ṣe (nínú fídíò ní 06:40). Ìṣiṣẹ́ sensor.startContinuous() ń bẹ̀rẹ̀ ìwọ̀n ọ̀nà tí ń tẹ̀síwájú, tí ó ń pèsè àwọn ìwọ̀n ọ̀nà ní kíkankíkan bí ó ti ṣeé ṣe (nínú fídíò ní 06:50). Ìṣiṣẹ́ sensor.readRangeContinuousMillimeters() ń dá àbájáde ọ̀nà tí a wọn ní millimeters padà (nínú fídíò ní 07:01).

Iṣẹ́-ọwọ́ Láàyè/Ìfihàn

Fídíò náà ń ṣàfihàn bí sensor ṣe ń ṣiṣẹ́, tí ó ń fi bí àwọn ìwọ̀n ọ̀nà ṣe ń yí padà bí ọ̀nà sensor sí ohun tí a ń wọn ṣe ń yí padà. Àwọn ìwọ̀n náà péye nínú díẹ̀ millimeters, pàápàá ní àwọn ọ̀nà tí ó ju 10mm lọ (nínú fídíò ní 08:20). Ní àwọn ọ̀nà tí ó súnmọ́ gan-an (kéré ju 10mm), ìpéye ń dín kù (nínú fídíò ní 09:50). Ìfihàn náà tún fi hàn pé àwọn ojú tí ń tàn yìnbọn lè ní ipa lórí àwọn ìwọ̀n, pàápàá bí laser kò bá dúró ní ìtọ́sọ́nà sí ojú náà (nínú fídíò ní 10:32).

Àwọn Orí

  • [00:00] Ìfihàn àti Àkópọ̀ Iṣẹ́-ọwọ́
  • [00:48] Àwọn Àlàyé Sensor VL53L0X
  • [01:41] Àkópọ̀ Mọ́díù àti Àwọn Ìwọ̀n
  • [02:55] Àwọn Ìlò àti Àwọn Ìwọ̀n
  • [03:35] Pinout àti Àwọn Ìsopọ̀
  • [05:29] Àlàyé Kóòdù
  • [07:45] Ìsopọ̀ àti Àwọn Ìsopọ̀
  • [08:18] Ìfihàn Láàyè
136-Source code for the VL523L0X distance measurement module for Arduino
Ede: C++
/* This example shows how to use continuous mode to take
range measurements with the VL53L0X. It is based on
vl53l0x_ContinuousRanging_Example.c from the VL53L0X API.

The range readings are in units of mm. 
Updated by Ahmad Shamshiri for Robojax.com on July 23, 2018 in Ajax, Ontario, Canada.
Watch video instructions for this code: https://youtu.be/0PnAyt51IU4
Download the library and get other resources for this code at http://robojax.com
*/

#include <Wire.h>
#include <VL53L0X.h>

VL53L0X sensor;

void setup()
{
  Serial.begin(9600);
  Serial.println("Robojax CJMCU VL523L0X laser distance test");
  Wire.begin();

  sensor.init();
  sensor.setTimeout(500);

  // Start continuous back-to-back mode (take readings as
  // fast as possible).  To use continuous timed mode
  // instead, provide a desired inter-measurement period in
  // ms (e.g. sensor.startContinuous(100)).
  sensor.startContinuous();
}

void loop()
{
  Serial.print(sensor.readRangeContinuousMillimeters());// print distance

  if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }

  Serial.println();
}

Orisun & itọkasi

Fáìlìs📁

Fayile Fritzing

  • Adafruit VL6180X Time of Flight Distance Sensor
    Fritzing 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.fzpz 0.02 MB