Izmantojot VEX IQ (1. paaudzes) attāluma sensoru

Apraksts

Šis sensors ziņo par attālumu starp to un tuvāko cieto objektu (diapazons no 50 mm līdz 1 m). Tas aprēķina attālumu, izmantojot laiku, kas nepieciešams, lai ultraskaņas viļņi atsitos no objekta un atgrieztos sensorā.

VEX IQ (1. paaudzes) attāluma sensora detaļa.

Kā darbojas attāluma sensors: attāluma klausīšanās

Attāluma sensora diagramma, kas sūta ultraskaņu, lai trāpītu zaļajam kubam, un pēc tam uztver atstaroto skaņu.

Attāluma sensors skaņas mērīšanai izmanto tos pašus principus kā sonāra ierīces. Tas izraida nelielu ultraskaņas impulsu ar tā raidītāju sensora vienā pusē un pēc tam reizina, cik ilgs laiks nepieciešams, lai dzirdētu skaņas atstarošanos no uztvērēja sensora otrā pusē. Sensors aprēķina attālumu, pamatojoties uz to, cik ilgs laiks bija nepieciešams skaņas impulsa veikšanai turp un atpakaļ. Pēc tam attāluma sensors, pamatojoties uz skaņas ātrumu, veic aprēķinu, lai robota smadzenēm norādītu, cik tālu atrodas tuvākais objekts. 

Ja virsma nav līdzena, piemēram, izliekta siena vai bumba, ultraskaņas vilnis neatspoguļojas no visām daļām vienādi vai vienlaicīgi. Tuvākā virsma, kas ir pietiekami liela, lai atstarotu nosakāmu viļņa daudzumu, nosaka objekta nosakāmo attālumu.


Attāluma sensora biežākie lietojumi:

VEXcode IQ Atrasts objekts blokā, kurā lasāms: Attālums atrasts objekts?
Divas diagrammas. Augšpusē attāluma sensors ir vērsts pret tuvumā esošu zaļu kubu un ir apzīmēts ar atzīmi. Zemāk attāluma sensors nav vērsts ne uz ko tuvumā, un tas ir apzīmēts ar X simbolu.

Šis sensors var noteikt, vai tā priekšā atrodas kāds objekts.

VEXcode IQ Attālums no bloka, kas rāda Attālums attālums mm.

Šis sensors var izmērīt attālumu starp to un objektu.

  • Robots var izmantot šo sensoru, lai vadītu noteiktu attālumu no objekta. Skatiet tālāk redzamo animāciju, lai redzētu, kā mainās attāluma vērtība, robotam braucot, līdz attālums ir mazāks par 160 mm.

  • Robots var izmantot šo sensoru, lai piebrauktu līdz objektam, tam nepieskaroties. Skatiet šo animāciju, lai redzētu divus robotus, kuri izmanto attāluma sensorus, lai koordinētu savu braukšanu.

  • Šī sensora sniegtās vērtības var izmantot, lai pielāgotu robota ātrumu atkarībā no tā, vai tas atrodas tuvu vai tālu no objekta vai virsmas. Skatiet šo animāciju, lai redzētu, kā robots pielāgojas atkarībā no attāluma līdz sienai.


Attāluma sensora izmantošana sacensību robotā

  • Robots var izmantot attāluma sensoru, lai uzsāktu darbību secību, kad tas atrodas pareizajā vietā. Piemēram, robots var braukt uz priekšu, līdz konstatē, ka atrodas 150 mm attālumā no sienas, pēc tam pagriezties par 90 grādiem un izlaist objektu punktu zonā.  
  • Attāluma sensoru var izmantot, lai aktivizētu robota darbības, piemēram, spēles figūras paņemšanu, kad objekts tiek atklāts diapazonā.
  • Robots var izmantot attāluma sensoru, lai brauktu uz objektu vai virsmu, līdz tas atrodas noteiktā attālumā, nepieskaroties tam. To var izmantot, lai pārliecinātos, ka robots neapgāž spēles figūras.
  • Robots var izmantot attāluma sensoru, lai brauktu prom no objekta vai virsmas, līdz tas ir sasniedzis noteiktu attālumu. To var izmantot, lai izvairītos no sadursmēm ar citiem robotiem uz lauka.

Attāluma sensora izmantošana VEXcode IQ

Attāluma sensora kā ierīces pievienošana VEXcode IQ

VEXcode IQ Devices izvēlne pēc tam, kad ir atlasīta poga Pievienot ierīci. Opcija Distance (1. gen) ir iezīmēta.

Lai kodētu attāluma sensoru VEXcode IQ, vispirms ir jākonfigurē attāluma sensors. Skatiet šo rakstu, lai uzzinātu vairāk par sensora konfigurēšanu programmā VEXcode IQ.

Kad sensors ir konfigurēts, rīklodziņā tiks parādītas komandas, kuras varēsit izmantot savā projektā.

Attāluma sensora kodēšana blokos

VEXcode IQ Objekts atrasts bloks, kas skan Distance7 atrada objektu?

<Object found>  bloks ir Būla reportiera bloks, kas ziņo par nosacījumu kā patiesu vai nepatiesu. Būla bloki, piemēram, <Object found>  bloki, iederas blokos ar sešstūrainu (sešpusēju) ievadi citiem blokiem.

<Object found> Būla bloks ziņo par “patiesu”, ja sensors nosaka objektu, un “false”, ja sensors to nedara. Lai uzzinātu vairāk par Būla blokiem, apmeklējiet rakstu palīdzība vai bloku formas un nozīme.

 

VEXcode IQ bloķē projektu, kas izmanto attāluma sensoru, lai brauktu uz priekšu, līdz atrod objektu. Projekts skan Kad startēja, brauciet uz priekšu, pagaidiet, līdz Distance7 atrada objektu, un pēc tam pārtrauciet braukšanu.

Šajā piemērā bloks <Object found> tiek izmantots kopā ar bloku [Pagaidiet, līdz], lai liktu robotam braukt uz priekšu, līdz attāluma sensors nosaka objektu. Kad sensors uztver objektu, robots pārtrauks braukšanu, kā parādīts attēlā iepriekš. 

VEXcode IQ Attālums no bloka, kas nolasa Distance7 attālums mm.

Blokā (Attālums no) tiek rādīts tuvākā objekta attālums no attāluma sensora. Tas ziņo par diapazonu no 24 mm līdz 1000 mm vai no 1 collas līdz 40 collām. Bloks (Attālums no) ir reportiera bloks, ko izmanto blokos ar apļveida atstarpēm.

 

VEXcode IQ bloķē projektu, kas izmanto attāluma sensoru, lai brauktu uz priekšu, līdz attālums ir mazāks par 50 mm. Projekts skan Kad sākts, brauciet uz priekšu, uz Brain izdrukājiet Distance7 distance milimetros, pagaidiet, līdz Distance7 distance milimetros ir mazāka par 50, un pēc tam pārtrauciet braukšanu.

Šajā piemērā bloks (Attālums no) tiek izmantots kopā ar bloku [Drukāt], lai smadzeņu ekrānā parādītu attālumu starp attāluma sensoru un objektu. Bloks (Attālums no) tiek parādīts arī <Less than> bloka iekšpusē, kas atrodas bloka {Wait until} iekšpusē. Tas liks robotam braukt, līdz attāluma sensors noteiks objektu, kas atrodas mazāk nekā 50 milimetru attālumā, un pēc tam pārtrauks braukšanu. Tas ir parādīts pirmajā videoklipā iepriekš.

Attāluma sensora kodēšana programmā Python

Piezīme:Lai programmētu VEX IQ (1. paaudzes) attāluma sensoru Python valodā, tam jābūt savienotam ar VEX IQ (2. paaudzes) smadzenēm. VEX IQ (1. paaudzes) smadzenes neatbalsta Python.

distance_7.is_object_detected()

Komanda distance.is_object_detected ziņo par “true”, ja objekts tiek atklāts, un “false”, ja objekts netiek atklāts.

Piezīme:Attāluma sensora nosaukums, kas parādās komandā, atbilst nosaukumam, kas ir norādīts konfigurācijā. 

drivetrain.drive(FORWARD)
kamēr nav distance_7.is_object_detected()
    wait(20, MSEC)
drivetrain.stop()
Šajā piemērā tiek izmantots ciklsWhile ar nosacījumu , nevis kopā ar komandu distance.is_object_detected , lai robots virzītos uz priekšu, līdz attāluma sensors atrod objektu. Kad sensors uztver objektu, robots pārtrauks braukt, kā parādīts iepriekš redzamajā Python kodā.
attālums_7.attālums(MM)

Komanda distance.distance ziņo par attāluma sensora tuvākā objekta attālumu. Tas ziņo par diapazonu no 24 mm līdz 1000 mm vai no 1 collas līdz 40 collām.

drivetrain.drive(FORWARD)
brain.screen.print(distance_7.distance(MM)
kamēr nav distance_7.distance(MM) < 50:
    wait(20, MSEC)
drivetrain.stop()

Šajā piemērā tiek izmantots cikls While ar nosacījumu , nevis kopā ar komandu distance.is_object_detected , lai robots virzītos uz priekšu, līdz attāluma sensors nosaka objektu. Kad sensors uztver objektu, robots pārtrauks braukt.

Šajā piemērā komanda distance.distance tiek izmantota kopā ar komandu brain.screen.print , lai Brain ekrānā parādītu attālumu starp attāluma sensoru un objektu. Komanda distance.distance ir parādīta arī While cikla iekšpusē ar nosacījumu , nevis . Tas liks robotam braukt, līdz attāluma sensors noteiks objektu, kas atrodas mazāk nekā 50 milimetru attālumā, un pēc tam pārtrauks braukt. Tas ir parādīts pirmajā iepriekš redzamajā videoklipā.

Lai uzzinātu vairāk par attāluma sensora kodēšanu Python valodā, skatiet Datorzinātņu 1. līmeņa - Python kursa 5. nodaļu. 

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

Last Updated: