• TOP
  • >
  • 教材
  • >
  • プログラミング・ロボット教材
  • >
  • SPIKEプライム
  • >
  • SPIKE Prime with Python P2

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


準備

LモーターモジュールをポートCに、力センサーモジュールをポートBに接続します。
力センサーを使う

プッシュ、スタート、ストップ

力センサーを使用してモーターを制御してみましょう
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
/カラーセンサーを使う


 準備

カラーセンサーモジュールをポートF、2つのMモーターモジュールをポートA、ポートEに接続します。
カラーセンサーを使う

黄色?紫色?

カラーセンサーを使用してモーターを制御してみましょう。
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リファレンス」セクションをご覧ください。