Mündəricat:

Arduino ilə Sabit Radar (LIDAR) Dizisi: 10 Addım (Şəkillərlə)
Arduino ilə Sabit Radar (LIDAR) Dizisi: 10 Addım (Şəkillərlə)

Video: Arduino ilə Sabit Radar (LIDAR) Dizisi: 10 Addım (Şəkillərlə)

Video: Arduino ilə Sabit Radar (LIDAR) Dizisi: 10 Addım (Şəkillərlə)
Video: Yeni itfaiye aracı 2024, Iyul
Anonim
Arduino ilə Sabit Radar (LIDAR) Dizisi
Arduino ilə Sabit Radar (LIDAR) Dizisi
Arduino ilə Sabit Radar (LIDAR) Dizisi
Arduino ilə Sabit Radar (LIDAR) Dizisi
Arduino ilə Sabit Radar (LIDAR) Dizisi
Arduino ilə Sabit Radar (LIDAR) Dizisi

İki ayaqlı bir robot qurarkən həmişə rəqibimi izləyə və onunla hücum hərəkətləri edə biləcək bir növ sərin cihaza sahib olmağı düşünürdüm. Burada artıq radar/lidar layihələri mövcuddur. Ancaq məqsədim üçün bəzi məhdudiyyətlər var:

  • Ultrasonik dalğa sensoru modulları olduqca böyükdür. Hər robot WALL-E kimi görünür.
  • Mövcud radar layihələrinin hamısına bir sensor (ya ultrasəs dalğaları, İK, lazer,…) və ortada bir servo motor daxildir. Ətrafın taranması üçün servonun yan -yana hərəkət etməsi tələb olunur. Əşyaları irəli -geri daşımaq, ikiqat tarazlıq və gəzinti üçün pis olan impuls dəyişiklikləri yaradır.
  • Tarama tezliyi servo sürəti ilə məhdudlaşır. Çox güman ki, yalnız bir neçə hertz əldə edilə bilər. Tarama tezliyi bəzi super servo ilə artırıla bilsə belə, bu, güclü titrəmə ilə nəticələnə bilər.
  • [Mərkəzi servo motor - sensor] tənzimləməsi, həm də montaj və dizayn üçün mövqeyi məhdudlaşdırır. Başdan başqa bir şeyə minmək çətindir. Hansı ki, ayaqlarımı hər dəfə titrəyən WALL-E kimi göstərir. Sərin deyil!
  • [Servo-sensor] quruluşu [motor-sensor] tərzi kimi də qurula bilər. Sensor (və ya sensorlar) bir motor oxu boyunca davamlı olaraq fırlanır. Bu, momentum sarsıntılarını və aşağı tarama tezliyi problemlərini ortadan qaldıra bilər, ancaq gövdə dizaynı məhdudiyyətini deyil. Kabel çəkmək də əhəmiyyətli dərəcədə artacaq.

Axtarışdan sonra ST -dən olan bu kiçik VL53L0X sensoru gözlərimə sıçradı. "Dünyanın Ən Kiçik" uçuş vaxtı dəyişən sensoru olduğunu iddia edərək, ölçü yalnız 4.4 x 2.4 x 1.0 mm-dir. Featuring

  • Çipdə IR lazer yayıcı və detektor
  • 2 m aralığa qədər (sürətli rejimdə 1,2 m)
  • Proqramlaşdırıla bilən I2C ünvanı
  • GPIO kəsmə çıxış pin
  • Gözlər təhlükəsizdir

Bütün bu xüsusi xüsusiyyətlər, bir sıra VL53L0X sensorlar işləyə bilsəydi, yuxarıdakı problemləri aradan qaldırmağa imkan verdi. Əvvəlcə bu radarın qatı hal radarı adlandırılacağını düşündüm, amma bu terminin başqa bir şey üçün istifadə edildiyini öyrəndim. Buna görə də başlıqdakı "Stasionar" sözü bu radar gadgetında heç bir hərəkət edən hissənin olmadığını bildirir. Ayrıca, LIDAR (işıq algılama və dəyişmə) bu çip üçün texniki cəhətdən düzgün bir termin olsa da, RADAR burada daha ümumi bir termin olaraq xatırlanır.

Proqramlaşdırıla bilən I2C ünvanı və GPIO çıxış pininin bu layihə üçün vacib olmasının səbəbi daha sonra izah ediləcəkdir.

Addım 1: Alətlər və hissələr

Alətlər və hissələr
Alətlər və hissələr
Alətlər və hissələr
Alətlər və hissələr

Alətlər

Bu layihədə aşağıdakı vasitələr tələb olunur:

  • Lehimleme dəmir
  • Əllərin lehimlənməsi
  • Dupont qıvrım vasitəsi
  • 1.5 mm hex sürücü
  • Tel örtüklərin çıxarılması vasitəsi
  • Tel kəsici
  • İsti yapışqan silahı
  • Cımbız
  • Büyüteç (fiziki və ya telefonunuzdakı tətbiqlər)
  • Düz burun kəlbətinləri

Hissələri

Bu layihədə aşağıdakı hissələr istifadə olunur:

  • 10x VL53L0X GY-530 qırılma lövhələri
  • Bir Arduino (Uno, Nano, Mega, Sıfır, Mini, və s.)
  • Bir çörək taxtası və bir az çörək taxtası telləri
  • Fərqli rəngli AWG #26 telləri
  • AWG #30 tək nüvəli tel
  • 5x Dupont kişi konnektoru
  • 5x Tək pinli Dupont yuvaları
  • 10x 3D çaplı kəsmə taxtası sahibləri
  • 1x 3D çaplı dairəvi çərçivə
  • 10x M2x10 düz başlı vintlər
  • 10x 0804 LED (Mavi yenidən tövsiyə olunur)
  • 10x SOT-23 AO3400 N-Kanal MOSFET
  • Kiçik bir kondansatör (10 ~ 100 uF)

Qırılma lövhəsi

İstifadə etdiyim VL53L0X qırılma taxtası GY-530-dur. Adafruit versiyası və Pololu versiyası da mövcuddur. Mümkünsə, Adafruit və ya Pololu məhsullarından istifadə etməyi məsləhət görürəm, çünki onlar əla məhsullar, əla dərsliklər və əla proqram kitabxanaları yaradır. Adafruit -in VL53L0X kitabxanasında test etdim və Pololu'nun VL53L0X kitabxanasının dəyişdirilmiş versiyasından istifadə etdim.

Dupont bağlayıcıları

Dupont bağlayıcıları çörək taxtası üçün istifadə olunur. Əlinizdə olan hər hansı bir əlaqə növündən istifadə edə bilərsiniz.

Vintlər və 3D çaplı hissələr

M2 vintlər, tutucular və dairəvi çərçivə, sensorları dairəvi bir şəkildə yerləşdirmək üçün istifadə olunur. Karton lövhələr, model ağaclar, gil və ya hətta bir bankaya isti yapışqan istifadə etmək kimi başqa üsullardan da istifadə edə bilərsiniz.

Addım 2: Açıqlama lövhəsini sındırın

Açıqlama lövhəsini sındırın
Açıqlama lövhəsini sındırın
Açıqlama lövhəsini sındırın
Açıqlama lövhəsini sındırın
Açıqlama lövhəsini sındırın
Açıqlama lövhəsini sındırın
Açıqlama lövhəsini sındırın
Açıqlama lövhəsini sındırın

Algılama Konusu

Algılama konisini çəkmək üçün tək bir moduldan istifadə etdim. Hədəf olaraq əsasən 3D çaplı robotdan istifadə. Məsafə LED ekranda göstərilir və təxminən ölçülür. Ölçülmüş məlumatlar Microsoft Excel faylına yazılır və əyri uyğunlaşdırma funksiyasından istifadə olunur. Ən yaxşı uyğunluq, təsirli məsafə 3 sm -dən təxminən 100 sm -ə qədər olan təbii logarifm əyrisidir.

60 sm -də, bir sensor üçün aşkarlama əyrisi təxminən 22 sm -dir. 20 sm genişlikdə bir hədəflə, radar dizisi üçün 10 ~ 15 dərəcə dairəvi ayrılma məqbul bir tarama qətnaməsi verməlidir.

I2C ünvanı

VL53L0X I2C cihaz ünvanı proqramlaşdırıla bilsə də, mikro nəzarətçi tərəfindən XSHUT pininə tam nəzarət tələb olunur. Bunun ardıcıllığı belədir:

  1. Güc AVDD -yə tətbiq olunur.
  2. Bütün VL53L0X çipləri, ALL XSHUT pinlərini LOW -a endirərək Hw Standby (sıfırlama) vəziyyətinə gətirilir.
  3. Hər bir çip bir anda sıfırlama vəziyyətindən çıxarılır. Yükləndikdən sonra standart I2C ünvanı 0x52 -dir.
  4. Çip ünvanı I2C əmri ilə yeni bir ünvana dəyişdirilir. Məsələn, 0x52 0x53 olaraq dəyişdi.
  5. Bütün çiplər üçün 3 və 4 -cü addımları təkrarlayın.

Teorik olaraq, 7 bitlik ünvan aralığı üçün eyni avtobusda maksimum 126 ədəd sürülə bilər. Bununla birlikdə, praktik olaraq, mikrokontrolörün avtobus tutumu və batan cərəyan məhdudiyyəti maksimum cihaz sayını məhdudlaşdıra bilər.

Yeni I2C ünvanı, VL53L0X çipində gücün kəsilməsinə və ya sıfırlanmasına qarşı saxlanılmır. Beləliklə, bu proses hər dəfə güclənəndə edilməlidir. Bu o deməkdir ki, radar massivindəki hər vahid üçün bir qiymətli pin lazımdır. Bu, 10+ və ya 20+ ədəd olan bir radar kəməri üçün naqillər və pin istehlakı üçün çox düşməndir.

STEP1 -də qeyd edildiyi kimi, VL53L0X çipində əvvəlcə fasilə üçün istifadə olunan bir GPIO1 pininin işin öhdəsindən gələ bilməsi şanslıdır.

GPIO-XSHUTN papatya zənciri

GPIO çıxışı açıldıqda yüksək empedans vəziyyətindədir və aktiv olduqda aşağı axıdılır. GPIO və XSHUT pinləri, məlumat cədvəlində tövsiyə edildiyi kimi, GY-530 qırılma lövhəsində AVDD-yə yüksək çəkilir. Bütün VL53L0X çiplərini Hw Standby vəziyyətinə etibarlı şəkildə qoymaq üçün (aşağı XSHUT sürmə), hər bir XSHUT pimi üçün məntiqi DEĞİL qapıya (çeviriciyə) ehtiyacımız var. Sonra bir çipin GPIO çıxışını (N-ci çip), aşağı çipin XSHUTN-ə (XSHUT-NOT) (N+1 çipi) bağlayırıq.

Güc açıldıqda, bütün GPIO pinləri (hərəkətsiz) yuxarı çəkilir, sonrakı bütün XSHUT pinləri NOT qapısı ilə aşağı çəkilir (XSHUTN pininin mikro nəzarətçiyə qoşulduğu çip istisna olmaqla). I2C ünvan dəyişikliyi və aşağı çipin XSHUT buraxılışı proqramda bir -bir edilir.

Fərqli qırılma lövhələrindən istifadə edirsinizsə, çəkmə rezistorlarının yerində olub olmadığından əmin olmalı və müvafiq düzəlişlər etməlisiniz.

Bir LED əlavə edin

Növbəti addımda, XSHUT padindən bitişik bir kondansatörün GND terminalına qoşulan kiçik bir 0805 SMD LEDi qırılma lövhəsinə əlavə olunacaq. LED -in özü modulun işinə təsir etməsə də, bizə XSHUT məntiq səviyyəsində yaxşı bir əyani göstəriş verir.

LED-in XSHUT pinindəki çəkmə rezistoru (mənim vəziyyətimdə 10k) ilə ardıcıl olaraq bağlanması bir gərginlik düşməsinə səbəb olacaq. Yüksək məntiq səviyyəsi 3.3v əvəzinə, qırmızı 0805 LED -in irəli gerilim düşməsi 1.6v ölçülür. Bu gərginlik məlumat cədvəlindəki yüksək məntiq səviyyəsindən (1.12v) daha yüksək olsa da, mavi LED bu hack üçün daha yaxşıdır. Mavi LED üçün irəli gərginlik düşməsi, çipin məntiq səviyyəsindən etibarlı şəkildə yüksək olan 2.4v ölçülür.

N-MOS çeviricinin əlavə edilməsi (Məntiq Qapı deyil)

Əlavə etdiyimiz LED-də kiçik bir SOT-23 N-kanallı MOSFET yığılıb. Qırılma lövhəsində iki terminalın (D, S) lehimlənməsi lazımdır və qalan terminal (G) 26 nömrəli teldən istifadə edərək yuxarı axın lövhəsi GPIO pininə bağlanır.

SMD komponentlərinin əlavə edilməsi haqqında qeydlər

SMD komponentlərini xüsusi bir lövhədə lehimləmək asan bir iş deyil. 0805, SMD, SOT-23 haqqında hələ eşitməmisinizsə, bu kiçik hissələri əvvəllər lehimləməməyiniz ehtimalı var. Bu kiçik komponentləri əl ilə işləyərkən çox yaygındır:

  • Kiçik şey düşdü və əbədi olaraq yox oldu
  • Kiçik şeyin üzərindəki kiçik yastıqlar soyulub.
  • Kiçik şeyin üzərindəki kiçik ayaqlar qırıldı.
  • Lehimləmə qabı bir ləkəyə yığıldı və ayrılmadı.
  • Və daha çox…

Hələ də bu radarı etmək istəyirsinizsə, edə bilərsiniz:

  • Komponentləri DIP tərzi kimi daha böyük bir paketə dəyişdirin.
  • Təcrübə və istehlak üçün minimumdan daha çox komponent alın.

Addım 3: 0805 LED -in lehimlənməsi

0805 LED -in lehimlənməsi
0805 LED -in lehimlənməsi
0805 LED -in lehimlənməsi
0805 LED -in lehimlənməsi
0805 LED -in lehimlənməsi
0805 LED -in lehimlənməsi
0805 LED -in lehimlənməsi
0805 LED -in lehimlənməsi

0805 SMD LED -in lehimlənməsi

0805 LEDini SMD üçün nəzərdə tutulmamış bir lövhədə lehimləmək heç də asan məsələ deyil. Aşağıdakı addımlar, LED -in lehimlənməsi ilə bağlı tövsiyəmdir.

  1. Kəsmə lövhənizi tutmaq üçün köməkçi əlindən istifadə edin.
  2. SMD kondansatörünün və "XSHUT" padinin kənarına bir az lehim pastası qoyun.
  3. Kondansatör kənarına əlavə lehim qoymaq üçün lehimləmə dəmirindən istifadə edin.
  4. 0805 LED -in hər iki ucuna bir az lehim pastası qoyun.
  5. 0805 LED -in hər iki ucuna bir az qalay qoymaq üçün lehimləmə dəmirindən istifadə edin.
  6. LED -i fotoşəkildə göstərildiyi kimi yerləşdirmək üçün cımbızlardan istifadə edin. Mənim nümunəmdə, katodun ucunda yaşıl bir xətt var. Katodun ucunu kondansatörün ucuna qoyun.
  7. LED -ə kondansatörə doğru işıq təzyiqi əlavə etmək üçün cımbızlardan istifadə edin və kondansatörün ucuna eyni zamanda istilik əlavə edərək LED -i kondansatörün ucuna lehimləyin. LED -ə çox basmayın. İsti və həddindən artıq təzyiq altında örtüyü qırıla bilər. Lehimdən sonra, LED -in yerində lehimli olub olmadığını yoxlamaq üçün yan tərəfə LED -ə yumşaq bir təzyiq əlavə edin.
  8. İndi LED -i XSHUT dip padində lehimləyin. Bu addım daha asan olmalıdır.

Qeyd: Şəkildə göstərilən kondansatör ucu bu qırılma lövhəsindəki torpaq terminalıdır. XSHUT dip pad bir rezistor tərəfindən çəkilir.

LED -in sınanması

Qırılma lövhəsinə enerji (e.x. 5V) və torpaq qoyduğunuzda LED yanmalıdır.

Addım 4: N-Kanal MOSFET-in lehimlənməsi

N-Kanal MOSFET-in lehimlənməsi
N-Kanal MOSFET-in lehimlənməsi
N-Kanal MOSFET-in lehimlənməsi
N-Kanal MOSFET-in lehimlənməsi
N-Kanal MOSFET-in lehimlənməsi
N-Kanal MOSFET-in lehimlənməsi
N-Kanal MOSFET-in lehimlənməsi
N-Kanal MOSFET-in lehimlənməsi

AO3400 N-Kanal MOSFET-in lehimlənməsi

Bu MOSFET SOT-23 paketindədir. LED -də "yığmalı" və bir tel əlavə etməliyik:

  1. Bir az lehim pastası qoyun və hər üç terminali qalaylayın.
  2. MOSFET -i 0805 LED -in üstünə yerləşdirmək üçün cımbız istifadə edin. S terminal kondansatörün üst hissəsinə toxunmalıdır
  3. S terminalını fotoşəkildə göstərildiyi kimi kondansatör ucu ilə lehimləyin.
  4. Kiçik bir bölmə AWG #30 tək nüvəli tel kəsin və təxminən 1 sm örtüyü çıxarın.
  5. XSHUT çuxurundakı lehimi aşağıdan əritmək üçün havya istifadə edin və fotoşəkildə göstərildiyi kimi #30 teli yuxarıdan daxil edin.
  6. Telin yuxarı ucunu MOSFET D terminalına lehimləmək.
  7. Əlavə teli kəsin.

Qeyd: MOSFET S terminalı, şəkildə göstərildiyi kimi kondansatörün ucuna bağlıdır. Bu uc torpaq terminaldır. MOSFET D terminali orijinal XSHUT pininə qoşulur.

G terminalı hazırda bağlı deyil. Onun mövqeyi bəzi çəkmə rezistorlarının üstündədir. Aralarında bir boşluq olduğundan əmin olun (N-MOS və rezistor) və bir-biri ilə təmasda deyil.

Addım 5: Sensor Arrayının Kabellənməsi

Sensor Arrayının Kabellənməsi
Sensor Arrayının Kabellənməsi
Sensor Arrayının Kabellənməsi
Sensor Arrayının Kabellənməsi
Sensor Arrayının Kabellənməsi
Sensor Arrayının Kabellənməsi

Ümumi Avtobus Kabelləri

Ümumi avtobusa daxildir:

  • Vcc gücü. Fotoda qırmızı. 5v məntiqi ilə arduino nano istifadə edirəm. Qırılma taxtasında LDO və səviyyə dəyişdirici var. Beləliklə, 5v -ni Vin olaraq istifadə etmək təhlükəsizdir.
  • Zəmin. Fotoda qara.
  • SDA. Fotoda yaşıl.
  • SCL. Fotoda sarı.

Bu dörd xətt ümumi xətlərdir. Müvafiq uzunluqdakı telləri kəsin və paralel olaraq bütün sensor modullarına lehimləyin. Arduinodan ilk sensora qədər 20 sm və bundan sonra hər biri 5 sm istifadə etdim.

XSHUTN və GPIO naqilləri

20 sm ağ tel arduino idarəetmə pinindən, ilk sensorun XSHUTN pininə qədərdir. Bu, ilk VL53L0X çipini sıfırdan çıxarmaq və I2C ünvanını dəyişdirmək üçün lazım olan nəzarət xəttidir.

Hər bir modul arasındakı 5 sm ağ tel papatya zəncirinin idarəetmə xəttidir. Yuxarı axın çipi (məsələn, çip #3) GPIO pad, aşağı axına (məsələn, çip #4) XSHUTN ayağına (N-Channel MOSFET G terminalı) bağlıdır.

Aşağıdakı rezistorla G terminalının təmas etməməsinə diqqət yetirin. Boşluğa bir izolyasiya lenti əlavə edə bilərsiniz. Adətən VL53L0X çipi ilə təchiz edilmiş qoruyucu astar burada istifadə edilə bilər.

Nəzarət telini yapışdırmaq üçün istilik tabancasından istifadə edin.

İsti yapışqan

Fotoda gördüyünüz kimi, N-MOS G terminalının yaxınlığındakı ağ idarəetmə telində isti yapışqan var. Bu addım çox vacibdir və tamamilə zəruridir. SMD komponentinin ayağına birbaşa üzən lehimləmə çox zəifdir. Tel üzərində kiçik bir təzyiq olsa belə ayağı qıra bilər. Bu addımı yumşaq bir şəkildə edin.

LED -in sınanması

Sensor massivinə güc (məsələn, 3.3v-5v) və torpaq tətbiq edərkən, birinci moduldakı LED XSHUTN tel məntiq səviyyəsi ilə cavab verməlidir. XSHUTN-ni yüksək məntiqə (məsələn, 3.3v-5v) bağlasanız, LED sönməlidir. XSHUTN telini aşağıya (yerə) bağlasanız, birinci moduldakı LED yanmalıdır.

Sonrakı bütün modullar üçün LED söndürülməlidir.

Bu test arduino -ya qoşulmadan əvvəl aparılır.

Addım 6: Sensor Arrayını tamamlayın

Image
Image
Sensor Arrayının tamamlanması
Sensor Arrayının tamamlanması
Sensor Arrayının tamamlanması
Sensor Arrayının tamamlanması
Sensor Arrayının tamamlanması
Sensor Arrayının tamamlanması

Daisy Zəncir Testi

İndi I2C ünvan dəyişikliyinin dizidəki bütün sensorlar üçün işlədiyini yoxlamaq istəyirik. Qeyd edildiyi kimi, ilk çip arduino tərəfindən idarə olunur. İkinci çip birinci çip tərəfindən idarə olunur və s.

  1. Çörək qabını qurun. 5V və Yerüstü dəmir yolu birbaşa Adriano 5V və yerə bağlıdır. Məlumat cədvəlində hər bir sensor üçün cari istehlak 19ma qiymətləndirilir.
  2. Vinin sabitləşməsinə kömək etmək üçün elektrik rayına bir kondansatör əlavə edin.
  3. Sensor sistemindən Vin və Ground'u elektrik rayına qoşun.
  4. SDA-nı arduino Nano pin A4-ə qoşun (digər mikro nəzarətçilər üçün fərqli ola bilər).
  5. SCL-ni arduino Nano pin A5-ə qoşun (digər mikro nəzarətçilər üçün fərqli ola bilər).
  6. XSHUTN telini arduino Nano pin D2 -yə qoşun. (Bu eskizdə dəyişdirilə bilər).
  7. Github https://github.com/FuzzyNoodle/Fuzzy-Radar saytına daxil olun və kitabxananı yükləyin.
  8. "Daisy_Chain_Testing" nümunəsini açın və eskizi yükləyin.

Hər şey işləyirsə, yuxarıdakı video klipə bənzər vəziyyət LED -lərinin bir -bir yandığını görməlisiniz.

Serial Pəncərəsini də aça bilərsiniz və başlanğıc tərəqqisini görə bilərsiniz. Çıxış belə görünür:

PortPort açılır Başlanğıc eskiz. 0 çipini sıfırlama rejiminə qoyun. Bütün vəziyyət LEDləri söndürülməlidir. İndi sensorlar konfiqurasiya olunur. LED tək -tək yanmalıdır. Çip 0 konfiqurasiya - I2C ünvanını 83 olaraq sıfırlayın - Sensoru işə salın. Çip 1 -in konfiqurasiyası - I2C ünvanını 84 -ə sıfırlayın - Sensoru işə salın. Çip 2 -ni konfiqurasiya etmək - I2C ünvanını 85 -ə qaytarmaq - Sensoru işə salın. Radar massivinin konfiqurasiyası tamamlandı.

Tutucu və Çərçivəni yığın

  1. Hər GY-530 modulunu diqqətlə M2x10 vidası ilə tutucuya yerləşdirin. MOSFET -ə basmayın və XSHUTN tellərini çəkməyin.
  2. Hər bir tutucunu dairəvi çərçivəyə yerləşdirin. Parçaları yapışdırmaq üçün bir az isti yapışqan istifadə edin.

Yenə M2 vintlər, tutucular və dairəvi çərçivə, sensorları dairəvi bir şəkildə yerləşdirmək üçün istifadə olunur. Karton lövhələr, taxta modellər, gil və ya hətta bir bankaya isti yapışqan istifadə etmək kimi başqa üsullardan da istifadə edə bilərsiniz.

İstifadə etdiyim 3D çap sənədləri aşağıda verilmişdir. Dairəvi çərçivə hər biri 10 dərəcə ayrılmış 9 moduldan ibarətdir. Kəskin bir gözünüz varsa, əvvəlki fotoşəkillərdə 10 modul var idi. Səbəb? Aşağıda izah…

Qoruyucu astar çıxarın

Adımları əvvəldən izləsəniz, VL53L0X çipindəki qoruyucu astarın çıxarılması üçün yaxşı vaxtdır. Əvvəlki fotoşəkillərimdə artıq silinir, çünki modulları sınamalı və bu təlimatları yerləşdirməzdən əvvəl konsepsiyanın işlədiyinə əmin olmalıyam.

Qoruyucu astar haqqında məlumat vərəqində deyilir: "Müştəri qapaq şüşəsini quraşdırmazdan əvvəl çıxarmalıdır". VL53L0X çipindəki iki kiçik deşik (yayıcı və alıcı) toz, yağ, isti yapışqan və s. Kimi çirklənməyə həssasdır.

Çirkləndikdən sonra diapazon azaldıla bilər və oxunuşlar açıq -aşkar bir miqdarda söndürülə bilər. Test modullarımdan biri təsadüfən yapışqan gil ilə çirkləndi, aralıq 40 sm -ə endirildi və məsafə oxunuşu səhvən 50%artırıldı. Beləliklə, diqqətli olun!

Addım 7: Məlumat əldə etmək

Image
Image
Lazer İzləyicisi (Nümayiş)
Lazer İzləyicisi (Nümayiş)

Raw_Data_Serial_Output nümunəsindən istifadə etməklə

İndi həqiqətən sensor sistemimizdəki məlumatları görmək istəyirik. GitHubdakı arduino kitabxanasında:

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

Raw_Data_Serial_Output adlı bir nümunə var. Bu nümunə, sensorlar silsiləsindən xam məlumat çıxışı göstərir. Çıxış dəyərləri millimetrdir.

Sensorlar işə salındıqdan sonra, sensorlar arasında əlinizi yelləyərkən serial pəncərəsində belə bir şey görməlidir:

Canlı nümayiş üçün video klipə baxın.

Fuzzy_Radar_Serial_Output nümunəsindən istifadə etməklə

Növbəti addım, bu məsafə oxunuşlarından faydalı məlumatlar əldə etməkdir. RADAR -dan istədiyimiz hədəf obyektin məsafəsi və bucağıdır.

  • Sensor səthi ilə əlaqəli məsafə millimetrdir. 0 qaytarılması, hədəfin diapazondan kənara çıxması deməkdir.
  • Bucaq dərəcə ilə, üfüqi müstəvidədir. Hal -hazırda gözlənilən kod, sensorlar bərabər şəkildə yerləşdirilmişdir. 0 dərəcə qayıtmaq, hədəfin dizinin mərkəz mövqeyində olması deməkdir.

Kitabxanada bəzi filtrasiya alqoritmi tətbiq olunur:

  • Səs -küyün aradan qaldırılması:

    • Qısa (nümunə sayı baxımından) oxunuşlar səs -küy sayılır və çıxarılır.
    • Orta dəyərdən çox uzaq olan oxunuşlar silinir.
  • Ağırlıq açısının hesablanması (yuxarıdakı şəklə baxın)

    • Hədəf obyektin düz bir səth olduğu güman edilir
    • Eyni anda birdən çox sensor obyekti aşkar edərsə, hər bir sensor üçün çəki hesablanır.
    • Hər bir sensorun çəkisi onun məsafəsinə tərs bağlıdır.
    • Nəticə mələyi hər bir sensorun ağırlıq bucağından hesablanır.
  • Əsas hədəf seçimi:

    • Birdən çox oxu qrupu varsa, ən geniş (daha çox sensor oxu sayı ilə) qrup qalır.
    • Məsələn, iki əlinizi sensor massivinin qarşısına qoysanız, daha çox sensorlar tərəfindən aşkar edilən əl qalır.
  • Ən yaxın hədəf seçimi:

    • Eyni genişliyə malik birdən çox qrup varsa, ən yaxın məsafədə olan qrup qalır.
    • Məsələn, iki əlinizi sensor massivinin qarşısına qoysanız və aşkarlanan iki qrupun sayı eyni olarsa, sensora daha yaxın olan qrup qalır.

Çıxış məsafəsi və bucağı aşağı keçid filtri vasitəsilə hamarlanır

Raw_Data_Serial_Output -da xam məsafə oxunuşları məsafə və bucaq dəyərinə çevrilir. Eskizi yüklədikdən sonra buna bənzər nəticəni görmək üçün serial pəncərəsini aça bilərsiniz:

Heç bir obyekt aşkarlanmadı. Heç bir obyekt aşkarlanmadı. Heç bir obyekt aşkarlanmadı. Məsafə = 0056 Açı = 017 Məsafə = 0066 Bucaq = 014 Məsafə = 0077 Bucaq = 011 Məsafə = 0083 Bucaq = 010 Məsafə = 0081 Bucaq = 004 Məsafə = 0082 Bucaq = 000 Məsafə = 0092 Bucaq = 002 Məsafə = 0097 Bucaq = 001 Məsafə = 0096 Açı = 001 Məsafə = 0099 Bucaq = 000 Məsafə = 0101 Bucaq = -002 Məsafə = 0092 Açı = -004 Məsafə = 0095 Bucaq = -007 Məsafə = 0101 Açı = -008 Məsafə = 0112 Bucaq = -014 Məsafə = 0118 Bucaq = -017 Məsafə = 0122 Açı = -019 Məsafə = 0125 Bucaq -019 Məsafə = 0126 Bucaq -020 Məsafə = 0125 Bucaq -022 Məsafə = 0124 Bucaq -024 Məsafə = 0133 Bucaq = -027 Məsafə = 0138 Bucaq = - 031 Məsafə = 0140 Bucaq = -033 Məsafə = 0136 Bucaq = -033 Məsafə = 0125 Bucaq = -037 Məsafə = 0120 Bucaq = -038 Məsafə = 0141 Bucaq = -039 Heç bir obyekt aşkarlanmadı. Heç bir obyekt aşkarlanmadı. Heç bir obyekt aşkarlanmadı.

Beləliklə, indi bir RADAR (LIDAR) var:

  • Ultrasonik sensor modullarından daha kiçikdir
  • Hərəkətli hissələr yoxdur
  • 40 Hz -də tarar.
  • Kəmər şəklində, dairəvi bir çərçivəyə quraşdırıla bilər
  • Yalnız üç nəzarət telindən əlavə güc və torpaqdan istifadə edin.
  • 30 millimetrdən 1000 millimetrə qədər bir sıra var.

Növbəti addımlarda sizə sərin nümayişlər göstərəcəyik!

Addım 8: Lazer İzləyicisi (nümayiş)

Image
Image
Lazer İzləyicisi (Nümayiş)
Lazer İzləyicisi (Nümayiş)

Bu, əvvəlki addımlardan qurduğumuz Stasionar Radarın istifadəsinin bir nümunəsidir. Bu addım ətraflı olaraq yazılmır, çünki bu, Radarın nümayişçisidir. Ümumiyyətlə, bu nümayiş layihəsini qurmaq üçün bu əlavə maddələrə ehtiyacınız var:

  • İki servo
  • Başını yayan lazer qələm
  • Lazer başının çıxışını idarə etmək üçün bir MOSFET və ya NPN Transistoru
  • Servo üçün enerji mənbəyi. Mikro nəzarətçidən ayrılmalıdır.

Kodu buradan yükləyə bilərsiniz.

Zəhmət olmasa təqdim olunan videoya baxın.

Addım 9: Poopeylərə baxmaq (nümayiş)

Image
Image

Obyektin yerini və məsafəsini izləmək üçün uzaq radardan istifadə nümayişidir.

Tövsiyə: