Kontrol#

Perkenalan#

Kontrol dalam Python memungkinkan Anda memberi tahu robot kapan harus menunggu, kapan harus mengulangi tindakan, bagaimana membuat keputusan, dan kapan harus mengakhiri proyek.

Berikut adalah daftar kontrol yang tersedia, termasuk metode dan kata kunci inti Python:

  • wait – Menghentikan sementara proyek untuk waktu tertentu.

  • for – Mengulang kode untuk setiap item dalam urutan.

  • if – Menjalankan kode jika suatu kondisi benar.

  • if/else – Menjalankan kode berbeda tergantung pada suatu kondisi.

  • if/elif/else – Memeriksa beberapa kondisi secara berurutan.

  • while – Mengulang kode selama suatu kondisi benar.

  • break – Keluar dari loop dengan segera.

  • quit – Mengakhiri proyek yang sedang berjalan.

  • pass – Placeholder yang digunakan ketika tidak diperlukan tindakan.

wait#

wait berhenti sejenak selama jangka waktu tertentu sebelum melanjutkan ke baris kode berikutnya.

Usage:
wait(time, units)

Parameter

Keterangan

time

Jumlah waktu yang harus ditunggu, sebagai bilangan bulat positif atau desimal.

units

Satuan yang mewakili waktu tunggu: MSEC (standar) – milidetik, atau SECONDS

# Fly for 1 second.
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()

for#

for mengulangi serangkaian tindakan sejumlah kali tertentu. for dapat digunakan untuk mengulang item dalam daftar, tuple, kamus, himpunan, string, atau untuk jumlah perulangan tertentu dengan range.

Penggunaan:

for value in expression_list:
    pass

Komponen

Keterangan

value

Variabel sementara yang menyimpan elemen saat ini dalam iterasi.

expression_list

Kumpulan elemen yang sedang diulang (misalnya, daftar, string, rentang).

# Move back and forth four times then land.
drone.take_off(climb_to=500)
for i in range(4):
    drone.move_for(direction=0, distance=500, velocity=50, units=MM)
    wait(1, SECONDS)
    drone.move_for(direction=180, distance=500, velocity=50, units=MM)
    wait(1, SECONDS)
drone.land()

# Print each item in a list.
colors = ["Red", "Green", "Blue"]
for color in colors:
    controller.screen.print(color)
    controller.screen.next_row()

if#

if menjalankan blok kode yang diindentasi jika kondisinya True.

Penggunaan:

if condition:
    pass

Komponen

Keterangan

condition

Ekspresi atau variabel yang diperiksa saat pernyataan dijalankan. Jika nilainya True, kode di dalam blok if akan dieksekusi; jika nilainya False, blok tersebut dilewati.

# Take a picture when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )

    if controller.button5.pressing():
        drone.camera.capture_image(FORWARD_CAMERA)

    wait(5, MSEC)

if/else#

if dan else tentukan blok kode yang diindentasi mana yang dijalankan berdasarkan apakah kondisinya True atau False.

Penggunaan:

if condition:
    pass
else:
    pass

Komponen

Keterangan

condition

Ekspresi atau variabel yang diperiksa saat pernyataan dijalankan. Jika nilainya True, kode di dalam blok if akan dieksekusi; jika nilainya False, kode di dalam blok else akan dieksekusi sebagai gantinya.

# Climb when the left joystick is moved up.
drone.take_off(climb_to=500)
while True:
    if controller.axis1.position() > 0:
        drone.climb(direction=UP, velocity=50)
    else:
        drone.hover()
    wait(5, MSEC)

if/elif/else#

Struktur if/elif/else memilih blok kode yang diindentasi mana yang akan dijalankan berdasarkan kondisi:

  • if menjalankan bloknya jika kondisinya adalah True.

  • elif memeriksa kondisi tambahan hanya jika semua kondisi sebelumnya adalah False. Beberapa elif pernyataan dapat digunakan.

  • else menjalankan blok ini hanya jika tidak ada kondisi sebelumnya yang benar True.

Penggunaan:

if condition:
    pass
elif condition:
    pass
else:
    pass

Komponen

Keterangan

condition

Ekspresi atau variabel yang diperiksa saat pernyataan dijalankan. Kondisi pertama yang bernilai True menentukan blok mana yang dieksekusi; jika tidak ada yang bernilai True, blok else akan dijalankan.

# Move the drone up or down based on the position of the joystick.
drone.take_off(climb_to=500)
while True:
    position = controller.axis1.position()
    if position > 0:
        drone.climb(direction=UP, velocity=50)
    elif position < 0:
        drone.climb(direction=DOWN, velocity=50)
    else:
        drone.hover()
    wait(5, MSEC)

while#

while menjalankan kode berulang kali selama kondisinya TrueIni juga dapat digunakan seperti “selamanya” dengan menggunakan True sebagai kondisi, atau “tunggu sampai” dengan menambahkan not ke kondisi, seperti yang ditunjukkan pada contoh di bawah ini.

Penggunaan:

while condition:
    pass

Komponen

Keterangan

condition

Ekspresi atau variabel yang diperiksa sebelum setiap iterasi. Jika nilainya True, maka perulangan berlanjut; jika nilainya False, maka perulangan berhenti.

# Hover at 200 mm.
drone.take_off(climb_to=500)
while drone.range.get_distance(DOWNWARD_RANGE, MM) > 200:
    drone.climb(direction=DOWN, velocity=10)
drone.hover()
wait(3, SECONDS)
drone.land()

break#

break keluar dari loop secara langsung. break dapat digunakan untuk keluar dari loop yang jika tidak akan terus berulang tanpa henti.

# Land when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    if controller.button5.pressing():
        break
    wait(5, MSEC)
drone.land()

quit#

quit mengakhiri proyek yang sedang berjalan.

Usage:
quit()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# Land when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    if controller.button5.pressing():
        quit()
    wait(5, MSEC)
drone.land()

pass#

pass adalah tempat penampung untuk kode di masa mendatang dan dapat digunakan untuk menghindari kesalahan dalam perulangan kosong, kondisional, dan fungsi.

if condition:
    pass

def function():
    pass