Sensörler#

giriiş#

VEX AIR Drone, dönme hareketini ölçmek ve hareket değişikliklerini tespit etmek için bir Atalet Sensörü ve mesafeleri tespit etmek için bir Menzil Sensörü içerir. VEX AIR Drone ayrıca pil seviyesini de takip edebilir. Bu sensörler, dronun yönünü, rotasını, ivmesini ve nesnelere olan mesafesini izlemesini sağlar.

Aşağıda mevcut tüm yöntemlerin listesi bulunmaktadır:

Ataletsel İzleme - Drone’un dönme hareketini takip edin.

  • get_rotation – Drone’un başladığından beri ne kadar döndüğünü döndürür.

  • get_heading – Geçerli yönü döndürür (0 ila 359,99°).

  • get_yaw – Sapma açısını döndürür (–180 ila 180°).

  • get_roll – Yuvarlanma açısını döndürür (–180 ila 180°).

  • get_pitch – Eğim açısını döndürür (–180 ila 180°).

  • reset_rotation – Döndürme değerini 0’a sıfırlar.

  • reset_heading – Geçerli yönü 0’a ayarlar.

  • set_heading – Başlığı belirli bir değere ayarlar.

  • get_acceleration – Belirli bir yöndeki ivmeyi döndürür.

  • get_turn_rate – Saniyede derece cinsinden dönüş hızını döndürür.

Menzil — Drone’un Menzil Sensörlerinden gelen mesafeleri algılar.

  • get_distance — Seçilen Menzil Sensörü ile en yakın algılanan nesne arasındaki mesafeyi döndürür.

Pil - Drone’un pil yüzdesini gösterir.

Atalet#

get_rotation#

get_rotation , dronun kalkıştan beri kaç derece döndüğünü döndürür. Tüm dönüşleri toplar ve toplamı derece cinsinden döndürür: saat yönünde dönüş için pozitif, saat yönünün tersine dönüş için negatif.

Usage:
drone.inertial.get_rotation()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Display the rotation after turning
drone.take_off(climb_to=500)
drone.turn_for(LEFT, 450, 50)
print(drone.inertial.get_rotation(), end="")
drone.land()

get_heading#

get_heading fonksiyonu, dronun yön açısını 0 ile 359,99 derece arasında bir ondalık sayı olarak döndürür.

Usage:
drone.inertial.get_heading()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Display the drone's heading after turning
drone.take_off(climb_to=500)
drone.set_turn_velocity(100)
drone.turn(RIGHT)
wait(5, SECONDS)
controller.screen.print("Heading: ")
controller.screen.print(drone.inertial.get_heading())
drone.land()

get_yaw#

get_yaw dronun sapma açısını -180,0 ile 180,0 derece aralığında ondalık sayı olarak döndürür.

Aşağıdaki görselde, sapma açısı için pozitif dönüş yönünü göstermek üzere bir ok kullanılmıştır.

Burnunun sağ alt köşeye dönük olduğu ve merkezden aşağı doğru uzanan mavi bir oka sahip bir VEX AIR İHA'sı. Mavi okun etrafında, saat yönünde siyah kavisli bir ok bulunur ve bu ok "Yaw" olarak etiketlenmiştir, bu da sapma için pozitif yönü gösterir.

Usage:
drone.inertial.get_yaw

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Display the yaw angle as you rotate the drone by hand
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print("Yaw: ")
    controller.screen.print(drone.inertial.get_yaw())
    wait(0.2, SECONDS)

get_roll#

get_roll dronun yuvarlanma açısını -180,0 ile 180,0 derece aralığında ondalık sayı olarak döndürür.

Aşağıdaki görselde, yuvarlanma hareketinin pozitif dönüş yönünü göstermek için bir ok kullanılmıştır.

Burnunun sağ alt köşeye dönük olduğu ve dronun burnundan doğrudan dışarı doğru uzanan yeşil bir oka sahip bir VEX AIR Drone. Yeşil okun etrafında, pozitif yuvarlanma yönünü gösteren saat yönünün tersine doğru siyah kavisli bir ok bulunmaktadır.

Usage:
drone.inertial.get_roll()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Display the roll angle as you rotate the drone by hand
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print("Roll: ")
    controller.screen.print(drone.inertial.get_roll())
    wait(0.2, SECONDS)

get_pitch#

get_pitch dronun eğim açısını -180,0 ile 180,0 derece aralığında ondalık sayı olarak döndürür.

Aşağıdaki görselde, eğim için pozitif dönüş yönünü göstermek üzere bir ok kullanılmıştır.

VEX logosunun yanında, sağ tarafından dışarı doğru uzanan kırmızı bir ok bulunan, sağ alt köşeye bakan bir VEX AIR Drone. Kırmızı okun etrafında, saat yönünün tersine doğru işaret eden siyah kavisli bir ok, eğim için pozitif yönü gösterir.

Usage:
drone.inertial.get_pitch()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Display the pitch angle as you rotate the drone by hand
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print("Pitch: ")
    controller.screen.print(drone.inertial.get_pitch())
    wait(0.2, SECONDS)

reset_rotation#

reset_rotation komutu, dronun dönüş değerini 0 dereceye sıfırlar.

Usage:
drone.inertial.reset_rotation()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Display the new rotation after resetting
drone.take_off(climb_to=500)
drone.turn(RIGHT)
while not drone.inertial.get_rotation() > 360:
    wait(5, MSEC)
drone.hover()
drone.inertial.reset_rotation()
wait(1, SECONDS)
print(drone.inertial.get_rotation(), end="")
drone.land()

reset_heading#

reset_heading komutu, dronun yönünü 0 dereceye sıfırlar.

Kullanım:

drone.inertial.reset_heading()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Turn to a heading, reset the heading, and turn to the same heading.
drone.take_off(climb_to=500)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.inertial.reset_heading()
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.land()

set_heading#

set_heading komutu, dronun yönünü derece cinsinden belirtilen bir değere ayarlar.

Kullanım:

drone.inertial.set_heading(heading)

Parametreler

Tanım

heading

Yeni yön için kullanılacak değer, 0 ile 359,99 derece aralığındadır.

# Turn to a heading, set the heading, and turn to the same heading.
drone.take_off(climb_to=500)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.inertial.set_heading(90)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.land()

get_acceleration#

get_acceleration fonksiyonu, belirtilen yönde dronun ivmesini döndürür. Döndürülen değer, g biriminde (1g ≈ 9,81 m/s²) ölçülen hızdaki değişim oranını -4,00 ile 4,00 arasında değişen bir ondalık sayı olarak temsil eder.

Aşağıdaki görselde, ileri ve sağa doğru hareketlerde pozitif ivmenin, aşağı doğru hareketlerde ise negatif ivmenin yönünü göstermek için oklar kullanılmıştır.

VEX AIR İHA'sı, İHA'nın burnundan uzanan yeşil bir okla, İHA'nın alt orta kısmından uzanan mavi bir okla, İHA'nın aşağı doğru uzanan mavi bir okla ve İHA'nın sağ tarafında VEX logosunun yanında uzanan kırmızı bir okla gösterilmiştir.

Kullanım:

drone.inertial.get_acceleration(type)

Parametreler

Tanım

type

Bildirilecek ivme yönü:

  • DOWNWARD
  • FORWARD
  • RIGHTWARD

# Display the acceleration as the drone takes off
drone.take_off(500, wait=False)
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print(drone.inertial.get_acceleration(DOWNWARD))
    wait(5, MSEC)

get_turn_rate#

get_turn_rate dronun belirtilen eksen etrafında dönme hızını döndürür. Bu, saniyede derece \(dps\) cinsinden -1000,00 ile 1000,00 dps arasında bir ondalık sayı değeri döndürür.

Aşağıdaki görselde, yuvarlanma, eğim ve sapma hareketlerinin pozitif dönüş yönleri oklarla gösterilmiştir.

Yön oklarıyla gösterilen bir VEX AIR Drone'u. Drone'un burnundan uzanan yeşil bir ok ve etrafında saat yönünün tersine dönen siyah kavisli bir ok var, bu ok "Roll" olarak etiketlenmiş. Drone'un alt orta kısmından uzanan mavi bir ok ve etrafında saat yönünde dönen siyah kavisli bir ok var, bu ok "Yaw" olarak etiketlenmiş. Ve VEX logosunun yanındaki drone'un sağ tarafından uzanan kırmızı bir ok ve etrafında saat yönünün tersine dönen siyah kavisli bir ok var, bu ok "Pitch" olarak etiketlenmiş.

Usage:
drone.inertial.get_turn_rate(axis)

Parametreler

Tanım

axis

Hangi yönelimi bildirmelisiniz:

  • YAW
  • ROLL
  • PITCH

# Display the drone turn rate as it is rotated by hand.
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(7, 1)
    controller.screen.print(drone.inertial.get_turn_rate(ROLL))

Menzil#

get_distance#

get_distance seçilen Mesafe Sensörü ile en yakın algılanan nesne arasındaki mesafeyi döndürür.

Usage:
drone.range.get_distance(range, units)

Parametreler

Tanım

range

Kullanılacak Mesafe Sensörü: FORWARD_RANGE veya DOWNWARD_RANGE FORWARD_RANGE , dronun önünden olan mesafeyi bildirir. DOWNWARD_RANGE , dronun altından olan mesafeyi bildirir.

units

İsteğe bağlı. Mesafe birimi:

  • MM (varsayılan) — milimetre
  • CM — santimetre
  • INCHES

# Fly forward until close to an object
drone.take_off(climb_to=500)
drone.move_at(direction=0, velocity=50)
while not drone.range.get_distance(FORWARD_RANGE, MM) < 750:
    wait(0.1, SECONDS)
drone.land()

Pil#

get_battery_level#

get_battery_level fonksiyonu, dronun pil şarj seviyesini yüzde olarak döndürür. Bu, 0 ile 100 arasında bir sayı döndürür.

Usage:
drone.get_battery_level()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Display the drone's battery level
if drone.get_battery_level() < 25:
    controller.screen.print("Charge the drone Battery!")
else:
    controller.screen.print("Ready to fly!")