Sensor#

Perkenalan#

Drone VEX AIR dilengkapi dengan Sensor Inersia untuk mengukur gerakan rotasi dan mendeteksi perubahan gerakan, serta Sensor Jarak untuk mendeteksi jarak. Drone VEX AIR juga dapat memantau level baterainya. Sensor-sensor ini memungkinkan drone untuk melacak orientasi, arah, percepatan, dan jaraknya dari objek.

Berikut adalah daftar semua metode yang tersedia:

Inersia - Melacak pergerakan rotasi drone.

  • get_rotation – Mengembalikan seberapa banyak drone telah berputar sejak mulai.

  • get_heading – Mengembalikan haluan saat ini (0 hingga 359,99°).

  • get_yaw – Mengembalikan sudut yaw (–180 hingga 180°).

  • get_roll – Mengembalikan sudut roll (–180 hingga 180°).

  • get_pitch – Mengembalikan sudut kemiringan (–180 hingga 180°).

  • reset_rotation – Mengatur ulang nilai rotasi menjadi 0.

  • reset_heading – Mengatur haluan saat ini menjadi 0.

  • set_heading – Mengatur judul ke nilai tertentu.

  • get_acceleration – Mengembalikan percepatan dalam arah tertentu.

  • get_turn_rate – Mengembalikan kecepatan putar dalam derajat per detik.

Jangkauan — Mendeteksi jarak dari Sensor Jangkauan drone.

  • get_distance — Mengembalikan jarak antara Sensor Jarak yang dipilih dan objek terdekat yang terdeteksi.

Baterai - Menampilkan persentase baterai drone.

Inersia#

get_rotation#

get_rotation mengembalikan jumlah derajat putaran drone sejak awal. Fungsi ini menjumlahkan semua putaran dan mengembalikan total dalam derajat: positif untuk searah jarum jam, negatif untuk berlawanan arah jarum jam.

Usage:
drone.inertial.get_rotation()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# 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 mengembalikan sudut haluan drone sebagai nilai float dalam rentang 0 hingga 359,99 derajat.

Usage:
drone.inertial.get_heading()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# 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 mengembalikan sudut yaw drone dalam rentang –180,0 hingga 180,0 derajat sebagai nilai float.

Gambar di bawah ini menggunakan panah untuk menunjukkan arah rotasi positif untuk yaw.

Sebuah Drone VEX AIR dengan bagian depan menghadap ke sudut kanan bawah, dengan panah biru memanjang ke bawah dari tengah. Di sekeliling panah biru, sebuah panah melengkung hitam menunjuk searah jarum jam dan diberi label Yaw, menunjukkan arah positif untuk yaw.

Usage:
drone.inertial.get_yaw

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# 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 mengembalikan sudut roll drone dalam rentang –180,0 hingga 180,0 derajat sebagai nilai float.

Gambar di bawah ini menggunakan panah untuk menunjukkan arah rotasi positif untuk gerakan berguling (roll).

Sebuah drone VEX AIR dengan bagian depan menghadap ke sudut kanan bawah, dengan panah hijau yang memanjang langsung dari bagian depan drone. Di sekitar panah hijau tersebut, sebuah panah melengkung hitam menunjuk berlawanan arah jarum jam, menunjukkan arah putaran positif.

Usage:
drone.inertial.get_roll()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# 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 mengembalikan sudut kemiringan drone dalam rentang –180,0 hingga 180,0 derajat sebagai nilai float.

Gambar di bawah ini menggunakan panah untuk menunjukkan arah rotasi positif untuk pitch.

Sebuah drone VEX AIR menghadap ke sudut kanan bawah dengan panah merah yang keluar dari sisi kanan drone, di samping logo VEX. Di sekitar panah merah, panah melengkung hitam yang menunjuk berlawanan arah jarum jam menunjukkan arah positif untuk pitch.

Usage:
drone.inertial.get_pitch()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# 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 mengatur ulang nilai rotasi drone menjadi 0 derajat.

Usage:
drone.inertial.reset_rotation()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# 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#

Perintah reset_heading mengatur ulang arah drone ke 0 derajat.

Penggunaan:

drone.inertial.reset_heading()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# 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 mengatur arah drone ke nilai tertentu dalam derajat.

Penggunaan:

drone.inertial.set_heading(heading)

Parameter

Keterangan

heading

Nilai yang akan digunakan untuk arah baru dalam rentang 0 hingga 359,99 derajat.

# 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 mengembalikan percepatan drone dalam arah yang ditentukan. Nilai yang dikembalikan mewakili laju perubahan kecepatan, diukur dalam satuan g (di mana 1g ≈ 9,81 m/s²), sebagai bilangan float yang berkisar dari -4,00 hingga 4,00.

Gambar di bawah ini menggunakan panah untuk menunjukkan arah percepatan positif ke depan dan ke kanan, serta percepatan negatif ke bawah.

Sebuah drone VEX AIR ditampilkan dengan panah hijau yang memanjang dari hidung drone bertuliskan Maju, panah biru yang memanjang dari tengah bagian bawah drone bertuliskan Turun, dan panah merah yang memanjang dari sisi kanan drone di samping logo VEX, bertuliskan Kanan.

Penggunaan:

drone.inertial.get_acceleration(type)

Parameter

Keterangan

type

Arah percepatan yang harus dilaporkan:

  • 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 mengembalikan kecepatan putaran drone di sepanjang sumbu yang ditentukan. Ini mengembalikan nilai dalam derajat per detik \(dps\) sebagai angka desimal dari –1000,00 hingga 1000,00 dps.

Gambar di bawah ini menggunakan panah untuk menunjukkan arah rotasi positif untuk roll, pitch, dan yaw.

Sebuah drone VEX AIR ditampilkan dengan panah arah. Panah hijau memanjang dari hidung drone dengan panah melengkung hitam yang mengarah berlawanan arah jarum jam di sekitarnya, berlabel Roll. Panah biru memanjang dari tengah bagian bawah drone dengan panah melengkung hitam yang mengarah searah jarum jam di sekitarnya, berlabel Yaw. Dan panah merah memanjang dari sisi kanan drone di samping logo VEX, dengan panah melengkung hitam yang mengarah berlawanan arah jarum jam di sekitarnya, berlabel Pitch.

Usage:
drone.inertial.get_turn_rate(axis)

Parameter

Keterangan

axis

Orientasi mana yang harus dilaporkan:

  • 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))

Jangkauan#

get_distance#

get_distance mengembalikan jarak antara Sensor Jarak yang dipilih dan objek terdekat yang terdeteksi.

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

Parameter

Keterangan

range

Sensor Jarak yang digunakan: FORWARD_RANGE atau DOWNWARD_RANGE. FORWARD_RANGE melaporkan jarak dari bagian depan drone. DOWNWARD_RANGE melaporkan jarak dari bagian bawah drone.

units

Opsional. Satuan jarak:

  • MM (standar) — milimeter
  • CM — sentimeter
  • 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()

Baterai#

get_battery_level#

get_battery_level mengembalikan tingkat pengisian daya baterai drone dalam persentase. Ini mengembalikan angka dari 0 hingga 100.

Usage:
drone.get_battery_level()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# 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!")