コントロール#
導入#
Pythonによる制御では、ロボットに待機するタイミング、動作を繰り返すタイミング、意思決定の方法、プロジェクトを終了するタイミングなどを指示できます。
以下は、メソッドや主要なPythonキーワードを含む、利用可能なコントロールの一覧です。
wait– 指定された時間だけプロジェクトを一時停止します。for– シーケンス内の各項目に対してコードを繰り返します。if– 条件が真の場合にコードを実行します。if/else– 条件に応じて異なるコードを実行します。if/elif/else– 複数の条件を順番にチェックします。while– 条件が真である間、コードを繰り返します。break– ループを即座に終了します。stop_project– 実行中のプロジェクトを終了します。pass– アクションが必要ない場合に使用されるプレースホルダー。
待って#
wait は、次のコード行に進む前に、指定された時間だけ一時停止します。
Usage:wait(time, units)
パラメータ |
説明 |
|---|---|
|
待機時間。正の整数または小数で指定します。 |
|
待ち時間を表す単位: |
def main():
# Turn right for one second, then stop
drivetrain.turn(RIGHT)
wait(1, SECONDS)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
のために#
for repeats a set of actions a specific number of times. for can be used to loop through items in lists, tuples, dictionaries, sets, strings, or for a specified amount of loops with range.
使用例:
for value in expression_list:
pass
コンポーネント |
説明 |
|---|---|
|
イテレーションにおける現在の要素を格納する一時変数。 |
|
ループ処理される要素の集合(例:リスト、文字列、範囲)。 |
def main():
# Move in a square path
for index in range(4):
drivetrain.drive_for(FORWARD, 100, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
# VR threads — Do not delete
vr_thread(main)
def main():
# Print each item in the list
colors = ["Red", "Green", "Blue"]
for color in colors:
brain.print(color)
brain.new_line()
# VR threads — Do not delete
vr_thread(main)
もし#
if runs the indented block of code if the condition is True.
使用法:
if condition:
pass
コンポーネント |
説明 |
|---|---|
|
ステートメント 実行時にチェックされる式または変数。これが |
def main():
# Turn right until facing south
while True:
if drivetrain.heading(DEGREES) < 180:
drivetrain.turn_for(RIGHT, 90, DEGREES)
wait(0.1, SECONDS)
# VR threads — Do not delete
vr_thread(main)
if/else#
if かつ else 条件が True または Falseであるかどうかに基づいて、どのインデントされたコードブロックが実行されるかを決定します。
使用法:
if condition:
pass
else:
pass
コンポーネント |
説明 |
|---|---|
|
ステートメントの実行時にチェックされる式または変数。これが |
def main():
# Drive after turning around
while True:
if drivetrain.rotation(DEGREES) < 180:
drivetrain.turn_for(RIGHT, 90, DEGREES)
else:
drivetrain.drive(FORWARD)
wait(0.1, SECONDS)
# VR threads — Do not delete
vr_thread(main)
if/elif/else#
if/elif/else 構造は、条件に基づいてどのインデントされたコードブロックを実行するかを選択します。
ifruns its block if the condition isTrue.elif、以前の条件がすべてFalseの場合にのみ追加の条件をチェックします。複数のelifステートメントを使用できます。else、前の条件のいずれも真でない場合にのみブロックを実行しますTrue。
使用法:
if condition:
pass
elif condition:
pass
else:
pass
コンポーネント |
説明 |
|---|---|
|
ステートメントの実行時にチェックされる式または変数。最初に |
def main():
# Move depending on the detected color
while True:
if front_eye.detect(RED):
drivetrain.drive(FORWARD)
elif front_eye.detect(GREEN):
drivetrain.drive(REVERSE)
else:
drivetrain.turn(RIGHT)
wait(0.1, SECONDS)
# VR threads — Do not delete
vr_thread(main)
その間#
while 、条件が Trueである限りコードを繰り返し実行します。また、条件として True 使用することで「永久」のように使用したり、条件に not を追加することで「待機」のように使用することもできます。以下の例を参照してください。
使用法:
while condition:
pass
コンポーネント |
説明 |
|---|---|
|
各反復処理の前にチェックされる式または変数。0 が |
def main():
while True:
# Move in a square path forever
drivetrain.drive_for(FORWARD, 150, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
# VR threads — Do not delete
vr_thread(main)
def main():
# Wait until an object is detected to stop driving
drivetrain.drive(FORWARD)
while not front_distance.found_object():
wait(50, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
壊す#
break はループを即座に終了します。2 break 無限ループになる可能性のあるループを終了させるために使用できます。
def main():
# Stop turning after a button is pressed
while True:
drivetrain.turn(RIGHT)
if front_distance.found_object():
break
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
プロジェクトを停止する#
stop_project は実行中のプロジェクトを終了します。
Usage:stop_project()
パラメータ |
説明 |
|---|---|
このメソッドにはパラメータがありません。 |
def main():
# Stop the project after a button is pressed
while True:
drivetrain.turn(RIGHT)
if front_distance.found_object():
stop_program()
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
合格#
pass は将来のコードのためのプレースホルダーであり、空のループ、条件分岐、関数におけるエラーを回避するために使用できます。
if condition:
pass
def function():
pass