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 |
|---|---|
|
Jumlah waktu yang harus ditunggu, sebagai bilangan bulat positif atau desimal. |
|
Satuan yang mewakili waktu tunggu: |
# 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 |
|---|---|
|
Variabel sementara yang menyimpan elemen saat ini dalam iterasi. |
|
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 |
|---|---|
|
Ekspresi atau variabel yang diperiksa saat pernyataan dijalankan. Jika nilainya |
# 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 |
|---|---|
|
Ekspresi atau variabel yang diperiksa saat pernyataan dijalankan. Jika nilainya |
# 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:
ifmenjalankan bloknya jika kondisinya adalahTrue.elifmemeriksa kondisi tambahan hanya jika semua kondisi sebelumnya adalahFalse. Beberapaelifpernyataan dapat digunakan.elsemenjalankan blok ini hanya jika tidak ada kondisi sebelumnya yang benarTrue.
Penggunaan:
if condition:
pass
elif condition:
pass
else:
pass
Komponen |
Keterangan |
|---|---|
|
Ekspresi atau variabel yang diperiksa saat pernyataan dijalankan. Kondisi pertama yang bernilai |
# 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 |
|---|---|
|
Ekspresi atau variabel yang diperiksa sebelum setiap iterasi. Jika nilainya |
# 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