測定代行株式会社

お問い合わせ

測定代行株式会社

Bluetoothスピーカーから音を出したい?「Bluetooth関数」を使うのは無理だよ!という話

Bluetoothスピーカーから音を出したい?「Bluetooth関数」を使うのは無理だよ!という話

LabVIEWを使っていて、「実験の警告音や測定完了のアナウンスをBluetoothスピーカーから流すソフトを作りたい」と思ったことはありませんか?

関数パレットを開くと、親切にも「データ通信」のなかに「Bluetooth」という関数グループが用意されています。「これを使えば簡単にスピーカーとペアリングして音を出せるはず!」と実装を始める技術者の方が非常に多いのですが……実はここに、巨大な罠が潜んでいます。

◆ 結論:LabVIEWのBluetooth関数でスピーカーに繋ぐのは無理です!

結論から言うと、そのパレットにある関数を使ってBluetoothスピーカーから音を出すプログラムを作るのは、ほぼ不可能です。何日も試行錯誤して時間を無駄にしてしまう前に、この記事を読んで正しいアプローチに切り替えてください。

なぜ「Bluetooth関数」では無理なのか?

原因は、Bluetoothという規格の中に存在する「プロファイル(通信規格)」の違いにあります。

つまり、LabVIEWのBluetooth関数は「文字や数値を送るための通り道」であり、スピーカーが求めている「音楽を流すための通り道」とは根本的に規格が異なります。ここに自力で音声データを流そうとすると、プロトコルをゼロから解析して偽装するような、途方もない超高難度のプログラムを組む羽目になります。

【解決策】Bluetoothは「Windows」に丸投げするのが大正解

では、どうすれば一番簡単にBluetoothスピーカーから音を出せるのでしょうか?

正解は、「Bluetoothの面倒な接続処理はすべてOS(Windows)に丸投げし、LabVIEWからは単なる通常のサウンドデバイスとして音を鳴らす」という方法です。これなら、わずか数分で実装が完了します。

具体的な実装ステップ

  1. Windows側でスピーカーをペアリングする
    LabVIEWを触る前に、まずは普通にWindowsの「設定」からBluetoothスピーカーをペアリングし、PCの音がそのスピーカーから出る状態(既定のデバイス)にしておきます。
  2. LabVIEWでは「サウンド出力VI」を使う
    関数パレットの「グラフィック&サウンド」→「サウンド」→「出力」にある標準関数を使用します。
  3. デバイスIDは「0」のままでOK
    「サウンド出力を構成.vi」のデバイスIDには、デフォルトの 0 を指定します。これにより、Windowsが現在選択している出力先(=先ほどペアリングしたBluetoothスピーカー)へ自動的に音がルーティングされます。

あとは「サウンド出力を書き込み.vi」にサイン波などの波形データや、読み込んだWAVファイルを渡して「サウンド出力を開始.vi」を走らせるだけ。これだけで、何事もなかったかのようにBluetoothスピーカーから心地よい音が鳴り響きます。

知っておくべきワンポイント:Bluetooth特有の「遅延」

この方法で無事に音は出ますが、実務に組み込む際は「遅延(レイテンシ)」にだけ注意してください。

有線のスピーカーやイヤホンと違い、Bluetoothオーディオは無線化の処理を挟むため、どうしても数十ms?数百msの音の遅れが発生します。 「エラーが発生した瞬間に、1msのズレもなく警告音を鳴らして現場に知らせたい」といった、極めて厳密なリアルタイム性が求められる実験装置・制御システムの場合は、この遅延がボトルネックになる可能性があるため、有線接続を選ぶのが安全です。

実験装置の自動化・計測制御システム開発のご相談は測定代行株式会社へ

「パレットにある関数を試したのに動かなくて何時間も悩んでしまった」「やりたいことは決まっているのに、LabVIEWの仕様の罠に引っかかって開発が進まない」……そんな経験はありませんか?

測定代行株式会社は、元・横河計測の技術者が率いるLabVIEW受託開発のプロフェッショナル集団です。現場の「物理現象」とLabVIEWの「ソフトウェア特性」の双方を熟知しているからこそ、こうした罠を回避した、シンプルで確実なシステム開発をご提案できます。

プログラムの新規作成はもちろん、既存のブラックボックス化したVIの改修や、古いシステムの更新(リプレース)まで、LabVIEWのことなら何でもお気軽にご相談ください。