Talaan ng mga Nilalaman:

Stationary Radar (LIDAR) Array With Arduino: 10 Hakbang (na may Mga Larawan)
Stationary Radar (LIDAR) Array With Arduino: 10 Hakbang (na may Mga Larawan)

Video: Stationary Radar (LIDAR) Array With Arduino: 10 Hakbang (na may Mga Larawan)

Video: Stationary Radar (LIDAR) Array With Arduino: 10 Hakbang (na may Mga Larawan)
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Hulyo
Anonim
Stationary Radar (LIDAR) Array With Arduino
Stationary Radar (LIDAR) Array With Arduino
Stationary Radar (LIDAR) Array With Arduino
Stationary Radar (LIDAR) Array With Arduino
Stationary Radar (LIDAR) Array With Arduino
Stationary Radar (LIDAR) Array With Arduino

Kapag nagtatayo ako ng isang biped robot, palagi kong iniisip ang pagkakaroon ng isang uri ng cool na gadget na maaaring masubaybayan ang aking kalaban at makikilos ang pag-atake dito. Ang mga bungkos ng mga proyekto ng radar / lidar ay mayroon na rito. Gayunpaman, may ilang mga limitasyon para sa aking hangarin:

  • Ang mga module ng ultrasonic sensor sensor ay medyo malaki. Ang bawat robot ay magiging hitsura ng WALL-E.
  • Ang mga kasalukuyang proyekto ng radar ay may kasamang sensor (alinman sa mga ultrasonic wave, IR, laser,…), at isang servo motor sa gitna. Ang pag-scan sa kapaligiran ay nangangailangan ng servo na lumipat sa isang gilid. Ang paglipat ng mga bagay-bagay pabalik-balik ay lumilikha ng mga pagbabago sa momentum, na masama para sa baluktot na pagbabalanse at paglalakad.
  • Ang dalas ng pag-scan ay limitado sa bilis ng servo. Maraming hertz lamang ang makakamit, marahil. Kahit na ang dalas ng pag-scan ay maaaring masira ng ilang super-servo, magreresulta ito sa mabibigat na panginginig.
  • Ang pag-aayos ng [Central servo motor - sensor] ay naglilimita rin sa posisyon para sa pag-mount at ang disenyo. Mahirap i-mount ang ganoong bagay maliban sa isang ulo. Na gumagawa ng aking biped na hitsura ng isang alog-ulo WALL-E sa tuwing. Hindi cool!
  • Ang pag-aayos ng [servo-sensor] ay maaari ding maitayo bilang isang istilong [motor-sensor]. Ang sensor (o sensors) ay patuloy na umiikot sa isang axis ng motor. Maaari nitong alisin ang momentum jerks at mababang mga problema sa dalas ng pag-scan, ngunit hindi ang limitasyon sa disenyo ng katawan ng tao. Ang kahirapan sa kable ay tataas din nang malaki.

Matapos maghanap, ang maliit na sensor na VL53L0X na ito mula sa ST ay sumabog sa aking mga mata. Sa pamamagitan ng pag-angkin ng "World Smallest" na time-of-flight ranging sensor, ang sukat ay 4.4 x 2.4 x 1.0 mm lamang. Nagtatampok

  • Sa chip IR laser emitter at detector
  • Hanggang sa 2m na saklaw (1.2m sa mabilis na mode)
  • Programmable I2C address
  • Ang isang GPIO ay nakakagambala sa output pin
  • Ligtas sa mata

Pinagsama ang lahat ng mga espesyal na tampok na ito upang mapagtagumpayan ang mga problema sa itaas, kung ang isang hanay ng mga sensor ng VL53L0X ay maaaring gumana. Orihinal, naisip kong ang radar na ito ay tatawaging solid state radar, ngunit nalaman na ang term na ito ay ginamit para sa iba pa. Samakatuwid ang salitang "Nakatigil" sa pamagat ay nangangahulugang walang mga gumagalaw na bahagi sa radar na gadget na ito. Gayundin, habang ang LIDAR (light detection at sumasaklaw) ay ang wastong teknikal na term para sa chip na ito, ang RADAR ay tinukoy dito bilang isang mas pangkalahatang term.

Ang dahilan kung bakit ang Programmable I2C address at GPIO output pin ay kritikal sa proyektong ito ay ipinaliwanag sa paglaon.

Hakbang 1: Mga Tool at Bahagi

Mga tool at Bahagi
Mga tool at Bahagi
Mga tool at Bahagi
Mga tool at Bahagi

Mga kasangkapan

Ang mga sumusunod na tool ay kinakailangan sa proyektong ito:

  • Panghinang
  • Naghahihinang na mga kamay na tumutulong
  • Dupont crimp tool
  • 1.5mm hex driver
  • Tool sa pagtanggal ng wire coating
  • Pamutol ng wire
  • Mainit na glue GUN
  • Mga Tweezer
  • Magnifier (pisikal o apps sa iyong telepono)
  • Flat pliers ng ilong

Mga Bahagi

Ang mga sumusunod na bahagi ay ginagamit sa proyektong ito:

  • 10x VL53L0X GY-530 breakout boards
  • Isang Arduino (Uno, Nano, Mega, Zero, Mini,… atbp)
  • Isang breadboard at ilang mga wire ng tinapay sa tinapay
  • Mga AWG # 26 na wires na may iba't ibang kulay
  • AWG # 30 solong core wire
  • 5x Dupont male connectors
  • 5x Single pin Dupont housings
  • 10x 3D naka-print na mga may hawak ng breakout board
  • 1x naka-print na pabilog na frame
  • 10x M2x10 flat head screws
  • 10x 0804 LED (Blue na reommend)
  • 10x SOT-23 AO3400 N-Channel MOSFET
  • Isang maliit na capacitor (10 ~ 100uF)

Breakout board

Ang VL53L0X breakout board na ginamit ko ay GY-530. Mayroon ding bersyon ng Adafruit at magagamit na bersyon ng Pololu. Kung magagawa, inirerekumenda ko ang paggamit ng produkto ng Adafruit o Pololu dahil gumawa sila ng magagandang produkto, mahusay na mga tutorial, at mahusay na mga library ng software. Sinubukan ko ang library ng VL53L0X ng Adafruit at gumamit ng isang binagong bersyon ng VL53L0X library ng Pololu.

Mga konektor ng duplect

Ang mga konektor ng dupont ay ginagamit para sa breadboard. Maaari kang gumamit ng anumang iba pang mga uri ng koneksyon na nasa kamay mo.

Mga tornilyo at 3D na Naka-print na Bahagi

Ang mga M2 na turnilyo, may hawak at pabilog na frame ay ginagamit upang ilagay ang mga sensor sa isang pabilog na pag-aayos. Maaari kang gumamit ng anumang iba pang mga pamamaraan, tulad ng paggamit ng mga card board, modelo ng kakahuyan, luad, o kahit na maiinit na pandikit ang mga ito sa isang lata.

Hakbang 2: Pag-hack sa Breadout Board

Pag-hack sa Breadout Board
Pag-hack sa Breadout Board
Pag-hack sa Breadout Board
Pag-hack sa Breadout Board
Pag-hack sa Breadout Board
Pag-hack sa Breadout Board
Pag-hack sa Breadout Board
Pag-hack sa Breadout Board

Cone of Detection

Gumamit ako ng isang solong module upang iguhit ang kono ng pagtuklas. Gumagamit ng karamihan sa 3D na naka-print na robot bilang target. Ang distansya ay ipinapakita sa led display, at sinusukat nang halos. Ang sinusukat na data ay naitala sa isang file ng Microsoft Excel, at ginamit ang pagpapaandar na curve fitting. Ang pinakamahusay na magkasya ay isang natural na curve ng logaritm, na may mabisang distansya mula 3 cm hanggang humigit-kumulang na 100 cm.

Sa 60 cm, ang curve ng detection para sa isang solong sensor ay tungkol sa 22cm. Na may malawak na target na 20 cm, ang isang pabilog na paghihiwalay ng 10 ~ 15 degree para sa radar array ay dapat na magbunga ng isang katanggap-tanggap na resolusyon sa pag-scan.

I2C Address

Habang ang VL53L0X I2C aparato address ay programmable, ang buong kontrol ng XSHUT pin ng micro-controller ay kinakailangan. Ang pagkakasunud-sunod upang gawin ito ay:

  1. Ang kapangyarihan ay inilapat sa AVDD.
  2. Ang lahat ng mga VL53L0X chips ay dinala sa estado ng Hw Standby (reset) sa pamamagitan ng pagmamaneho LAHAT ng kanilang mga XSHUT na pin sa LOW.
  3. Ang bawat maliit na tilad ay inalis nang isaayos ang estado nang paisa-isa. Ang default na I2C address pagkatapos ng pag-boot ay 0x52.
  4. Ang chip address ay binago sa isang bagong address sa pamamagitan ng isang utos ng I2C. Halimbawa, ang 0x52 ay binago sa 0x53.
  5. Ulitin ang hakbang 3 at 4 para sa lahat ng mga chips.

Sa teoretikal, ang maximum na 126 na mga yunit ay maaaring hinimok sa parehong bus para sa saklaw na 7-bit na address. Gayunpaman, sa praktikal, ang capacitance ng bus at paglubog ng kasalukuyang limitasyon ng micro-controller ay maaaring / dapat limitahan ang maximum na numero ng aparato.

Ang bagong address ng I2C ay hindi nakaimbak sa VL53L0X chip laban sa power down o reset. Sa gayon ang prosesong ito ay kailangang gawin minsan sa bawat lakas. Nangangahulugan ito na ang isang mahalagang pin ay kinakailangan para sa bawat yunit sa radar array. Ito ay masyadong hindi maganda sa mga kable at pagkonsumo ng pin, para sa isang radar belt na may 10+ o 20+ na mga yunit.

Tulad ng nabanggit sa STEP1, masuwerte na mayroong isang GPIO1 pin sa VL53L0X chip, na orihinal na ginamit para makagambala, ay maaaring gawin ang trabaho.

GPIO-XSHUTN daisy chain

Ang output ng GPIO ay nasa mataas na estado ng impedance sa pag-boot at bukas na alisan ng tubig hanggang sa mababa habang aktibo. Ang mga pin ng GPIO at XSHUT ay hinila ng mataas sa AVDD sa breakout board ng GY-530, tulad ng inirekomenda sa datasheet. Upang mapagkakatiwalaan na ilagay ang lahat ng mga chips ng VL53L0X sa estado ng Hw Standby (mababa ang pagmamaneho ng XSHUT), kailangan namin ng lohika HINDI gate (inverter) para sa bawat XSHUT pin. Pagkatapos ay ikonekta namin ang output ng GPIO ng isang maliit na tilad (ang Nth chip), sa XSHUTN (XSHUT-NOT) ng downstream chip (ang chip na N + 1).

Sa kapangyarihan, ang lahat ng mga GPIO pin (hindi aktibo) ay hinila, ang lahat ng kasunod na mga XSHUT na pin ay hinimok ng HINDI na gate (maliban sa napaka-fist chip kung saan ang XSHUTN pin nito ay konektado sa micro-controller). Ang pagbabago ng address ng I2C at paglabas ng XSHUT ng downstream chip ay tapos na sa software, isa-isa.

Kung gumagamit ka ng iba't ibang mga breakout board, kailangan mong tiyakin kung ang mga pull-up resistor ay nasa lugar o hindi, at gumawa ng mga naaangkop na pagsasaayos.

Pagdaragdag ng isang LED

Sa susunod na hakbang, ang isang maliit na 0805 SMD LED ay maidaragdag sa breakout board, na konektado mula sa XSHUT pad sa terminal ng GND ng isang katabing capacitor. Kahit na ang LED mismo ay hindi nakakaapekto sa pagpapatakbo ng module, nagbibigay ito sa amin ng isang mahusay na visual na indikasyon sa antas ng lohika ng XSHUT.

Ang hooking sa LED sa serye na may pull-up risistor (10k sa aking kaso) sa XSHUT pin ay magpapakilala ng isang drop ng boltahe. Sa halip na mataas na antas ng lohika ng 3.3v, ang pasulong na pagbagsak ng boltahe para sa isang pulang 0805 LED ay sinusukat 1.6v. Bagaman ang boltahe na ito ay mas mataas kaysa sa mataas na antas ng lohika (1.12v) sa datasheet, ang asul na LED ay mas mahusay para sa hack na ito. Ang pasulong na pagbagsak ng boltahe para sa asul na LED ay sinusukat tungkol sa 2.4v, na kung saan ay ligtas sa itaas ng antas ng lohika ng maliit na tilad.

Pagdaragdag ng N-MOS Inverter (Logic HINDI Gate)

Ang isang maliit na SOT-23 N-channel MOSFET ay nakasalansan sa LED na idinagdag namin. Dalawang terminal (D, S) ang kailangang solder sa breakout board, at ang natitirang terminal (G) ay konektado sa upstream board GPIO pin gamit ang # 26 wire.

Mga Tala sa Pagdaragdag ng Mga Bahagi ng SMD

Ang paghihinang ng mga sangkap ng SMD sa isang breakout board na hindi idinisenyo para sa, ay hindi isang madaling gawain. Kung hindi mo pa naririnig ang tungkol sa 0805, SMD, SOT-23, ang mga pagkakataong hindi mo pa hinihinang ang maliliit na maliliit na sangkap dati. Habang hinahawakan ang mga maliliit na sangkap sa pamamagitan ng kamay, karaniwan na:

  • Ang maliit na bagay ay bumagsak lamang at nawala, magpakailanman,
  • Ang maliliit na pad sa maliit na bagay ay nakabalot lamang.
  • Ang maliliit na binti sa maliit na bagay ay nabali lamang.
  • Ang soldering lata ay natipon lamang sa isang patak at hindi maaaring paghiwalayin.
  • At iba pa…

Kung nais mo pa ring gawin ang radar na ito, maaari kang:

  • Baguhin ang mga sangkap sa mas malaking pakete, tulad ng estilo ng DIP.
  • Kumuha ng higit pang mga bahagi kaysa sa minimum na kinakailangan, para sa pagsasanay at pagkonsumo.

Hakbang 3: Pag-solder ng 0805 LED

Pag-solder ng 0805 LED
Pag-solder ng 0805 LED
Pag-solder ng 0805 LED
Pag-solder ng 0805 LED
Pag-solder ng 0805 LED
Pag-solder ng 0805 LED
Pag-solder ng 0805 LED
Pag-solder ng 0805 LED

Pag-solder ng 0805 SMD LED

Ang paghihinang ng isang 0805 LED sa kamay, sa isang breakout board na hindi idinisenyo para sa SMD, ay hindi isang madaling gawain. Ang mga sumusunod na hakbang ay ang aking rekomendasyon na maghinang sa LED.

  1. Gamitin ang kamay na tumutulong upang hawakan ang iyong breakout board.
  2. Maglagay ng ilang paste na panghinang sa gilid ng SMD capacitor at ang pad na "XSHUT".
  3. Gamitin ang soldering iron upang maglagay ng ilang karagdagang panghinang sa gilid ng capacitor.
  4. Maglagay ng ilang paste na panghinang sa magkabilang dulo ng 0805 LED.
  5. Gamitin ang soldering iron upang maglagay ng ilang lata sa magkabilang dulo ng 0805 LED.
  6. Gamitin ang tweezers upang ilagay ang LED tulad ng ipinakita sa larawan. Ang dulo ng cathode ay karaniwang may isang minarkahang linya. Sa aking halimbawa, mayroong isang berdeng linya sa dulo ng cathode. Ilagay ang dulo ng cathode sa dulo ng capacitor.
  7. Gamitin ang tweezers upang magdagdag ng presyon ng ilaw sa LED patungo sa capacitor, at solder ang LED sa dulo ng capacitor, sa pamamagitan ng pagdaragdag ng init sa dulo ng capacitor nang sabay. Huwag pindutin nang husto sa LED. Ang takip nito ay maaaring masira sa ilalim ng init at labis na presyon. Pagkatapos ng paghihinang, magdagdag ng banayad na presyon sa LED patagilid, upang subukan kung ang LED ay na-solder sa lugar.
  8. Ngayon solder ang LED sa XSHUT dip pad. Ang hakbang na ito ay dapat na mas madali.

Tandaan: Ang dulo ng capacitor na ipinakita sa larawan ay ang ground terminal sa breakout board na ito. At ang dip pad XSHUT ay hinila-up ng isang risistor.

Pagsubok sa LED

Dapat na ilaw ang LED kapag naglapat ka ng kuryente (e.x. 5V) at ground sa breakout board.

Hakbang 4: Paghihinang sa N-Channel MOSFET

Paghinang ng N-Channel MOSFET
Paghinang ng N-Channel MOSFET
Paghinang ng N-Channel MOSFET
Paghinang ng N-Channel MOSFET
Paghinang ng N-Channel MOSFET
Paghinang ng N-Channel MOSFET
Paghinang ng N-Channel MOSFET
Paghinang ng N-Channel MOSFET

Paghihinang sa AO3400 N-Channel MOSFET

Ang MOSFET na ito ay nasa SOT-23 na pakete. Kailangan nating "isalansan" ito sa LED, at magdagdag din ng isang kawad:

  1. Maglagay ng ilang paste na panghinang at i-lata ang lahat ng tatlong mga terminal.
  2. Gumamit ng mga tweezer upang ilagay ang MOSFET sa tuktok ng 0805 LED. Dapat hawakan ng terminal ng S ang tuktok ng capacitor
  3. Paghinang ng terminal ng S na may dulo ng capacitor, tulad ng ipinakita sa larawan.
  4. Gupitin ang isang maliit na seksyon AWG # 30 solong core wire, at alisin ang patong tungkol sa 1cm.
  5. Gamitin ang soldering iron upang matunaw ang solder sa XSHUT hole mula sa ibaba, at ipasok ang # 30 wire mula sa itaas, tulad ng ipinakita sa larawan.
  6. Ang paghihinang sa itaas na dulo ng kawad sa MOSFET D terminal.
  7. Putulin ang sobrang kawad.

Tandaan: Ang MOSFET S terminal ay konektado sa dulo ng capacitor tulad ng ipinakita sa larawan. Ang pagtatapos na ito ay ang ground terminal. Ang MOSFET D terminal ay konektado sa orihinal na XSHUT pin.

Ang Terminal G ay hindi konektado sa ngayon. Ang posisyon nito ay nasa itaas lamang ng ilang mga pull-up resistors. Tiyaking mayroong agwat sa pagitan nila (N-MOS at risistor) at hindi nakikipag-ugnay sa bawat isa.

Hakbang 5: Mga kable ng Sensor Array

Kable ng Sensor Array
Kable ng Sensor Array
Kable ng Sensor Array
Kable ng Sensor Array
Kable ng Sensor Array
Kable ng Sensor Array

Karaniwang Mga Kable ng Bus

Kasama sa karaniwang bus ang:

  • Lakas ng Vcc. Pula sa larawan. Gumagamit ako ng arduino nano na may 5v na lohika. Ang breakout board ay may LDO at level-shifter. Kaya't ligtas na gamitin ang 5v bilang Vin.
  • Lupa Itim sa larawan.
  • SDA. Green sa larawan.
  • SCL. Dilaw sa larawan.

Ang apat na linya na ito ay karaniwang mga linya. Gupitin ang naaangkop na haba ng mga wires at paghihinang ang mga ito nang kahanay, sa lahat ng mga module ng sensor. Gumamit ako ng 20 cm mula sa arduino hanggang sa unang sensor, at 5 cm bawat isa pagkatapos.

XSHUTN at GPIO Mga Kable

Ang 20 cm puting wire ay mula sa arduino control pin, sa XSHUTN pin ng unang sensor. Ito ang kinakailangang linya ng kontrol upang mailabas ang unang chip ng VL53L0X mula sa pag-reset at baguhin ang I2C address.

Ang 5 cm puting wire sa pagitan ng bawat module ay ang linya ng control chain ng daisy. Ang upstream chip (halimbawa, chip # 3) GPIO pad, ay konektado sa downstream (halimbawa, chip # 4) XSHUTN leg (N-Channel MOSFET G terminal).

Mag-ingat na huwag makipag-ugnay sa terminal ng G sa risistor sa ibaba. Maaari kang magdagdag ng isang insulation tape sa puwang. Karaniwang ibinibigay ang protection liner na may VL53L0X chip dito.

Gamitin ang heat gun upang idikit ang control wire.

Mainit na Pandikit

Tulad ng nakikita mo sa larawan, mayroong isang patak ng mainit na pandikit sa puting control wire, malapit sa terminal ng N-MOS G. Napakahalaga ng hakbang na ito at ganap na kinakailangan. Ang isang lumulutang na paghihinang nang direkta sa binti ng bahagi ng SMD ay napakahina. Kahit na ang isang maliit na presyon sa kawad ay maaaring mabali ang binti. Gawin itong hakbang ng marahan.

Pagsubok sa LED

Kapag naglapat ka ng lakas (hal. 3.3v-5v) at ground sa array ng sensor, ang LED sa unang module ay dapat tumugon sa antas ng lohika ng XSHUTN. Kung ikinonekta mo ang XSHUTN sa mataas na lohika (hal. 3.3v-5v), dapat patayin ang LED. Kung ikinonekta mo ang XSHUTN wire sa mababa (ground), ang LED sa unang module ay dapat na nakabukas.

Para sa lahat ng kasunod na mga module, dapat patayin ang LED.

Ang pagsubok na ito ay isinasagawa bago kumonekta sa arduino.

Hakbang 6: Pagkumpleto sa Sensor Array

Image
Image
Pagkumpleto ng Sensor Array
Pagkumpleto ng Sensor Array
Pagkumpleto ng Sensor Array
Pagkumpleto ng Sensor Array
Pagkumpleto ng Sensor Array
Pagkumpleto ng Sensor Array

Pagsubok sa Daisy Chain

Ngayon gusto namin ng pagsubok kung ang I2C address pagbabago ay gumagana para sa lahat ng mga sensor sa array. Tulad ng nabanggit, ang unang maliit na tilad ay kinokontrol ng arduino. Ang pangalawang chip ay kinokontrol ng unang maliit na tilad, at iba pa.

  1. I-setup ang board ng tinapay. Ang 5V at Ground rail ay direktang konektado mula sa adriano 5V at ground. Ang kasalukuyang pagkonsumo para sa bawat sensor ay na-rate na 19ma sa datasheet.
  2. Magdagdag ng isang kapasitor sa power rail upang makatulong na patatagin ang Vin.
  3. Ikonekta ang Vin at Ground mula sa array ng sensor sa power rail.
  4. Ikonekta ang SDA sa arduino Nano pin A4 (maaaring magkakaiba para sa iba pang mga micro-Controller).
  5. Ikonekta ang SCL sa arduino Nano pin A5 (maaaring magkakaiba para sa iba pang mga micro-Controller).
  6. Ikonekta ang XSHUTN wire sa arduino Nano pin D2. (Maaari itong mabago sa sketch).
  7. Pumunta sa github https://github.com/FuzzyNoodle/Fuzzy-Radar at i-download ang library.
  8. Buksan ang halimbawang "Daisy_Chain_Testing" at i-upload ang sketch.

Kung gumagana ang lahat, dapat mong makita ang mga status LEDs na ilaw isa-isa, katulad ng video clip sa itaas.

Maaari mo ring buksan ang Serial Window, at makita ang pagsulong sa pagsisimula. Ang output ay lilitaw tulad nito:

Pagbukas ng portPort buksan ang Simula ng sketch. Itakda ang chip 0 sa mode na pag-reset. Ang lahat ng mga LED status ay dapat na naka-off. Ngayon ang pag-configure ng mga sensor. Ang LED ay dapat na ilaw isa-isa. Ang pag-configure ng chip 0 - I-reset ang I2C address sa 83 - Ipasimula ang sensor. Ang pag-configure ng chip 1 - I-reset ang I2C address sa 84 - Ipasimula ang sensor. Ang pag-configure ng chip 2 - I-reset ang I2C address sa 85 - Ipasimula ang sensor. Natapos ang pagsasaayos ng radar array.

Ipunin ang May-ari at Frame

  1. Maingat na ilagay ang bawat module na GY-530 sa may hawak na may M2x10 screw. Huwag pindutin ang MOSFET o hilahin ang XSHUTN wires.
  2. Ilagay ang bawat may-ari sa pabilog na frame. Gumamit ng ilang maiinit na pandikit upang mabuklod ang mga bahagi.

Muli, ang M2 turnilyo, may hawak at pabilog na frame ay ginagamit upang ilagay ang mga sensor sa isang pabilog na pag-aayos. Maaari kang gumamit ng anumang iba pang mga pamamaraan, tulad ng paggamit ng mga card board, modelo ng kakahuyan, luad, o kahit na maiinit na pandikit ang mga ito sa isang lata.

Ang 3D naka-print na mga file na ginamit ko ay ibinibigay sa ibaba. Ang pabilog na frame ay may 9 na mga module, at pinaghiwalay ng bawat 10 degree bawat isa. Kung mayroon kang isang matalim na mata, mayroong 10 mga module sa nakaraang mga larawan. Ang dahilan? Ipinaliwanag sa ibaba …

Alisin ang Protective Liner

Kung sinundan mo ang mga hakbang mula sa simula, magandang panahon ngayon upang alisin ang proteksiyon na liner sa VL53L0X chip. Sa aking nakaraang mga larawan, tinanggal na ang mga ito dahil kailangan kong subukan ang mga module at tiyaking gumagana ang konsepto bago i-post ang mga ito na maaaring turuan.

Tungkol sa proteksiyon na liner, ang datasheet ay nagsasaad: "Dapat itong alisin ng customer bago pa lang mai-mount ang takip na baso". Ang dalawang maliliit na butas (emitter at tatanggap) sa VL53L0X chip ay mahina laban sa polusyon, tulad ng alikabok, grasa, mainit na pandikit, atbp.

Kapag nadumhan, ang saklaw ay maaaring mabawasan, at ang mga pagbasa ay maaaring ma-off ng isang halatang halaga. Ang isa sa aking module ng pagsubok ay hindi sinasadyang nadumhan ng pandikit na luad, ang saklaw ay nabawasan sa 40cm, at ang pagbabasa ng distansya ay nagkakamali na pinalaki ng 50%. Kaya, mag-ingat!

Hakbang 7: Pagkuha ng Data

Image
Image
Laser Tracer (Pagpapakita)
Laser Tracer (Pagpapakita)

Paggamit ng halimbawa ng Raw_Data_Serial_Output

Ngayon ay talagang nais naming makita ang data mula sa aming sensor array. Sa arduino library sa GitHub:

https://github.com/FuzzyNoodle/Fuzzy-Radar

Mayroong isang halimbawa na tinatawag na Raw_Data_Serial_Output. Ipinapakita ng halimbawang ito ang hilaw na output ng data mula sa array ng sensor. Ang mga halaga ng output ay nasa millimeter.

Matapos mapasimulan ang mga sensor, dapat makita ang isang bagay tulad nito sa serial window kapag iginalaw mo ang iyong kamay sa mga sensor:

Sumangguni sa video clip para sa isang live na pagpapakita.

Paggamit ng halimbawa ng Fuzzy_Radar_Serial_Output

Ang susunod na hakbang ay upang makuha ang kapaki-pakinabang na data mula sa mga pagbabasa sa distansya na ito. Ang nais namin mula sa isang RADAR ay ang distansya at anggulo ng target na object.

  • Ang distansya ay nasa millimeter, na may kaugnayan sa ibabaw ng sensor. Ang pagbabalik ng 0 ay nangangahulugang ang target ay wala sa saklaw.
  • Ang anggulo ay nasa degree, sa pahalang na eroplano. Kasalukuyang inaasahan ng code na ang mga sensor ay spaced pantay. Ang pagbabalik ng 0 degree ay nangangahulugang ang target ay nasa gitnang posisyon ng array.

Ang ilang algorithm sa pag-filter ay inilalapat sa library:

  • Pag-alis ng ingay:

    • Maikli (sa mga tuntunin ng bilang ng sample) ang mga pagbasa ay itinuturing na ingay at inalis.
    • Ang mga pagbabasa na malayo sa ibig sabihin ng halaga ay aalisin.
  • Pagkalkula ng anggulo ng timbang (tingnan ang paglalarawan sa itaas)

    • Ang target na bagay ay ipinapalagay na isang patag na ibabaw
    • Kung maraming sensor ang nakakita ng bagay nang sabay, isang timbang ang kinakalkula para sa bawat sensor.
    • Ang bigat para sa bawat sensor ay kabaligtaran na nauugnay sa distansya nito.
    • Ang resulta na anghel ay kinakalkula mula sa timbang na anggulo ng bawat sensor.
  • Pangunahing pagpipilian ng target:

    • Kung mayroong higit sa isang pangkat ng mga pagbasa, mananatili ang pinakamalawak (na may higit na bilang ng pagbabasa ng sensor) na pangkat.
    • Halimbawa, kung inilalagay mo ang dalawang kamay sa harap ng array ng sensor, mananatili ang kamay na nakita ng higit pang mga sensor.
  • Pinakamalapit na pagpipilian ng target:

    • Kung mayroong higit sa isang napansin na pangkat na may parehong lapad, mananatili ang pangkat sa pinakamalapit na distansya.
    • Halimbawa, kung inilalagay mo ang dalawang kamay sa harap ng array ng sensor, at ang dalawang natukoy na pangkat ay may parehong bilang ng sensor, mananatili ang pangkat na mas malapit sa sensor.

Distansya ng distansya at anggulo ay na-smoothed sa pamamagitan ng mababang pass filter

Sa Raw_Data_Serial_Output, ang mga pagbasa ng hilaw na distansya ay na-convert sa halaga ng distansya at anggulo. Kapag na-upload mo ang sketch, maaari mong buksan ang serial window upang makita ang resulta na katulad nito:

Walang nakita na object. Walang nakita na object. Walang nakitang bagay. Distansya = 0056 Angle = 017 Distansya = 0066 Angle = 014 Distansya = 0077 Angle = 011 Distansya = 0083 Angle = 010 Distansya = 0081 Angle = 004 Distansya = 0082 Angle = 000 Distansya = 0092 Angle = 002 Distansya = 0097 Angle = 001 Distansya = 0096 Angle = 001 Distansya = 0099 Angle = 000 Distansya = 0101 Angle = -002 Distansya = 0092 Angle = -004 Distansya = 0095 Angle = -007 Distansya = 0101 Angle = -008 Distansya = 0112 Angle = -014 Distansya = 0118 Angle = -017 Distansya = 0122 Angle = -019 Distansya = 0125 Angle = -019 Distansya = 0126 Angle = -020 Distansya = 0125 Angle = -022 Distansya = 0124 Angle = -024 Distansya = 0133 Angle = -027 Distansya = 0138 Angle = - 031 Distansya = 0140 Angle = -033 Distansya = 0136 Angle = -033 Distansya = 0125 Angle = -037 Distansya = 0120 Angle = -038 Distansya = 0141 Angle = -039 Walang nakita ang bagay. Walang nakitang bagay. Walang nakitang bagay.

Kaya ngayon, mayroon kang RADAR (LIDAR):

  • Mas maliit kaysa sa mga module ng ultrasonic sensor
  • Walang gumagalaw na bahagi
  • Mga pag-scan sa 40 Hz.
  • Hugis tulad ng isang sinturon, maaaring mai-mount sa isang pabilog na frame
  • Gumamit lamang ng tatlong control wires, plus power at ground.
  • Mayroong isang saklaw mula sa 30 millimeter hanggang sa paligid ng 1000 millimeter.

Sa mga sumusunod na hakbang, ipapakita namin sa iyo ang ilang mga cool na demonstrasyon!

Hakbang 8: Laser Tracer (Pagpapakita)

Image
Image
Laser Tracer (Pagpapakita)
Laser Tracer (Pagpapakita)

Ito ay isang halimbawa ng paggamit ng Stationary Radar na binuo namin mula sa mga nakaraang hakbang. Ang hakbang na ito ay hindi nakasulat nang detalyado, dahil ito ay isang demonstrator ng Radar. Sa pangkalahatan, kailangan mo ng mga karagdagang item na ito upang maitayo ang demonstrasyong proyekto na ito:

  • Dalawang servo
  • Isang laser pen na nagpapalabas ng ulo
  • Isang MOSFET o NPN Transistor upang makontrol ang output ng laser head
  • Isang mapagkukunan ng kuryente para sa mga servo. Dapat itong ihiwalay mula sa micro-controller.

Maaaring mai-download ang code dito.

Mangyaring tingnan ang video na ibinigay.

Hakbang 9: Nakatingin sa Poopeyes (Pagpapakita)

Image
Image

Pagpapakita ng paggamit ng radar ang layo upang subaybayan ang lokasyon ng lokasyon at distansya.

Inirerekumendang: