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 jutiklio detalė.

Kaip veikia atstumo jutiklis: atstumo klausymas

Atstumo jutiklio schema, kurioje ultragarsas siunčiamas į žalią kubą, o tada priimamas atspindėtas garsas.

Atstumo jutiklis garsui matuoti naudoja tuos pačius principus kaip ir sonaras. Jis siunčia mažytį ultragarso impulsą, kurio skleidėjas yra vienoje jutiklio pusėje, o tada padaugina, kiek laiko užtrunka, kol garsas atsispindi nuo imtuvo kitoje jutiklio pusėje. Jutiklis apskaičiuoja atstumą pagal tai, kiek laiko garso impulsas įveikė kelionę pirmyn ir atgal. Tada atstumo jutiklis, remdamasis garso greičiu, atlieka skaičiavimus, kad roboto smegenys žinotų, koks atstumas yra iki artimiausio objekto. 

Jei paviršius nėra lygus, pavyzdžiui, išlenkta siena ar rutulys, ultragarso banga neatsispindi nuo visų dalių vienodai arba 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 Objektas rastas blokas, kuriame rašoma: Ar atstumas rado objektą?
Dvi diagramos. Viršuje atstumo jutiklis nukreiptas į netoliese esantį žalią kubą ir pažymėtas varnele. Žemiau atstumo jutiklis nenukreiptas į nieką netoliese ir pažymėtas X simboliu.

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

VEXcode IQ Atstumas nuo bloko, kuriame nurodytas atstumas (atstumas) 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 1000 mm arba nuo 1 colio iki 40 colių. (Atstumo nuo) blokas yra reporterinis blokas, naudojamas blokuose su apskritomis erdvėmis.

 

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 užkoduoti VEX IQ (1-os kartos) atstumo jutiklį Python kalba, jis turi būti prijungtas prie VEX IQ (2-os kartos) smegenų. VEX IQ (1-osios kartos) smegenys nepalaiko Python.

atstumas_7.aptiktas_objektas()

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. 

drivetrain.drive(FORWARD)
, kol neaptikta distance_7.is_object_detected()
    wait(20, MSEC)
drivetrain.stop()
Šiame pavyzdyje naudojamas ciklasWhile su sąlyga „ not kartu su komanda „ distance.is_object_detected , kad robotas judėtų pirmyn, kol atstumo jutiklis aptiks objektą. Kai jutiklis aptinka objektą, robotas nustoja važiuoti, kaip parodyta aukščiau pateiktame Python kode.
atstumas_7.atstumas(MM)

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

drivetrain.drive(FORWARD)
brain.screen.print(distance_7.distance(MM)
while not distance_7.distance(MM) < 50:
    wait(20, MSEC)
drivetrain.stop()

Šiame pavyzdyje naudojamas ciklas While su sąlyga „ not kartu su komanda „ distance.is_object_detected , kad robotas važiuotų pirmyn, kol atstumo jutiklis aptiks objektą. Kai jutiklis aptinka objektą, robotas nustoja važiuoti.

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

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

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

Last Updated: