- VL6180X Sensor ng Tagahanap ng Saklaw ng Oras-ng-Paglipad (ToF)
- Diagram ng Circuit
- Pagdaragdag ng kinakailangang Mga Aklatan para sa VL6180 ToF Sensor
- Programming at Paggawa ng Paliwanag
Ang TOF o Oras ng paglipad ay isang karaniwang ginagamit na paraan upang masukat ang distansya ng mga malalayong bagay sa pamamagitan ng iba't ibang sensor ng pagsukat ng distansya tulad ng ultrasonic sensor. Ang pagsukat ng oras na kinuha ng isang maliit na butil, alon o isang bagay upang maglakbay ng isang distansya sa pamamagitan ng isang daluyan ay tinukoy bilang Time-of-flight (TOF). Ang pagsukat na ito ay maaaring magamit upang makalkula ang tulin o haba ng landas. Maaari din itong magamit upang malaman ang tungkol sa maliit na butil o mga katangian ng daluyan tulad ng komposisyon o daloy ng daloy. Ang naglalakbay na bagay ay maaaring makita nang direkta o hindi direkta.
Ang mga aparatong sumusukat sa distansya ng ultrasonic ay isa sa mga pinakamaagang aparato na gumagamit ng prinsipyo ng oras ng paglipad. Ang mga aparatong ito ay naglalabas ng isang ultrasonic pulse at sinusukat ang distansya sa isang solidong materyal batay sa oras na ginugol ng alon upang bounce pabalik sa emitter. Gumamit kami ng Ultrasonik sensor sa marami sa aming application upang masukat ang distansya:
- Pagsukat sa Distansya na Batay sa Arduino at Ultrason Sensor
- Sukatin ang Distansya gamit ang Raspberry Pi at HCSR04 Ultrasonic Sensor
- Paano Sukatin ang Distansya sa Pagitan ng Dalawang Mga Ultrasonic Sensor
Ang oras ng paraan ng paglipad ay maaari ding magamit upang tantyahin ang kadaliang kumilos ng elektron. Sa totoo lang, ito ay dinisenyo para sa pagsukat ng mababang-kondaktibong payat na mga pelikula, kalaunan ay nababagay para sa mga karaniwang semiconductor. Ang pamamaraang ito ay ginagamit para sa mga organikong patlang na epekto ng transistors pati na rin ang mga istrukturang metal-dielectric-metal. Sa pamamagitan ng aplikasyon ng laser o boltahe na pulso, nabuo ang labis na singil.
Ang prinsipyo ng TOF ay ginagamit para sa pagsukat ng distansya sa pagitan ng isang sensor at isang bagay. Ang oras na kinuha ng signal upang maabot ang sensor pagkatapos ng sumasalamin mula sa isang bagay ay sinusukat at ginagamit ito upang makalkula ang distansya. Ang iba't ibang mga uri ng signal (carrier) tulad ng tunog, ilaw ay maaaring magamit sa prinsipyo ng TOF. Kapag ginamit ang TOF para sa paghanap ng saklaw napakalakas nito kapag naglalabas ng ilaw kaysa tunog. Kung ikukumpara sa ultrasound ay nagbibigay ito ng mas mabilis na pagbabasa, mas mataas ang kawastuhan at higit na saklaw na pinapanatili ang mababang timbang, maliit na sukat, at mababang mga katangian ng pagkonsumo ng kuryente.
Dito sa tutorial na ito gagamitin namin ang isang VL6180X TOF Range Finder Sensor na may Arduino upang makalkula ang distansya sa pagitan ng sensor at ng object. Sinasabi rin ng sensor na ito ang halaga ng intensity ng Liwanag sa LUX.
VL6180X Sensor ng Tagahanap ng Saklaw ng Oras-ng-Paglipad (ToF)
Ang VL6180 ay naiiba mula sa iba pang mga sensor ng distansya dahil gumagamit ito ng isang tumpak na orasan upang masukat ang oras na kinuha ng ilaw upang sumalamin pabalik mula sa anumang ibabaw. Nagbibigay ito ng VL6180 ng isang benepisyo kaysa sa iba pang mga sensor dahil mas tumpak ito at immune sa ingay.
Ang VL6180 ay isang 3-in-1 na pakete na may kasamang IR emitter, isang ambient light sensor, at isang range sensor. Nakikipag-usap ito sa pamamagitan ng isang interface na I 2 C. Mayroon itong onboard 2.8V regulator. Kaya't kahit na mag-plug tayo sa isang boltahe na mas malaki sa 2.8V ay awtomatiko itong babalhin nang hindi nakakasira sa board. Ito ay sumusukat ng isang hanay ng hanggang sa 25 cm. Dalawang programmable GPIO ang ibinigay dito.
Diagram ng Circuit
Dito ginagamit ang Nokia 5110 LCD upang maipakita ang antas ng Liwanag at distansya. Ang Nokia 5110 LCD ay tumatakbo sa 3.3V kaya't hindi ito makakonekta sa mga digital na pin ng Arduino Nano nang direkta. Kaya magdagdag ng 10k resistors sa serye gamit ang mga signal ng data upang maprotektahan ang mga linya ng 3.3V mula sa 5V digital pin. Matuto nang higit pa tungkol sa paggamit ng Nokia 5110 LCD sa Arduino.
Ang VL6180 Sensor ay maaaring direktang konektado sa Arduino. Ang komunikasyon sa pagitan ng VL6180 at Arduino ay I2C. Sa totoo lang pinagsasama ng I2C komunikasyon protocol ang pinakamahusay na mga tampok ng SPI at UART. Dito maaari naming ikonekta ang maraming mga alipin sa isang solong master at maaari kaming magkaroon ng maraming mga masters na kumokontrol sa solong o maraming alipin. Tulad ng komunikasyon sa UART, ang I2C ay gumagamit ng dalawang wires para sa komunikasyon SDA (Serial Data) at SCL (Serial Clock), isang linya ng data at linya ng orasan.
Ang diagram ng circuit para sa pagkonekta ng VL6180 ToF Range Finder Sensor sa Arduino ay ipinapakita sa ibaba:
- Ikonekta ang RST Pin ng LCD sa pin 6 ng Arduino sa pamamagitan ng 10K risistor.
- Ikonekta ang CE Pin ng LCD sa pin 7 ng Arduino sa pamamagitan ng 10K risistor.
- Ikonekta ang DC Pin ng LCD sa pin 5 ng Arduino sa pamamagitan ng 10K risistor.
- Ikonekta ang DIN Pin ng LCD sa pin 4 ng Arduino sa pamamagitan ng 10K risistor.
- Ikonekta ang CLK Pin ng LCD sa pin 3 ng Arduino sa pamamagitan ng 10K resistor.
- Ikonekta ang VCC Pin ng LCD sa 3.3V pin ng Arduino.
- Ikonekta ang GND Pin ng LCD sa GND ng Arduino.
- Ikonekta ang pin ng SCL ng VL6180 sa A5 pin ng Arduino
- Ikonekta ang SDA pin ng VL6180 sa A4 pin ng Arduino
- Ikonekta ang VCC pin ng VL6180 sa 5V pin ng Arduino
- Ikonekta ang GND pin ng VL6180 sa GND pin ng Arduino
Pagdaragdag ng kinakailangang Mga Aklatan para sa VL6180 ToF Sensor
Tatlong mga aklatan ang gagamitin sa pag-interfacing ng VL6180 sensor sa Arduino.
1. Adafruit_PCD8544
Ang Adafruit_PCD8544 ay isang silid-aklatan para sa Monochrome Nokia 5110 LCD Ipinapakita. Ang mga ipinapakitang ito ay gumagamit ng SPI para sa komunikasyon. Apat o limang mga pin ang kinakailangan para sa interfacing sa LCD na ito. Ang link para sa pag-download sa library na ito ay ibinigay sa ibaba:
github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library/archive/master.zip
2. Adafruit_GFX
Ang Adafruit_GFX library para sa Arduino ay ang pangunahing graphics library para sa mga LCD display, na nagbibigay ng isang karaniwang syntax at hanay ng mga graphic primitives (mga puntos, linya, bilog, atbp.). Kailangan itong ipares sa isang tukoy na library ng hardware para sa bawat display device na ginagamit namin (upang mahawakan ang mga pagpapaandar na mas mababang antas). Ang link para sa pag-download sa library na ito ay ibinigay sa ibaba:
github.com/adafruit/Adafruit-GFX-Library
3. SparkFun VL6180
Ang SparkFun_VL6180 ay ang Arduino library na may pangunahing pagpapaandar ng sensor ng VL6180. Ang VL6180 ay binubuo ng isang IR emitter, isang range sensor, at isang ambient light sensor na nakikipag-usap sa pamamagitan ng isang interface ng I2C. Pinapayagan ka ng library na ito na basahin ang distansya at mga light output mula sa sensor, at inilalabas ang data sa pamamagitan ng isang serial na koneksyon. Ang link para sa pag-download sa library na ito ay ibinigay sa ibaba:
downloads.arduino.cc/libraries/github.com/sparkfun/SparkFun_VL6180_Sensor-1.1.0.zip
Idagdag ang lahat ng mga aklatan nang paisa-isa sa pamamagitan ng pagpunta sa Sketch >> Isama ang library >> Magdagdag ng.ZIP library sa Arduino IDE. Pagkatapos i-upload ang library na iyong na-download mula sa mga link sa itaas.
Minsan hindi mo kakailanganing magdagdag ng mga aklatan ng wire at SPI, ngunit kung nakakakuha ka ng isang error mangyaring i-download at idagdag ang mga ito sa iyong Arduino IDE.
github.com/PaulStoffregen/SPI
github.com/PaulStoffregen/Wire
Programming at Paggawa ng Paliwanag
Ang kumpletong code na may isang gumaganang video ay ibinibigay sa pagtatapos ng tutorial na ito, narito ipinapaliwanag namin ang kumpletong programa upang maunawaan ang pagtatrabaho ng proyekto.
Sa program na ito, karamihan sa mga bahagi ay pinangangasiwaan ng mga aklatan na idinagdag namin kaya hindi mo na kailangang magalala tungkol doon.
Sa setup part s itakda ang baud rate bilang 115200 at magpasimula ng Wire library para sa I2C. Pagkatapos suriin kung ang sensor ng VL6180 ay gumagana nang maayos o hindi, kung hindi ito gumagana pagkatapos ay magpakita ng isang mensahe ng error.
Sa sumusunod na bahagi inaayos namin ang display, maaari mong baguhin ang kaibahan sa iyong nais na halaga dito itinatakda ko ito bilang 50
void setup () { Serial.begin (115200); // Start Serial at 115200bps Wire.begin (); // Start I2C library delay (100); // pagkaantala kung (sensor.VL6180xInit ()! = 0) { Serial.println ("FAILED TO INITALIZE"); // Ipasimula ang aparato at suriin para sa mga error }; sensor.VL6180xDefautSettings (); // Load default setting upang makapagsimula. pagkaantala (1000); // delay 1s display.begin (); // init tapos // maaari mong baguhin ang kaibahan sa paligid upang maiakma ang display // para sa pinakamahusay na pagtingin! display.setContrast (50); display.display (); // show splashscreen display.clearDisplay (); }
Sa pag- set ng bahagi ng walang bisa loop ang mga tagubilin upang ipakita ang mga halaga sa LCD screen. Dito ipinapakita namin ang dalawang halaga, ang isa ay ang "Ambient light level sa Lux" (Ang isang lux ay talagang isang lumen bawat square meter area), at ang pangalawa ay "Distance sinusukat sa mm". Upang maipakita ang iba't ibang mga halaga sa isang LCD screen tukuyin ang posisyon ng bawat teksto na dapat ipakita sa LCD screen sa pamamagitan ng paggamit ng "display.setCursor (0,0);".
void loop () { display.clearDisplay (); // Kunin ang antas ng Ambient Light at iulat sa LUX Serial.print ("Ambient Light Level (Lux) ="); Serial.println (sensor.getAmbientLight (GAIN_1)); display.setTextSize (1); display.setTextColor (BLACK); display.setCursor (0,0); display.println ("Antas ng Magaan"); display.setCursor (0,12); display.println (sensor.getAmbientLight (GAIN_1)); // Kumuha ng Distansya at iulat sa mm Serial.print ("Sinusukat ang distansya (mm) ="); Serial.println (sensor.getDistance ()); display.setTextSize (1); display.setTextColor (BLACK); display.setCursor (0, 24); display.println ("Distansya (mm) ="); display.setCursor (0, 36); b = sensor.getDistance (); display.println (b); display.display (); pagkaantala (500); }
Matapos i-upload ang programa, buksan ang serial monitor at dapat itong ipakita ang output tulad ng ipinakita sa ibaba.
Ang mga naghahanap ng saklaw na VL6180 TOF ay ginagamit sa mga smartphone, portable na touchscreen na aparato, Tablet, laptop, gaming device at mga domestic appliances / pang-industriya na aparato.
Narito ipinapakita namin ang antas ng ilaw ng Ambient sa Lux at distansya sa mm.
Hanapin ang kumpletong programa at pagpapakita ng Video sa ibaba. Suriin din kung paano sukatin ang distansya gamit ang Ultrasonic sensor at antas ng ilaw gamit ang BH1750 Ambient Light Sensor.