背景
昨日のスクリプトは繰り返しの回数が見た目ではわかりませんでした。
Sphero boltのLEDマトリクスは点や線、矩形を描くことができます。
今回はドットを繰り返し回数を表示してみます。
Scratch
ループのブロックはコントロールのところにありました。
「12回くりかえして30度ずつ回転させる。
回転する前にマトリクスLEDが1つずつドットを増やして表示する。
ただし4つずつドットを表示したら改行する。」
回転角から表示するマトリクスのドットの位置を計算する式のところが分かりにくいかもしれません。
spheroV2
ループ変数をiとしてfor文にしました。
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.calibrate_compass()
time.sleep(1)
droid.set_main_led(Color(r=0,g=0,b=0))
a = 0
droid.set_compass_direction(a)
time.sleep(1)
print(a)
for i in range(12):
droid.set_matrix_pixel(int(i/4), int(i%4), Color(250, 250, 250))
droid.set_compass_direction(a + 30)
time.sleep(1)
a += 30
print(a)
print("Testing End...")
実行結果はこちらのようになりました。
git\spherov2.py\spherov2\test>python BoltTest_compass4.py
Testing Starting...
Connecting to Bolt...
Connected.
Testing Start...
0
30
60
90
120
150
180
210
240
270
300
330
360
Testing End...
まとめ
LEDマトリクスにドットを描く作業を作成してみました。
ドットの表示と動きのタイミングに違和感を感じにくくする工夫はもっと頑張ってみたくなります。