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 10

入力: 方位磁針

Last updated at Posted at 2024-12-09

背景

メイン基板には地磁気センサーが搭載されています。(Bosch BMM150 ?)

image.png

sphero boltは接続した状態で持ち上げて向きを変えると暴れます。
これは向き(yaw)をAIMで合わせた方向に一定に保つことを重要にしているのかもしれません。

今回はコンパスを使ったプログラミングを試してみます。

Scratch

コンパスは動作のブロックでspheroの向きを変更することができるようです。

image.png

コンパスの向きの数字を押すと変更する方角を入力することができました。
image.png

「北の方角を探した後で、北(0deg)に向く」

image.png

使用している個体や環境の問題かもしれませんが、コンパスの向きの後にディレイを入れないと向きが変更されませんでした。

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()

        droid.set_compass_direction(0)
        # time.sleep(1)
        print(droid.get_compass_direction())        # fake ?

        droid.set_compass_direction(0)
        time.sleep(1)
        print(droid.get_compass_direction())        # fake ?

        print("Testing End...")
  

実行結果はこちらのようになりました。
get_compassの値は正しくありませんでしたが、まだ検証中のようです。

git\spherov2.py\spherov2\test>python BoltTest_compass.py
Testing Starting...
Connecting to Bolt...
Connected.
Testing Start...
246
246
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?