| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|---|
フォースセンサー¶
- class ForceSensor(port)¶
LEGO® SPIKE フォースセンサー
- パラメータ:
port (Port) -- センサーが接続されているポート。
サンプルコード¶
圧力と移動の計測¶
from pybricks.pupdevices import ForceSensor
from pybricks.parameters import Port
from pybricks.tools import wait
# センサーを初期化。
button = ForceSensor(Port.A)
while True:
# このセンサーから得られる情報をすべて読み取る。
force = button.force()
dist = button.distance()
press = button.pressed()
touch = button.touched()
# 値を表示
print("Force", force, "Dist:", dist, "Pressed:", press, "Touched:", touch)
# センサーボタンを押して、値がどうなるかを確認する。
# 何が表示されているかが分かるよう、少し待機。
wait(200)
最大圧力の計測¶
from pybricks.pupdevices import ForceSensor
from pybricks.parameters import Port
from pybricks.tools import wait
# センサーを初期化。
button = ForceSensor(Port.A)
# ボタンが押されるまで待機する関数。ボタンが離されるまで、検出された力の最大値を
# 記録する。そして、その最大値を返す。
def wait_for_force():
# 圧力がほぼゼロの間は何もしないで待機。
print("Waiting for force.")
while button.force() <= 0.1:
wait(10)
# あとは、圧力が再びゼロになるのを待つことで、解放を待つ。
print("Waiting for release.")
# それを待つ間、圧力を読み続け、最大圧力を記憶する。
# これは、最大値を0に初期化し、大きな力を検出するたびに
# 更新することで行う。
maximum = 0
force = 10
while force > 0.1:
# 圧力を読み取る。
force = button.force()
# 計測した圧力の方が大きい場合は、最大値を更新する。
if force > maximum:
maximum = force
# 待機したあと、再度計測する。
wait(10)
# 最大圧力を返す。
return maximum
# センサーボタンが押されるのを待ち続ける。
# 最大圧力を表示し、それを繰り返す。
while True:
peak = wait_for_force()
print("Released. Peak force: {0} N\n".format(peak))