Etäisyysanturi#

Johdanto#

Etäisyysanturi voi havaita, onko anturin edessä kohde, ja palauttaa tiedon kohteen etäisyydestä. Se voi myös palauttaa havaitun kohteen suhteellisen nopeuden ja arvioida, onko kohde pieni, keskikokoinen vai suuri.

Etäisyysanturi toimii 20 mm - 2000 mm:n alueella.

Alle 200 mm:n tarkkuus on noin ±15 mm. Yli 200 mm:n tarkkuus paranee noin 5 %:iin.

Etäisyysanturi käyttää luokan 1 laseria. Tunnistus suuntautuu suoraan eteenpäin ja on luokkahuoneturvallinen.

Etäisyysanturi.

Tällä sivulla käytetään esimerkkinä etäisyysanturin nimeä distance_sensor Korvaa se tarvittaessa omalla määritetyllä nimelläsi.

Alla on luettelo käytettävissä olevista menetelmistä:

  • object_distance — Palauttaa etäisyysanturin ja lähimmän havaitun kohteen välisen etäisyyden.

  • object_velocity — Palauttaa, kuinka nopeasti havaittu kohde liikkuu etäisyysanturia kohti tai siitä poispäin.

  • object_size — Palauttaa havaitun objektin arvioidun koon.

  • is_object_detected — Palauttaa, havaitseeko etäisyysanturi tällä hetkellä kohteen.

  • changed — Rekisteröi funktion suoritettavaksi aina, kun etäisyysanturin arvo muuttuu.

Konstructor — Etäisyysanturin manuaalinen alustaminen.

objektin_etäisyys#

object_distance palauttaa etäisyysanturin ja lähimmän havaitun kohteen välisen etäisyyden desimaalilukuna (liukulukuna).

Usage:
distance_sensor.object_distance(units)

Parametrit

Kuvaus

units

Valinnainen. Etäisyysyksikkö: MM (oletus, 20 mm - 2000 mm) tai INCHES (0,78 tuumaa - 78,74 tuumaa).

# Drive forward until the object is within 50 mm away
drivetrain.drive(FORWARD)
while not distance_sensor.object_distance(MM) < 50:
  pass
drivetrain.stop()

objektin_nopeus#

object_velocity palauttaa havaitun kohteen suhteellisen nopeuden desimaalilukuna (liukulukuna) yksikkönä m/s (metriä sekunnissa).

Nopeus näyttää, kuinka nopeasti kohde liikkuu kohti etäisyysanturia tai siitä poispäin. Lähellä nollaa oleva arvo tarkoittaa, että kohde ei liiku paljon anturiin nähden.

Usage:
distance_sensor.object_velocity()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

objektin_koko#

object_size palauttaa etäisyysanturin havaitseman kohteen arvioidun koon.

Etäisyysanturi arvioi kohteen koon sen perusteella, kuinka suuren osan anturin näkökentästä havaittu kohde peittää.

  • ObjectSizeType(0, “NONE”) — Objektia ei havaittu.

  • ObjectSizeType(1, “SMALL”) — Pieni objekti on havaittu.

  • ObjectSizeType(2, “MEDIUM”) — Keskikokoinen objekti on havaittu.

  • ObjectSizeType(3, “LARGE”) — Suuri objekti on havaittu.

Usage:
distance_sensor.object_size()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

on_objekti_havaittu#

is_object_detected palauttaa, havaitseeko etäisyysanturi tällä hetkellä kohteen.

  • True — Etäisyysanturi havaitsee kohteen.

  • False — Etäisyysanturi ei havaitse kohdetta.

Usage:
distance_sensor.is_object_detected()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

# Drive forward until the object is within 50 mm away
while True:
  drivetrain.drive(FORWARD)
  if distance_sensor.is_object_detected():
    if distance_sensor.object_distance(MM) < 50:
      drivetrain.stop()
      break

muuttunut#

changed rekisteröi funktion kutsuttavaksi aina, kun etäisyysanturin arvo muuttuu.

Usage:
distance_sensor.changed(callback, arg)

Parametrit

Kuvaus

callback

Aiemmin määritelty function, joka suoritetaan, kun etäisyysanturin arvo muuttuu.

arg

Valinnainen. Tuple, joka sisältää argumentteja, jotka välitetään takaisinkutsufunktiolle. Lisätietoja on kohdassa Funktioiden käyttö parametrien kanssa.

def my_function():
  brain.screen.print("Distance changed")

# Call my_function whenever distance_sensor's value changes
distance_sensor.changed(my_function)

Rakentaja#

Konstruktoreita käytetään Distance -objektien manuaaliseen luomiseen, esimerkiksi etäisyysanturin konfiguroinnissa VEXcoden ulkopuolella.

Distance#

Distance luo etäisyysanturiobjektin.

Usage:
Distance(smartport)

Parametri

Kuvaus

smartport

Älyportti, johon etäisyysanturi on kytketty, kirjoitetaan muodossa Ports.PORTx, jossa x on portin numero.

# Create a Distance Sensor in Port 10
distance_sensor = Distance(Ports.PORT10)