0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

sphero boltで遊ぶAdvent Calendar 2024

Day 4

入力: 明るさセンサ

Last updated at Posted at 2024-12-03

背景

メイン基板にはFrontのRGB-LEDの傍に明るさセンサーが搭載されています。

241204.png

明るさセンサを入力として扱うプログラミングを行いました。

Scratch

明るさセンサは取得した値を変数として扱いになっているので、値を取得する命令をするブロックがあるわけではないようです。

image.png

「起動後にBackのLEDが緑色に点灯しているときに、もし明るさセンサを指で隠していたらFrontのLEDが青色に点灯する」

image.png

ifの前のディレイを入れないと動作が不安定でした。
明るさセンサの取得タイミングとif文の判定の順番に癖があるのかもしれません。

spheroV2

testにあったBoltTest.pyのコメントアウトを参考に同様な動作をするスクリプトを作成しました。
この場合は、明るさセンサの取得タイミングとif文の判定の順番が分かりやすいです。
(厳密にget_luminosity()の先を調べたほうがよさそうです)

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_back_led(Color(r=0, g=255, b=0))

        time.sleep(1)

        ambient_light_data = droid.get_luminosity()
        ambientLight = ambient_light_data['ambient_light']  # 辞書から値を取得
        print(f"Luminosity: {ambientLight:.1f}")

        if ambientLight < 10 :
            print("it is dark")
            droid.set_front_led(Color(r=0, g=0, b=255)) 
       
        time.sleep(1)

        print("Testing End...")
  
  #droid.register_event(EventType.on_sensor_streaming_data, droid.SensorStreamingInfo) #how you would register to data (function name is custom)
  

指で明るさセンサを隠していた時の実行結果はこちらのようになりました。

git\spherov2.py\spherov2\test>python BoltTest_ambientLight0.py
Testing Starting...
Connecting to Bolt...
Connected.
Testing Start...
Luminosity: 3.0
it is dark
Testing End...

まとめ

明るさセンサを入力に使ったプログラミングを実験しました。
spheroV2は明るさセンサの値自体を表示する機能があるので、遊ぶ幅が広がりそうです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?