Part 3:Using Force Sensor
/力センサーを使う
準備

プッシュ、スタート、ストップ
力センサーを使用してモーターを制御してみましょう
1. このコードをプログラミングキャンパスにコピー(記述)します。
2. プログラムを再生し、力センサーのボタンを押します。
from spike import ForceSensor, Motor
# モーター、センサーを初期化
force_sensor = ForceSensor('B')
motor = Motor('C')
# ボタンをゆっくりと押すと、1回だけ機能します。
# プログラムをもう一度再生して、もう一度試してください
motor.set_default_speed(25)
force_sensor.wait_until_pressed()
motor.start()
force_sensor.wait_until_released()
motor.stop()
コード変更して、センサーとの別の相互作用を調査します。
motor.set_default_speed(25)
force_sensor.wait_until_pressed()
force_sensor.wait_until_released()
motor.start()
force_sensor.wait_until_pressed()
force_sensor.wait_until_released()
motor.stop()
この詳細については、このナレッジベースの「SPIKE Pythonリファレンス」セクションをご覧ください。
Part 4:Changing the Flow with Loops and Conditions
/ループと条件による流れの変更
準備

力センサーモジュールをポートB、LモーターモジュールをポートCに接続した状態で、プログラムの実行フロー(プログラムの流れ)を変更する方法を見てみましょう。
while ループ
whileループは、何かを繰り返すために使用されるプログラム構造です。条件付きで使用されます。ループは条件が成立する(真の)間繰り返されます。
ループの本文の内容を示すにはテキストをインデント(字下げ)する必要があります。
以下に例を示します。
1.このコードをプログラミングキャンバスにコピー(記述)します。
2.プログラムを再生し、力センサーのボタンを押します。
from spike import ForceSensor, Motor
#モーター、力センサー、変数の初期化
force_sensor = ForceSensor('B')
motor = Motor('C')
count = 0 #実行回数をカウントする変数
#力センサーを5回押すとプログラムが終了します
motor.set_default_speed(25)
while count < 5 :
#ここから最後の行まで全て字下げ(スペース4つ分)する
force_sensor.wait_until_pressed()
motor.start()
force_sensor.wait_until_released()
motor.stop()
count = count + 1 #実行回数をカウントアップします
3.コードを変更して、センサーとの別の相互作用を調べてみましょう。
#この条件は常に真(成立していることを表す)であるため、永久にループします
while True :
#N(ニュートン)またはパーセントで力を測定します
percentage = force_sensor.get_force_percentage()
#測定された力を使用してモーターを指導します
motor.start(percentage)
この詳細については、このナレッジベースの「SPIKE Pythonリファレンス」セクションをご覧ください。
Part 5:Using the Color Sensor
/カラーセンサーを使う
準備

黄色?紫色?
カラーセンサーを使用してモーターを制御してみましょう。
1.このコードをプログラミングキャンバスにコピー(記述)します。
2.プログラムを再生し、紫色のブロック、または黄色のブロックをカラーセンサーに示してモーターを観察します。
from spike import ColorSensor, Motor
from spike.control import Timer
#モーター、カラーセンサー、タイマーの初期化
color_sensor = ColorSensor('F')
motor_a = Motor('A')
motor_e = Motor('E')
timer = Timer()
#各色のレンガをカラーセンサーに示し、何が起こるかを観察します。プログラムは30秒間動作しています。
motor.set_default_speed(25)
while timer.now() < 30 :
#4文字分のインデント(字下げ)
color = color_sensor.wait_for_nre_color()
if color == 'violet' :
#さらに4文字分(8文字分)インデント(字下げ)
motor_a.run_for_rotations(1)
#4文字分のインデント(字下げ)
elif color == 'yellow' :
#さらに4文字分(8文字分)インデント(字下げ)
motor_e.run_for_rotations(1)
3.コードを変更して、センサーとの別の相互作用を調べてみましょう。
#これは色の反射値をを使用してモーターの速度を設定します(黄色は約80%、紫は約60%)
while True :
color = color_sensor.wait_for_new_color()
pergentage = color_sensor.get_reflected_light()
if color == 'magenta' :
motor.run_for_rotation(1, percentage)
elif color == 'yellow' :
motor.run_for_rotation(1, percentage)
この詳細については、このナレッジベースの「SPIKE Pythonリファレンス」セクションをご覧ください。