2021年07月30日 更新
ラズパイをセントラルにしてBLE機器との通信を行う方法です。
ペリフェラルとしてmicro:bitを使いました。アプリはBlueJellyのサンプルコードにあるnotify_uart.htmlを使っています。micro:bitを傾けるとラズパイのディスプレイ上に表示されている数値がリアルタイムで変化します。
[TOC]
使用したラズパイはRaspberry Pi 4 Bですが、Bluetoothが搭載されているラズパイであればどれでも大丈夫だと思います。特にBluetooth自体の設定は不要です。
Web Bluetoothを使えるようにします。
Raspberry Pi OSにデフォルトでインストールされているChromiumを起動します。ラズパイアイコンの横にある青い地球儀のアイコンです。
アドレスバーに以下を打ち込みます。
chrome://flags
Search flagsと書かれている検索ボックスに以下を打ち込みます。
Experimental Web Platform features
右側のプルダウンメニューをDisabledからEnabledに変えます。
少し動きが鈍い場合は、スペースキー > Eキー > Enterキー とキーボードを使うと上手くいく場合があります。
Relaunchというボタンをクリックするとchromiumが自動で再起動されます。
これでWeb Bluetooth設定OK!
今回は以下のページのブロックを書き込みました。
https://monomonotech.jp/kurage/webbluetooth/microbit_ble_block.html
BlueJellyをgit cloneして実行しました。
LXTerminalを立ち上げて以下のコマンドを打ち込んでください。
git clone https://github.com/electricbaka/bluejelly.git
piディレクトリにbluejellyフォルダが出来ているので、その中にあるnotify_uart.htmlを起動して実行します。ペア設定ボタンが押せるようになるまでと、押した後に接続されるまで時間がかかりましたが、その後はうまく通信できました。
他のサンプルも問題なく動きました。
この画像はadvance_slick.htmlの例です。micro:bitを傾けることでスライドが動きます。
:::warning BLE通信がうまくいかない場合は、micro:bitの電源をOFF/ONしたり、chromiumを更新したりしてみて下さい。 :::
以上、RaspberryPiでBlueJelly でした。