Naudojant VEX IQ (1-osios kartos) atstumo jutiklį

Aprašymas

Šis jutiklis praneša atstumą tarp jo ir artimiausio kieto objekto (nuo 50 mm iki 1 m). Jis apskaičiuoja atstumą naudodamas laiką, per kurį ultragarso bangos atsimuša nuo objekto ir grįžta į jutiklį.

VEX IQ (1-osios kartos) atstumo jutiklis.


Kaip veikia atstumo jutiklis: atstumo klausymas

Diagrama, kaip atstumo jutiklis siunčia ultragarsą, kad pataikytų į žalią kubą ir tada gautų atspindėtą garsą.

Atstumo jutiklis garsui matuoti naudoja tuos pačius principus kaip ir sonaro prietaisai. Jis siunčia nedidelį ultragarso impulsą, kurio skleidėjas yra vienoje jutiklio pusėje, o tada kartoja, kiek laiko reikia išgirsti, kad garsas atsispindėtų imtuve kitoje jutiklio pusėje. Jutiklis apskaičiuoja atstumą pagal tai, kiek laiko užtruko garso impulsas, kad nukeliautumėte pirmyn ir atgal. Tada atstumo jutiklis atlieka skaičiavimus pagal garso greitį, kad praneštų roboto smegenims, kiek toli yra artimiausias objektas. 

Jei paviršius nėra lygus kaip lenkta siena ar rutulys, ultragarso banga neatsimuša į visas dalis vienodai ar vienu metu. Artimiausias paviršius, pakankamai didelis, kad atspindėtų aptinkamą bangos kiekį, lemia aptiktą objekto atstumą.


Įprasti atstumo jutiklio naudojimo būdai:

VEXcode IQ Rastas objektas blokas, kuriame rašoma Atstumas, rastas objektas?

Dvi diagramos. Viršuje atstumo jutiklis yra nukreiptas į netoliese esantį žalią kubą ir yra pažymėtas varnele. Žemiau atstumo jutiklis nerodo nieko šalia esančio ir yra pažymėtas X simboliu.

Šis jutiklis gali aptikti, ar priešais jį yra koks nors objektas.

VEXcode IQ Atstumas nuo bloko, kuris rodo Atstumo atstumą mm.

Šis jutiklis gali išmatuoti atstumą tarp jo ir objekto.

  • Robotas gali naudoti šį jutiklį nuvažiuoti tam tikru atstumu nuo objekto. Peržiūrėkite toliau pateiktą animaciją, kad pamatytumėte, kaip keičiasi atstumo reikšmė robotui važiuojant tol, kol atstumas nesiekia 160 mm.

  • Robotas gali naudoti šį jutiklį, kad privažiuotų prie objekto jo neliesdamas. Peržiūrėkite šią animaciją, kad pamatytumėte du robotus, naudojančius atstumo jutiklius savo vairavimui koordinuoti.

  • Šio jutiklio teikiamomis reikšmėmis galima reguliuoti roboto greitį priklausomai nuo to, ar jis yra arti ar toli nuo objekto ar paviršiaus. Peržiūrėkite šią animaciją, kad pamatytumėte, kaip robotas prisitaiko pagal atstumą iki sienos.


Atstumo jutiklio naudojimas varžybų robote

  • Robotas gali naudoti atstumo jutiklį, kad inicijuotų veiksmų seką, kai jis yra tinkamoje vietoje. Pavyzdžiui, robotas gali važiuoti į priekį, kol aptinka, kad yra 150 mm atstumu nuo sienos, tada pasisukti 90 laipsnių kampu ir paleisti objektą į taškų zoną.  
  • Atstumo jutiklis gali būti naudojamas roboto veiksmams, pvz., žaidimo figūros paėmimui, suaktyvinti, kai objektas aptinkamas diapazone.
  • Robotas gali naudoti atstumo jutiklį, kad važiuotų link objekto ar paviršiaus tol, kol jis nepasieks tam tikro atstumo, jo neliesdamas. Tai gali būti naudojama siekiant užtikrinti, kad robotas nenuverstų žaidimo figūrėlių.
  • Robotas gali naudoti atstumo jutiklį, kad nuvažiuotų nuo objekto ar paviršiaus tol, kol pasieks tam tikrą atstumą. Tai gali būti naudojama siekiant išvengti susidūrimų su kitais lauko robotais.

Atstumo jutiklio naudojimas VEXcode IQ

Atstumo jutiklio kaip įrenginio pridėjimas VEXcode IQ

VEXcode IQ Devices meniu, kai buvo pasirinktas mygtukas Pridėti įrenginį. Parinktis Atstumas (1-os kartos) yra paryškinta.

Norėdami koduoti atstumo jutiklį VEXcode IQ, pirmiausia turite sukonfigūruoti atstumo jutiklį. Peržiūrėkite šį straipsnį, kad sužinotumėte daugiau apie jutiklio konfigūravimą VEXcode IQ.

Kai jutiklis bus sukonfigūruotas, įrankių dėžėje pasirodys komandos, kurias galėsite naudoti savo projekte.

Atstumo jutiklio kodavimas blokais

VEXcode IQ Objektas rastas blokas, kuris skaito Distance7 rado objektą?

<Object found> blokas yra Būlio reporterio blokas, kuris praneša apie sąlygą kaip teisingą arba klaidingą. Būlio blokai, kaip ir <Object found> blokas, telpa blokų viduje su šešiakampėmis (šešiapusėmis) įvestimis kitiems blokams.

<Object found> Būlio blokas praneša, kad „teisinga“, jei jutiklis aptinka objektą, ir „netiesa“, jei jutiklis neaptinka. Norėdami sužinoti daugiau apie Būlio blokus, apsilankykite straipsnyje Pagalba arba blokų formos ir reikšmė.

 

VEXcode IQ blokuoja projektą, kuris naudoja atstumo jutiklį, kad važiuotų pirmyn, kol randa objektą. Projekte rašoma Pradėjus, važiuokite į priekį, palaukite, kol „Distance7“ ras objektą, tada nustokite važiuoti.

Šiame pavyzdyje <Object found> blokas naudojamas su [Wait kol] bloku, kad robotas važiuotų pirmyn, kol atstumo jutiklis aptiks objektą. Kai jutiklis aptiks objektą, robotas nustos važiuoti, kaip parodyta aukščiau esančiame paveikslėlyje. 

VEXcode IQ Atstumas nuo bloko, kuriame nurodyta Atstumas7 atstumas mm.

Blokas (Atstumas nuo) praneša artimiausio objekto atstumą nuo atstumo jutiklio. Nurodomas diapazonas nuo 24 mm iki 1 000 mm arba nuo 1 colio iki 40 colių. Blokas (Atstumas nuo) yra reporterio blokas, naudojamas blokuose su apskritimais tarpais.

 

VEXcode IQ blokuoja projektą, kuris naudoja atstumo jutiklį, kad važiuotų į priekį, kol atstumas bus mažesnis nei 50 mm. Projekte rašoma Pradėjus, važiuokite pirmyn, ant Brain išspausdinkite atstumą 7 mm, palaukite, kol atstumas 7 milimetrais bus mažesnis nei 50, tada nustokite važiuoti.

Šiame pavyzdyje blokas (Atstumas nuo) naudojamas su bloku [Spausdinti], kad smegenų ekrane būtų rodomas atstumas tarp atstumo jutiklio ir objekto. Blokas (Atstumas nuo) taip pat rodomas <Less than> bloko viduje, kuris yra {Wait until} bloko viduje. Dėl to robotas važiuos tol, kol atstumo jutiklis aptiks objektą, esantį arčiau nei 50 milimetrų, ir tada nustos važiuoti. Tai parodyta pirmame aukščiau esančiame vaizdo įraše.

Atstumo jutiklio kodavimas Python

Pastaba:Norint koduoti VEX IQ (1-osios kartos) atstumo jutiklį Python, jis turi būti prijungtas prie VEX IQ (2-osios kartos) smegenų. VEX IQ (1-osios kartos) smegenys nepalaiko Python.

distance_7.is_object_detected()

Komanda distance.is_object_detected praneša „teisinga“, jei objektas aptinkamas, ir „false“, jei objektas neaptinkamas.

Pastaba:Komandoje rodomas atstumo jutiklio pavadinimas atitinka pavadinimą, suteiktą konfigūracijoje. 

pavara. pavara(FORWARD)
, o ne atstumas_7.yra_objektas_aptiktas()
laukti(20, MSEC)
pavara.stop()
Šiame pavyzdyje kilpaNors su sąlyga o ne naudojama su komanda distance.is_object_detected , kad robotas važiuotų pirmyn, kol atstumo jutiklis aptiks objektą. Kai jutiklis aptinka objektą, robotas nustos važiuoti, kaip parodyta aukščiau esančiame Python kode.
atstumas_7.atstumas(MM)

Komanda distance.distance praneša atstumą iki artimiausio objekto nuo atstumo jutiklio. Nurodomas diapazonas nuo 24 mm iki 1 000 mm arba nuo 1 colio iki 40 colių.

pavara.vairavimas(FORWARD)
brain.screen.print(atstumas_7.atstumas(MM)
, o ne atstumas_7.atstumas(MM) < 50:
laukti(20, MSEC)
pavara.stop()

Šiame pavyzdyje kilpa Nors su sąlyga o ne naudojama su komanda distance.is_object_detected , kad robotas važiuotų pirmyn, kol atstumo jutiklis aptiks objektą. Kai jutiklis aptiks objektą, robotas nustos važiuoti.

Šiame pavyzdyje komanda distance.distance naudojama su komanda brain.screen.print , kad ekrane Brain būtų rodomas atstumas tarp atstumo jutiklio ir objekto. Komanda distance.distance taip pat rodoma kilpoje While su sąlyga , o ne . Dėl to robotas važiuos tol, kol atstumo jutiklis aptiks objektą, esantį arčiau nei 50 milimetrų, ir tada nustos važiuoti. Tai parodyta pirmame aukščiau esančiame vaizdo įraše.

Norėdami sužinoti daugiau apie atstumo jutiklio kodavimą programoje Python, peržiūrėkite 5 kompiuterinių mokslų lygio 1 lygio – Python kurso skyrių. 

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: