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 19

出力: サウンド

Last updated at Posted at 2024-12-18

背景

Sphero IDEには音声再生のブロックが用意されています。
boltは本体ではなく、制御するPCやスマホから音が鳴るようです。

Scratch

サウンドの欄にブロックがありました。

image.png

四角いボタンを押すと音の種類を選べました。
image.png

「ロボットの321の音を再生する」

image.png

サウンドのブロックの右にあるwaitを押すと、waitと「続ける」を選ぶことができました。
「続ける」は音声を再生しながら次に進むということでした。

spheroV2

sphero_edu.pyには音声再生の関数が見つかりませんでした。
代わりにpygameモジュールを用いて再生するようにしました。

import time

from spherov2 import scanner
from spherov2.sphero_edu import EventType, SpheroEduAPI
from spherov2.types import Color

from spherov2.utils import FrameRotationOptions

import os

import pygame

print("Testing Starting...")
print("Connecting to Bolt...")
toy = scanner.find_BOLT()

if toy is not None:
    print("Connected.")
    with SpheroEduAPI(toy) as api:
        pygame.mixer.init(frequency=44100)

        api.set_stabilization(False)

        api.set_main_led(Color(r=50, g=0, b=0)) #Sets whole Matrix
        time.sleep(1)

        file_path = os.path.abspath("jinglebells.mp3")
        
        pygame.mixer.music.load(file_path)
        pygame.mixer.music.play()
        while pygame.mixer.music.get_busy():
            continue

        api.set_main_led(Color(r=0, g=0, b=0)) #Sets whole Matrix
        time.sleep(1)

else:
    print("Failed to connect to Sphero.")

実行結果はこちらのようになりました。

git\spherov2.py\spherov2\test>python BoltTest_sound.py
pygame 2.6.1 (SDL 2.28.4, Python 3.12.7)
Hello from the pygame community. https://www.pygame.org/contribute.html
Testing Starting...
Connecting to Bolt...
Connected.

音楽が終了するまでは次に進まないですので、Scratchの「続く」のような機能は並列化などで対応できるのかもしれないです。

まとめ

spheroV2とpygamesを用いて、サウンドをpythonで模擬的に動かすことができました。
bluetoothイヤホンを改造して、bolt側にスピーカーをつけると面白そうです。

image.png

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?