Turinys:

Stacionarus radaras (LIDAR) su „Arduino“: 10 žingsnių (su nuotraukomis)
Stacionarus radaras (LIDAR) su „Arduino“: 10 žingsnių (su nuotraukomis)

Video: Stacionarus radaras (LIDAR) su „Arduino“: 10 žingsnių (su nuotraukomis)

Video: Stacionarus radaras (LIDAR) su „Arduino“: 10 žingsnių (su nuotraukomis)
Video: LIVE DIY (English): ADAS system and Anti-collision system using LIDAR for EVs and Autonomous vehicle 2024, Lapkritis
Anonim
Stacionarus radaras (LIDAR) su „Arduino“
Stacionarus radaras (LIDAR) su „Arduino“
Stacionarus radaras (LIDAR) su „Arduino“
Stacionarus radaras (LIDAR) su „Arduino“
Stacionarus radaras (LIDAR) su „Arduino“
Stacionarus radaras (LIDAR) su „Arduino“

Kai kuriu dvikojį robotą, visada galvojau turėti kokią nors šaunią programėlę, kuri galėtų atsekti mano priešininką ir su juo atlikti puolimo judesius. Čia jau yra radarų/„lidar“projektų grupių. Tačiau mano tikslui yra keletas apribojimų:

  • Ultragarso bangų jutiklių moduliai yra gana dideli. Kiekvienas robotas atrodytų kaip WALL-E.
  • Visus dabartinius radarų projektus sudaro jutiklis (ultragarso bangos, IR, lazeris,…) ir servo variklis viduryje. Norint nuskaityti aplinką, servo sistema turi judėti iš vienos pusės į kitą. Perkeliant daiktus pirmyn ir atgal, atsiranda impulsų pokyčių, o tai kenkia abipusiam balansavimui ir vaikščiojimui.
  • Nuskaitymo dažnį riboja servo greitis. Tikriausiai galima pasiekti tik keletą hercų. Net jei nuskaitymo dažnį gali padidinti koks nors super servo, tai sukeltų didelę vibraciją.
  • [Centrinio servo variklio - jutiklio] išdėstymas taip pat riboja montavimo vietą ir dizainą. Sunku montuoti tokį daiktą, išskyrus galvą. Dėl to mano dvigalvis kiekvieną kartą atrodo kaip drebanti galva WALL-E. Ne šaunu!
  • [Servo jutiklio] išdėstymas taip pat gali būti sukurtas kaip [variklio jutiklio] stilius. Jutiklis (arba jutikliai) nuolat sukasi išilgai variklio ašies. Tai gali pašalinti impulsų trūkčiojimus ir žemo nuskaitymo dažnio problemas, bet ne liemens konstrukcijos apribojimą. Taip pat žymiai padidėtų laidų sujungimo sunkumai.

Po paieškos šis mažas jutiklis VL53L0X iš ST pateko į akis. Tvirtinant „Pasaulio mažiausiu“skrydžio laiko jutiklio matmenį, jis yra tik 4,4 x 2,4 x 1,0 mm. Dalyvauja

  • Ant lusto IR lazerio spinduolio ir detektoriaus
  • Iki 2 m diapazonas (1,2 m greitu režimu)
  • Programuojamas I2C adresas
  • GPIO pertraukimo išvesties kaištis
  • Saugus akims

Visos šios specialios funkcijos leido man įveikti aukščiau išvardytas problemas, jei galėtų veikti daugybė VL53L0X jutiklių. Iš pradžių maniau, kad šis radaras bus vadinamas kietojo kūno radaru, tačiau sužinojau, kad šis terminas buvo naudojamas kitam. Todėl žodis „stacionarus“pavadinime reiškia, kad šioje radaro programėlėje nėra judančių dalių. Be to, nors LIDAR (šviesos aptikimas ir diapazonas) yra techniškai teisingas šio lusto terminas, RADAR čia vadinamas bendresniu terminu.

Priežastis, kodėl programuojamas I2C adresas ir GPIO išvesties kaištis yra labai svarbūs šiam projektui, bus paaiškinta vėliau.

1 žingsnis: įrankiai ir dalys

Įrankiai ir dalys
Įrankiai ir dalys
Įrankiai ir dalys
Įrankiai ir dalys

Įrankiai

Šiame projekte reikalingi šie įrankiai:

  • Lituoklis
  • Litavimo pagalbos rankos
  • Dupont gofravimo įrankis
  • 1,5 mm šešiakampė tvarkyklė
  • Vielos dangos pašalinimo įrankis
  • Vielos pjaustytuvas
  • Karštas klijų pistoletas
  • Pincetai
  • Didintuvas (fizinis arba jūsų telefone esančios programos)
  • Plokščios replės

Dalys

Šiame projekte naudojamos šios dalys:

  • 10x VL53L0X GY-530 plokščių
  • „Arduino“(„Uno“, „Nano“, „Mega“, „Zero“, „Mini“ir kt.)
  • Duonos lenta ir keletas laidų
  • AWG #26 laidai su skirtingomis spalvomis
  • AWG #30 vieno gyslos viela
  • 5x Dupont vyriškos jungtys
  • 5x vieno kaiščio Dupont korpusai
  • 10 kartų 3D atspausdintos pertraukimo plokštės laikikliai
  • 1x 3D spausdintas apskritas rėmelis
  • 10x M2x10 varžtai su plokščia galvute
  • 10x 0804 LED (rekomenduojama mėlyna)
  • 10x SOT-23 AO3400 N kanalų MOSFET
  • Mažas kondensatorius (10 ~ 100uF)

Išlaužimo lenta

Mano naudojama VL53L0X pertraukimo plokštė yra GY-530. Taip pat yra „Adafruit“ir „Pololu“versijų. Jei įmanoma, rekomenduoju naudoti „Adafruit“arba „Pololu“produktą, nes iš jų gaminami puikūs produktai, puikios pamokos ir puikios programinės įrangos bibliotekos. Aš išbandžiau „Adafruit“VL53L0X biblioteką ir naudojau modifikuotą „Pololu“VL53L0X bibliotekos versiją.

Dupont jungtys

Duonkepėms naudojamos dvigubos jungtys. Galite naudoti bet kokius kitus jūsų turimus ryšius.

Varžtai ir 3D spausdintos dalys

M2 varžtai, laikikliai ir apskritas rėmas naudojami jutikliams išdėstyti apskrito pavidalo. Galite naudoti bet kokius kitus metodus, pvz., Naudoti kartonines lentas, modelines medieną, molį ar net karštai klijuoti juos ant skardinės.

2 veiksmas: įsilaužimas į „Breadout Board“

Įsilaužimas į „Breadout Board“
Įsilaužimas į „Breadout Board“
Įsilaužimas į „Breadout Board“
Įsilaužimas į „Breadout Board“
Įsilaužimas į „Breadout Board“
Įsilaužimas į „Breadout Board“
Įsilaužimas į „Breadout Board“
Įsilaužimas į „Breadout Board“

Aptikimo kūgis

Aptikimo kūgio piešimui naudojau vieną modulį. Naudojant daugiausia 3D spausdintą robotą kaip taikinį. Atstumas rodomas LED ekrane ir apytiksliai išmatuotas. Išmatuoti duomenys įrašomi į „Microsoft Excel“failą ir naudojami kreivės pritaikymo funkcija. Geriausiai tinka natūrali logaritmo kreivė, kurios efektyvus atstumas yra nuo 3 cm iki maždaug 100 cm.

Esant 60 cm, vieno jutiklio aptikimo kreivė yra apie 22 cm. Esant 20 cm pločio taikiniui, 10–15 laipsnių apskritimo atstumas radaro masyvui turėtų suteikti priimtiną nuskaitymo skiriamąją gebą.

I2C adresas

Nors VL53L0X I2C įrenginio adresas yra programuojamas, mikrovaldikliu reikia visiškai valdyti XSHUT kaištį. To seka yra tokia:

  1. Maitinimas tiekiamas AVDD.
  2. Visi „VL53L0X“lustai perjungiami į „Hw“budėjimo būseną (iš naujo nustatomi), nuleidžiant VISUS XSHUT kaiščius į ŽEMĄ.
  3. Kiekvienas lustas po vieną išimamas iš atstatymo būsenos. Numatytasis I2C adresas po įkrovos yra 0x52.
  4. Lusto adresas pakeičiamas nauju adresu naudojant I2C komandą. Pavyzdžiui, 0x52 pakeistas į 0x53.
  5. Pakartokite 3 ir 4 veiksmus visiems lustams.

Teoriškai 7 bitų adresų diapazone toje pačioje magistralėje galima nuvažiuoti ne daugiau kaip 126 įrenginius. Tačiau praktiškai mikrovaldiklio magistralės talpa ir nuskendusios srovės apribojimas gali/turėtų apriboti maksimalų įrenginių skaičių.

Naujasis I2C adresas nėra saugomas VL53L0X mikroschemoje nuo maitinimo išjungimo ar atstatymo. Taigi šį procesą reikia atlikti vieną kartą po kiekvieno įjungimo. Tai reiškia, kad kiekvienam radaro matricos įrenginiui reikia vieno brangaus kaiščio. Tai yra pernelyg nedraugiška laidams ir kaiščių vartojimui, jei radaro diržas turi 10+ arba 20+ vienetų.

Kaip minėta STEP1, pasisekė, kad VL53L0X mikroschemoje yra GPIO1 kaištis, kuris iš pradžių buvo naudojamas pertraukai.

GPIO-XSHUTN daisy grandinė

Paleidžiant GPIO išėjimas yra didelės varžos būsenos, o aktyvus - iki žemo lygio. „GPIO“ir „XSHUT“kaiščiai „GY-530“pertraukimo plokštėje yra ištraukti iki AVDD, kaip rekomenduojama duomenų lape. Norėdami patikimai perkelti visus VL53L0X lustus į „Hw“budėjimo būseną (žemas XSHUT režimas), mums reikia loginių NE vartų (keitiklių) kiekvienam XSHUT kaiščiui. Tada mes prijungiame vieno lusto GPIO išėjimą (N-ąjį lustą) prie tolesnio lusto (N+1 lusto) XSHUTN (XSHUT-NOT).

Įjungus, visi GPIO kaiščiai (neaktyvūs) ištraukiami aukštyn, visi vėlesni XSHUT kaiščiai žemai išstumiami NOT vartų (išskyrus pačią kumštinę mikroschemą, kurios XSHUTN kaištis yra prijungtas prie mikrovaldiklio). I2C adreso keitimas ir tolesnio lusto XSHUT išleidimas atliekamas programinėje įrangoje po vieną.

Jei naudojate skirtingas pertraukimo plokštes, turite įsitikinti, ar ištraukiamieji rezistoriai yra vietoje, ir tinkamai sureguliuoti.

Pridedamas šviesos diodas

Kitame žingsnyje prie pertraukimo plokštės bus pridėtas mažas 0805 SMD šviesos diodas, prijungtas iš XSHUT bloknoto prie gretimo kondensatoriaus GND gnybto. Nors pats šviesos diodas neturi įtakos modulio veikimui, jis suteikia mums gerą vaizdinį vaizdą XSHUT logikos lygiu.

Sujungus šviesos diodą nuosekliai su ištraukiamuoju rezistoriumi (mano atveju 10k) ant XSHUT kaiščio, sumažės įtampa. Vietoj aukšto 3,3 V loginio lygio raudono 0805 šviesos diodo priekinės įtampos kritimas matuojamas 1,6 V. Nors ši įtampa yra didesnė nei aukšto loginio lygio (1.12v) duomenų lape, mėlynas šviesos diodas geriau tinka šiam įsilaužimui. Mėlynojo šviesos diodo priekinės įtampos kritimas matuojamas apie 2,4 V, kuris yra saugiai virš mikroschemos loginio lygio.

N-MOS keitiklio pridėjimas („Logic NOT Gate“)

Mažas SOT-23 N kanalo MOSFET yra sukrautas ant mūsų pridėto šviesos diodo. Dvi gnybtai (D, S) turi būti lituojami ant pertraukimo plokštės, o likęs gnybtas (G) yra prijungtas prie GPIO kaiščio prieš srovę naudojant #26 laidą.

Pastabos dėl SMD komponentų pridėjimo

SMD komponentų litavimas ant pertraukos plokštės, kuri nėra skirta, nėra lengva užduotis. Jei dar negirdėjote apie 0805, SMD, SOT-23, yra tikimybė, kad anksčiau nebuvote litavę tų mažų mažų komponentų. Tvarkant tuos mažus komponentus rankomis, labai dažnai:

  • Ši smulkmena tiesiog iškrito ir dingo amžiams,
  • Mažos pagalvėlės ant smulkmenos tiesiog nulupo.
  • Mažos kojelės ant smulkmenos tiesiog lūžo.
  • Litavimo skarda tiesiog susikaupė ant dėmės ir negalėjo būti atskirta.
  • Ir dar…

Jei vis tiek norite sukurti šį radarą, galite:

  • Pakeiskite komponentus į didesnį paketą, pvz., DIP stilių.
  • Praktikai ir vartojimui gaukite daugiau komponentų nei reikalaujama.

3 žingsnis: 0805 šviesos diodo litavimas

Lituoti 0805 šviesos diodą
Lituoti 0805 šviesos diodą
Lituoti 0805 šviesos diodą
Lituoti 0805 šviesos diodą
Lituoti LED 0805
Lituoti LED 0805
Lituoti 0805 šviesos diodą
Lituoti 0805 šviesos diodą

Lituoti 0805 SMD šviesos diodą

Lituoti 0805 šviesos diodą rankomis ant pertraukimo plokštės, neskirtos SMD, visai nėra lengva užduotis. Šie veiksmai yra mano rekomendacija lituoti šviesos diodą.

  1. Naudokite pagalbinę ranką, kad laikytumėte lūžio lentą.
  2. Ant SMD kondensatoriaus krašto ir „XSHUT“padėklo uždėkite šiek tiek litavimo pastos.
  3. Naudokite lituoklį, kad ant kondensatoriaus krašto uždėtumėte papildomą lydmetalį.
  4. Ant abiejų 0805 šviesos diodų galų uždėkite litavimo pastos.
  5. Naudokite lituokliu skardą ant abiejų 0805 šviesos diodų galų.
  6. Naudokite pincetus, kad įdėtumėte šviesos diodą, kaip parodyta nuotraukoje. Katodo gale paprastai yra pažymėta linija. Mano pavyzdyje katodo gale yra žalia linija. Padėkite katodo galą prie kondensatoriaus galo.
  7. Naudokite pincetą, kad šviesos diodas būtų šiek tiek prispaustas prie kondensatoriaus, ir lituokite šviesos diodą prie kondensatoriaus galo, tuo pačiu pridėdami šilumos prie kondensatoriaus galo. Nespauskite stipriai šviesos diodo. Jo dangtelis gali sulūžti esant karščiui ir per dideliam slėgiui. Po litavimo švelniai paspauskite šviesos diodą į šoną, kad patikrintumėte, ar šviesos diodas yra lituotas.
  8. Dabar lituokite šviesos diodą prie XSHUT panardinimo pagalvėlės. Šis žingsnis turėtų būti lengvesnis.

Pastaba: Paveikslėlyje parodytas kondensatoriaus galas yra šios pertraukos plokštės įžeminimo gnybtas. O panardinimo pagalvėlę XSHUT ištraukia rezistorius.

Šviesos diodo bandymas

Šviesos diodas turėtų užsidegti, kai įjungiate maitinimą (pvz., 5 V) ir įžeminate prie pertraukimo plokštės.

4 žingsnis: N-kanalo MOSFET litavimas

N-kanalo MOSFET litavimas
N-kanalo MOSFET litavimas
N-kanalo MOSFET litavimas
N-kanalo MOSFET litavimas
N-kanalo MOSFET litavimas
N-kanalo MOSFET litavimas
N-kanalo MOSFET litavimas
N-kanalo MOSFET litavimas

Lituoti AO3400 N kanalų MOSFET

Šis MOSFET yra SOT-23 pakuotėje. Turime „sukrauti“jį ant šviesos diodo ir pridėti laidą:

  1. Įdėkite šiek tiek litavimo pastos ir skardinkite visus tris gnybtus.
  2. Pincetu uždėkite MOSFET ant 0805 šviesos diodo. S gnybtas turi liesti kondensatoriaus viršų
  3. Lituokite S gnybtą su kondensatoriaus galu, kaip parodyta nuotraukoje.
  4. Nupjaukite nedidelę AWG #30 viengyslę vielą ir nuimkite dangą apie 1 cm.
  5. Lituokliu lydmetalį ištirpinkite XSHUT skylėje iš apačios ir įkiškite #30 laidą iš viršaus, kaip parodyta nuotraukoje.
  6. Lituokite viršutinį laido galą prie MOSFET D gnybto.
  7. Nupjaukite papildomą laidą.

Pastaba: MOSFET S gnybtas yra prijungtas prie kondensatoriaus galo, kaip parodyta paveikslėlyje. Šis galas yra įžeminimo gnybtas. MOSFET D terminalas yra prijungtas prie originalaus XSHUT kaiščio.

G terminalas šiuo metu nėra prijungtas. Jo padėtis yra šiek tiek virš kai kurių traukiamųjų rezistorių. Įsitikinkite, kad tarp jų yra tarpas (N-MOS ir rezistorius) ir kad jie nesiliestų vienas su kitu.

5 žingsnis: Jutiklio bloko prijungimas

Jutiklio bloko prijungimas
Jutiklio bloko prijungimas
Jutiklio bloko prijungimas
Jutiklio bloko prijungimas
Jutiklio bloko prijungimas
Jutiklio bloko prijungimas

Bendra magistralės instaliacija

Į bendrą autobusą įeina:

  • Vcc galia. Raudona nuotraukoje. Aš naudoju arduino nano su 5v logika. Pertraukimo plokštėje yra LDO ir lygio perjungiklis. Taigi saugu naudoti 5v kaip Vin.
  • Gruntas. Nuotraukoje juoda.
  • SDA. Žalia nuotraukoje.
  • SCL. Geltona nuotraukoje.

Šios keturios eilutės yra bendros. Iškirpkite atitinkamo ilgio laidus ir lydykite juos lygiagrečiai prie visų jutiklių modulių. Aš naudoju 20 cm nuo arduino iki pirmojo jutiklio ir po 5 cm.

XSHUTN ir GPIO laidai

20 cm balta viela yra nuo arduino valdymo kaiščio iki pirmojo jutiklio XSHUTN kaiščio. Tai valdymo linija, reikalinga norint iš naujo nustatyti pirmąjį VL53L0X lustą ir pakeisti I2C adresą.

5 cm balta viela tarp kiekvieno modulio yra daisy grandinės valdymo linija. Aukščiau esantis lustas (pavyzdžiui, lustas #3) GPIO padas yra prijungtas prie pasroviui (pavyzdžiui, lustas #4) XSHUTN kojos (N kanalo MOSFET G terminalas).

Būkite atsargūs, kad G gnybtas nesiliestų su žemiau esančiu rezistoriumi. Į tarpą galite pridėti izoliacinę juostą. Čia gali būti naudojamas apsauginis įdėklas, paprastai tiekiamas kartu su lustu VL53L0X.

Naudokite šilumos pistoletą, kad priklijuotumėte valdymo laidą.

Karštas klijai

Kaip matote nuotraukoje, ant balto valdymo laido, šalia N-MOS G gnybto, yra karštų klijų dėmė. Šis žingsnis yra labai svarbus ir būtinas. Plaukiojantis litavimas tiesiai prie SMD komponento kojos yra labai silpnas. Net mažas spaudimas vielai gali sulaužyti koją. Atlikite šį žingsnį švelniai.

Šviesos diodo bandymas

Kai įjungiate maitinimą (pvz., 3.3v-5v) ir įžeminate jutiklių masyvą, pirmojo modulio šviesos diodas turėtų reaguoti su XSHUTN laido loginiu lygiu. Jei prijungsite XSHUTN prie logikos aukšto (pvz., 3.3v-5v), šviesos diodas turėtų nedegti. Jei prijungsite XSHUTN laidą prie žemo (įžeminimo), pirmojo modulio šviesos diodas turėtų degti.

Visuose tolesniuose moduliuose šviesos diodas turėtų būti išjungtas.

Šis bandymas atliekamas prieš prisijungiant prie arduino.

6 žingsnis: Jutiklių masyvo užbaigimas

Image
Image
Jutiklių masyvo užbaigimas
Jutiklių masyvo užbaigimas
Jutiklių masyvo užbaigimas
Jutiklių masyvo užbaigimas
Jutiklių masyvo užbaigimas
Jutiklių masyvo užbaigimas

Daisy grandinės testavimas

Dabar norime išbandyti, ar I2C adreso keitimas veikia visiems masyvo jutikliams. Kaip minėta, pirmąjį lustą valdo arduino. Antrąjį lustą valdo pirmasis lustas ir pan.

  1. Nustatykite duonos lentą. 5V ir antžeminis bėgiai yra tiesiogiai sujungti iš 5V Adriano ir žemės. Dabartinis kiekvieno jutiklio sunaudojimas duomenų lape yra 19ma.
  2. Prijunkite kondensatorių prie maitinimo bėgio, kad padėtumėte stabilizuoti „Vin“.
  3. Prijunkite „Vin“ir „Ground“iš jutiklių bloko prie maitinimo šaltinio.
  4. Prijunkite SDA prie „arduino Nano PIN A4“(gali skirtis kiti mikrovaldikliai).
  5. Prijunkite SCL prie arduino Nano kaiščio A5 (gali skirtis kiti mikrovaldikliai).
  6. Prijunkite XSHUTN laidą prie arduino Nano kaiščio D2. (Tai galima pakeisti eskize).
  7. Eikite į „github“https://github.com/FuzzyNoodle/Fuzzy-Radar ir atsisiųskite biblioteką.
  8. Atidarykite „Daisy_Chain_Testing“pavyzdį ir įkelkite eskizą.

Jei viskas veikia, turėtumėte matyti, kad būsenos šviesos diodai užsidega po vieną, panašiai kaip aukščiau esančiame vaizdo įraše.

Taip pat galite atidaryti serijos langą ir pamatyti inicijavimo eigą. Išvestis atrodytų taip:

Atidaromas prievadas Portas atidarytas Pradinis eskizas. Nustatykite lustą 0 į atstatymo režimą. Visi būsenos šviesos diodai turi būti išjungti. Dabar konfigūruokite jutiklius. LED turėtų užsidegti po vieną. Lusto 0 konfigūravimas - iš naujo nustatykite I2C adresą į 83 - Inicijuokite jutiklį. 1 mikroschemos konfigūravimas - iš naujo nustatykite I2C adresą į 84 - Inicijuokite jutiklį. 2 lusto konfigūravimas - iš naujo nustatyti I2C adresą į 85 - Inicijuokite jutiklį. Radaro masyvo konfigūracija baigta.

Surinkite laikiklį ir rėmą

  1. Atsargiai uždėkite kiekvieną GY-530 modulį ant laikiklio M2x10 varžtu. Nespauskite MOSFET ir netraukite XSHUTN laidų.
  2. Įdėkite kiekvieną laikiklį į apskritą rėmą. Naudokite karštus klijus, kad sujungtumėte dalis.

Vėlgi, M2 varžtai, laikikliai ir apskritas rėmas yra naudojami jutikliams išdėstyti apskritime. Galite naudoti bet kokius kitus metodus, pvz., Naudoti kartonines lentas, modelio medieną, molį ar net karštai klijuoti juos ant skardinės.

Mano naudojami 3D spausdinti failai pateikti žemiau. Apvalus rėmas turi 9 modulius, atskirtus 10 laipsnių kampu. Jei turite aštrią akį, ankstesnėse nuotraukose buvo 10 modulių. Priežastis? Žemiau paaiškinta…

Nuimkite apsauginį sluoksnį

Jei atlikote veiksmus nuo pat pradžių, dabar tinkamas laikas pašalinti apsauginį sluoksnį ant VL53L0X lusto. Mano ankstesnėse nuotraukose jos jau pašalintos, nes prieš paskelbdamas šias instrukcijas turiu išbandyti modulius ir įsitikinti, kad koncepcija veikia.

Apie apsauginį pamušalą duomenų lape nurodyta: „Klientas turi jį pašalinti prieš pat pritvirtindamas dangtelį“. Dvi mažos skylės (skleidėjas ir imtuvas) VL53L0X mikroschemoje yra pažeidžiamos taršos, pvz., Dulkių, riebalų, karštų klijų ir kt.

Užteršus, diapazonas gali būti sumažintas, o rodmenys gali būti akivaizdžiai išjungti. Vienas iš mano bandymo modulių yra netyčia užterštas klijų moliu, diapazonas sumažintas iki 40 cm, o atstumo rodmuo klaidingai padidintas 50%. Būk atsargus!

7 žingsnis: Duomenų gavimas

Image
Image
Lazerinis žymeklis (demonstracija)
Lazerinis žymeklis (demonstracija)

Naudojant „Raw_Data_Serial_Output“pavyzdį

Dabar mums labai patinka matyti duomenis iš mūsų jutiklių masyvo. „GitHub“arduino bibliotekoje:

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

Yra pavyzdys, vadinamas Raw_Data_Serial_Output. Šis pavyzdys parodo neapdorotų duomenų išvestį iš jutiklių masyvo. Išėjimo vertės yra milimetrais.

Kai jutikliai bus inicijuoti, serijiniame lange turėtumėte matyti kažką panašaus, kai mosuojate ranka per jutiklius:

Tiesioginę demonstraciją žiūrėkite vaizdo įraše.

Naudojant Fuzzy_Radar_Serial_Output pavyzdį

Kitas žingsnis - gauti naudingų duomenų iš šių atstumo rodmenų. Tai, ko norėjome iš RADAR, yra tikslinio objekto atstumas ir kampas.

  • Atstumas yra milimetrais, susijęs su jutiklio paviršiumi. Grįžus 0 reiškia, kad taikinys yra už diapazono ribų.
  • Kampas yra laipsniais, horizontalioje plokštumoje. Šiuo metu tikimasi, kad jutikliai bus išdėstyti tolygiai. Grįžimas 0 laipsnių reiškia, kad taikinys yra masyvo centre.

Bibliotekoje taikomas tam tikras filtravimo algoritmas:

  • Triukšmo pašalinimas:

    • Trumpi (imčių skaičiaus požiūriu) rodmenys laikomi triukšmu ir pašalinami.
    • Rodmenys, kurie yra toli nuo vidutinės vertės, pašalinami.
  • Svorio kampo apskaičiavimas (žr. Paveikslėlį aukščiau)

    • Manoma, kad tikslinis objektas yra lygus paviršius
    • Jei objektą vienu metu aptiko keli jutikliai, kiekvieno jutiklio svoris apskaičiuojamas.
    • Kiekvieno jutiklio svoris yra atvirkščiai susijęs su jo atstumu.
    • Rezultato angelas apskaičiuojamas pagal kiekvieno jutiklio svertinį kampą.
  • Pagrindinis tikslo pasirinkimas:

    • Jei yra daugiau nei viena rodmenų grupė, lieka plačiausia (su daugiau jutiklių rodmenų skaičiaus) grupė.
    • Pvz., Jei prieš jutiklių masyvą padėsite dvi rankas, daugiau jutiklių aptikta ranka išlieka.
  • Artimiausias taikinių pasirinkimas:

    • Jei aptinkama daugiau nei viena to paties pločio grupė, lieka artimiausio atstumo grupė.
    • Pavyzdžiui, jei priešais jutiklių masyvą padėjote dvi rankas ir dvi aptiktos grupės turi tą patį jutiklių skaičių, lieka arčiau jutiklio esanti grupė.

Išėjimo atstumas ir kampas išlyginami per žemo pralaidumo filtrą

„Raw_Data_Serial_Output“neapdoroti atstumo rodmenys paverčiami atstumo ir kampo reikšmėmis. Įkėlę eskizą, galite atidaryti serijos langą, kad pamatytumėte panašų rezultatą:

Neaptikta jokių objektų. Nerasta jokių objektų. Nerasta objekto. Atstumas = 0056 kampas = 017 atstumas = 0066 kampas = 014 atstumas = 0077 kampas = 011 atstumas = 0083 kampas = 010 atstumas = 0081 kampas = 004 atstumas = 0082 kampas = 000 atstumas = 0092 kampas = 002 atstumas = 0097 kampas = 001 atstumas = 0096 kampas = 001 atstumas = 0099 kampas = 000 atstumas = 0101 kampas = -002 atstumas = 0092 kampas = -004 atstumas = 0095 kampas = -007 atstumas = 0101 kampas = -008 atstumas = 0112 kampas = -014 atstumas = 0118 kampas = -017 atstumas = 0122 kampas = -019 atstumas = 0125 kampas = -019 atstumas = 0126 kampas = -020 atstumas = 0125 kampas = -022 atstumas = 0124 kampas = -024 atstumas = 0133 kampas = -027 atstumas = 0138 kampas = - 031 Atstumas = 0140 Kampas = -033 Atstumas = 0136 Kampas = -033 Atstumas = 0125 Kampas = -037 Atstumas = 0120 Kampas = -038 Atstumas = 0141 Kampas = -039 Nerasta objekto. Nerasta objekto. Nerasta objekto.

Taigi dabar turite RADARĄ (LIDAR):

  • Mažesni nei ultragarso jutiklių moduliai
  • Nėra judančių dalių
  • Skenuoja 40 Hz dažniu.
  • Suformuotas kaip diržas, gali būti montuojamas ant apskrito rėmo
  • Naudokite tik tris valdymo laidus, taip pat maitinimą ir įžeminimą.
  • Turi diapazoną nuo 30 milimetrų iki maždaug 1000 milimetrų.

Tolesniuose žingsniuose parodysime keletą šaunių demonstracijų!

8 žingsnis: lazerinis žymeklis (demonstracija)

Image
Image
Lazerinis žymeklis (demonstracija)
Lazerinis žymeklis (demonstracija)

Tai vienas iš stacionaraus radaro naudojimo pavyzdžių, kurį sukūrėme atlikdami ankstesnius veiksmus. Šis žingsnis nėra išsamiai parašytas, nes tai yra Radaras. Apskritai, norint sukurti šį demonstracinį projektą, jums reikia šių papildomų elementų:

  • Du servo
  • Lazerinį rašiklį skleidžianti galvutė
  • MOSFET arba NPN tranzistorius lazerio galvutės išėjimui valdyti
  • Servo maitinimo šaltinis. Jis turi būti atskirtas nuo mikrovaldiklio.

Kodą galima atsisiųsti čia.

Žiūrėkite pateiktą vaizdo įrašą.

9 žingsnis: žiūrėjimas į Poopeyes (demonstracija)

Image
Image

Radaro naudojimo toli objekto vietai ir atstumui sekti demonstravimas.

Rekomenduojamas: