背景
繰り返し同じ処理を行うための関数をScratchで試してみました。
ここでは12/15に作ったScratchを書き直します。
Scratch
関数「0-3の整数を入力するとマトリックスにその数字を表示する」
実行するとカウントダウンする様子が見えました。
spheroV2
pythonは整数から文字に変換できるので、関数の中が簡単になります。
import time
from spherov2 import scanner
from spherov2.sphero_edu import SpheroEduAPI
from spherov2.types import Color
def retStr0(num0: int, api: SpheroEduAPI):
if num0 > -1 and num0 < 4 :
api.set_matrix_character(str(num0), Color(250, 250, 250))
else :
api.set_matrix_character('x', Color(250, 250, 250))
time.sleep(1)
return 0
print("Testing Starting...")
print("Connecting to Bolt...")
toy = scanner.find_BOLT()
if toy is not None:
print("Connected.")
with SpheroEduAPI(toy) as api:
api.set_stabilization(False) # Disable stabilization
# Countdown from 4 to 1
for i in range(4, -1, -1): # Reverse range
retStr0(i, api)
# Set main LED to green
api.set_main_led(Color(r=0, g=250, b=0))
time.sleep(1)
# Clear the LED matrix
api.clear_matrix()
time.sleep(0.5)
print("Testing End...")
else:
print("Failed to connect to Sphero.")
実行結果はこちらのようになりました。
git\spherov2.py\spherov2\test>python BoltTest_matrix3.py
Testing Starting...
Connecting to Bolt...
Connected.
Testing End...
まとめ
Scratchの関数を試してみました。
戻り値の設定ができないようなので、使い勝手は難しいようです。