Bluetooth Low Energy のトラブルシューティング
問題
MATLAB® から Bluetooth® Low Energy 周辺デバイスへの接続に問題がある場合や、データの読み取りまたは書き込みができない場合は、以下のトラブルシューティングのヒントをいくつか試してみることができます。
考えられる解決策
サポートされているプラットフォームの確認
Bluetooth Low Energy インターフェイスは、以下のプラットフォームでサポートされています。
macOS
Windows® 10 および Windows 11
他のトラブルシューティング手順を試す前に、コンピューターがサポートされているプラットフォームのいずれかを実行していることを確認してください。
アダプターの構成
blelist
を呼び出しても MATLAB によって内蔵または外付けの Bluetooth アダプターが検出されない場合は、以下を試してください。
アダプターが Bluetooth 4.0 以上をサポートすることを確認する。
コンピューターで Bluetooth サービスを再起動する。
アダプターの最新のデバイス ドライバーに更新する。
コンピューターを再起動する。
デバイスのステータスのチェック
blelist
の出力にデバイスが表示されない場合は、以下が行われていることを確認してください。
周辺デバイスの電源を入れる。
周辺デバイスをコンピューターの通信範囲内に入れる。
周辺デバイスを、まず他のデバイスやアプリケーションから切断する。
blelist
からの出力は、現在データをアドバタイズしている近くのデバイスのみを表示します。デバイスが他のアプリケーションや MATLAB で既に接続されている場合、出力に表示されない可能性があります。blelist
でTimeout
パラメーターにより大きい値を試す。これによって、MATLAB が近くのデバイスをスキャンする時間が増えます。たとえば、blelist("Timeout",20)
は近くの周辺デバイスを 20 秒間検索します。既定のタイムアウト値は 3 秒です。デバイスが 3 秒に 1 回より低い頻度でアドバタイズ データを送信する場合、MATLAB はそれを取得し損ねる可能性があります。
周辺デバイスの電源や接続を切った場合、電源を再度入れたり再接続したりすると、UUID が変更される可能性があります。ただし、blelist
の出力では名前は同じままになります。同じデバイスについて新しい ble
オブジェクトを作成する場合は、名前の代わりに新しい UUID を指定してください。
Windows では、周辺デバイスが既にペアリング済みでありながら、特性と記述子を定義するファームウェアが変更される場合、ble
はデバイスをコンピューターに接続できないことがあります。これを修正するには、デバイスを切断してから Windows に再接続します。
Windows の Bluetooth Low Energy デバイスの characteristic
オブジェクトを作成できない場合は、MATLAB でこのデバイスに接続するために、ble
を使用する前に Windows でデバイスのペアリングを試してください。デバイスのペアリングは、[Windows の設定] 、 [デバイス] 、 [Bluetooth またはその他のデバイスを追加する] で設定できます。
macOS での Bluetooth のアクセス許可の有効化
macOS を使用している場合、追加の設定を構成しなければならない場合があります。次のエラー メッセージが表示される場合は、以下の手順を試してください。
MATLAB で Bluetooth のアクセス許可が有効になっていません。[セキュリティとプライバシー] 設定で、MATLAB またはターミナルによる Bluetooth の使用を許可してください。
[セキュリティとプライバシー] 、 [プライバシー] 、 [Bluetooth] を開き、[+] アイコンをクリックします。
MATLAB を [アプリケーション] から起動する場合、Bluetooth アクセスを許可するアプリのリストに MATLAB を追加します。
MATLAB を [ターミナル] から起動する場合、Bluetooth アクセスを許可するアプリのリストに [ターミナル] を追加します。
MATLAB を [アプリケーション] と [ターミナル] の両方から起動する場合、Bluetooth アクセスを許可するアプリのリストに MATLAB と [ターミナル] の両方を追加します。
読み取りと書き込みの操作のトラブルシューティング
特性についてコールバック関数内で read(c,'latest')
または read(c)
を高い率で使用すると、エラーがスローされるか、または MATLAB が長時間ブロックされる場合があります。代わりに、read(c,'oldest')
をコールバック関数で使用してください。例については、コールバック関数を使用した Bluetooth Low Energy 周辺デバイスからの特性データの読み取りを参照してください。
macOS では、一部のデバイス特性によって、はじめて読み取りまたは書き込みを行うための認証が求められます。ble
オブジェクトを作成した後に、read
または write
を実行します。コンピューターに表示されるプロンプトに従って、周辺デバイスのペアリングを行ってください。
参考
blelist
| ble
| characteristic
| descriptor