banner
ホームページ / ブログ / Raspberry Pi Pico W を Bluetooth Low に使用する
ブログ

Raspberry Pi Pico W を Bluetooth Low に使用する

Jun 16, 2023Jun 16, 2023

フレッド・イーディ | 2023 年 8 月 31 日

バージョン 1.5.1 の登場により、Raspberry Pi Pico SDK は、Raspberry Pi Pico W 開発プラットフォームで Bluetooth クラシックと Bluetooth Low Energy (BLE) をサポートするようになりました。 予想通り、Bluetooth サポートの発表後、BlueKitchen の BTstack のポートに基づく多数の Pico Bluetooth サンプルが利用可能になりました。 Raspberry Pi Pico SDK に移植されたサンプル コードは、元の BTstack C 言語形式を保持しています。 ただし、パブリック ドメインで見つかる BTstack ベースの Pico Bluetooth サンプルのほとんどは、MicroPython または Arduino で実現されています。 したがって、この議論の目的は、Visual Studio Code と最新の Raspberry Pi Pico SDK ツールチェーンを使用して、Ubuntu 22.04 LTS で開発された、動作する C 言語の Pico Bluetooth Low-Energy サンプルを作成することです。 サンプル プロジェクトのソース コードは、EDTP Electronics ダウンロード サイトから入手できます。

Raspberry Pi Pico W に詳しくない方のために説明すると、PicoW は、Bluetooth 無線モジュールを介して Bluetooth 無線トラフィックの送受信を監視するマイクロコントローラーで構成される基本的な BLE ハードウェア実装です。 マイクロコントローラーは Bluetooth スタックによって管理されます。 Bluetooth スタックを組み込むことで、PicoW ハードウェアが Bluetooth アプリケーションでクライアントまたはサーバーの役割を担うことができます。 したがって、PicoW は、センサーにサービスを提供するリモート データ収集デバイス、またはリモート デバイスからセンサー データを収集し、収集したデータを中央処理場所に転送するデータ ストアアンドフォワード デバイスとして機能するようにプログラムできます。 PicoW ハードウェアは、スタンドアロン モードで動作して、受信する Bluetooth 情報を処理し、GPIO ピンのバンクとオンチップ周辺機器を介してそれに応じて動作することもできます。

Raspberry Pi Pico SDK バージョン 1.5.1 をインストールすることで、ファームウェア開発プロセスを開始します。 Linux 用の Raspberry Pi Pico SDK および GNU ツールチェーンのインストール手順は、Raspberry Pi Web サイトで参照できます。 次のステップでは、Visual Studio Code のインストールが行われます。 Ubuntu 22.04 LTS の場合は、Debian バージョンの Visual Studio Code をダウンロードしてインストールします。 Visual Studio Code のインストールは、Ubuntu 22.04 LTS 組み込みの Debian アプリケーション インストーラーを使用して実行できます。

インストール後、Visual Studio Code をいくつかカスタマイズする必要があります。 コンパイル プロセスをサポートするには、Visual Studio Code 拡張機能 CMake Tools をインストールする必要があります。これにより、CMake 拡張機能とシリアル モニターもインストールされます。 コンパイルを成功させるには、CMake が Raspberry Pi Pico SDK がインストールされている場所を認識している必要があります。 Raspberry Pi Pico SDK の絶対的な場所は、Cmake:Environment 設定 PICO_SDK_PATH によって識別されます。これは、CMake Tools 拡張機能設定に手動で入力します。 Raspberry Pi Pico SDK と関連ツールチェーンを Linux 上で実行しています。 したがって、CMake ツールの Cmake:Generator 設定フィールドにも Unix Makefile を入力する必要があります。 それでおしまい。 Visual Studio Code を使用する準備ができました。

Raspberry Pi Pico SDK は、Python と PyCryptodomex を利用して、Bluetooth アプリケーションのソース コードに含める必要がある Bluetooth サービスと特性のバイナリ データベース イメージを構築します。 Python は Ubuntu 22.04 LTS パッケージとともにインストールされます。 PyCryptodomex を手動でインストールする必要があります。 PyCryptodomex のインストールは、標準の Ubuntu sudo apt install プロセスを使用して実行されます。 PyCryptodomex のインストール手順の詳細については、PyCryptodomex ドキュメント Web ページを参照してください。 PyCryptodomex を Raspberry Pi Pico SDK ツールチェーンに追加したことで、Raspberry Pi Pico W BLE アプリケーションのコーディングを開始する準備が整いました。

私たちの BLE アプリケーションは、Raspberry Pi Pico SDK の Nordic_spp_le_counter サンプルに基づいています。 Nordic_spp_le_counter の例は、Nordic NUS (Nordic UART Service) の類似バージョンです。 Nordic NUS を使用すると、通信リンクの両側に UART が存在するかのように、BLE デバイスが Bluetooth を使用して通信できるようになります。 Raspberry Pi Pico SDK の Nordic_spp_le_counter サンプルは、実際には同じ名前の BTstack サンプルのコピーです。 Raspberry Pi Pico SDK ディレクトリ ツリーには、nordic_spp_le_counter サンプル ソース コードの完全なブロックは見つかりません。 したがって、BTstack Nordic_spp_le_counter サンプル ソース コードをファームウェア ビルドのテンプレートとして使用します。