背景
数字や色などを指定するとき、その値を直接指定する代わりに、値を入れる変数を用いることをScratchでも試してみました。
Scratch
変数を作成すると、変数の値を代入するブロックが現れました。
「方角用の変数をaとする。
aにゼロを代入して方角をaに変える。
aに90を代入して方角をaに変える。
aにa + 90を代入して方角をaに変える。
」
最初にコンパスのキャリブレーションのために一周し、
ゼロの向き、90の向き、そして90 + 90 = 180の向きに回りました。
spheroV2
sphero_edu.pyのメソッドを参考に同様な動作をするスクリプトを作成しました。
import time
from spherov2 import scanner
from spherov2.sphero_edu import EventType, SpheroEduAPI
from spherov2.types import Color
print("Testing Starting...")
print("Connecting to Bolt...")
toy = scanner.find_BOLT()
if toy is not None:
print("Connected.")
with SpheroEduAPI(toy) as droid:
print("Testing Start...")
droid.reset_aim()
droid.set_stabilization(False)
droid.calibrate_compass()
time.sleep(1)
a = 0
droid.set_compass_direction(a)
time.sleep(1)
print(a)
a = 90
droid.set_compass_direction(a)
time.sleep(1)
print(a)
a += 90
droid.set_compass_direction(a)
time.sleep(1)
print(a)
print("Testing End...")
実行結果はこちらのようになりました。
git\spherov2.py\spherov2\test>python BoltTest_compass2.py
Testing Starting...
Connecting to Bolt...
Connected.
Testing Start...
0
90
180
Testing End...
まとめ
(pythonに慣れていたので、)Scratchで変数の代入してみました。
変数を作成するとセッターが現れるのが面白かったです。