Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Embedded Rustコードを書いて、micro:bitのBluetooth Low Energy (BLE) をスマートフォンに接続する

BLEスタックが何であるかを見て、基本的な概念を理解しました。次は、その知識を実際に使ってみる番です。スマートフォンとmicro:bitの間でデータを送受信できる、シンプルな(ナレーター: 著者は嘘をついていました)プロジェクトを書いていきます。

このプログラムには、BatteryService というBLEサービスを1つ含めます。接続されたデバイス(スマートフォンなど)は、現在のバッテリーレベルを読み取るか、バッテリーレベルが変化するたびに更新を受け取るために購読できます。

テンプレートからプロジェクトを作成する

今回もEmbassyを使いますが、今度はBSPは使いません。その代わりに、embassy-nrf HAL を直接扱います。

cargo generate --git https://github.com/ImplFerris/mb2-template.git --rev 3d07b56
  • プロジェクト名の入力を求められたら、"hell-ble" のような名前を入力します。

  • async を使用するか尋ねられたら、"true" を選択します。

  • "BSP" または "HAL" のどちらを使うか選ぶよう求められたら、"HAL" を選択します。

プロジェクト構成

この演習は、nrf-softdevice リポジトリにある ble_bas_peripheral_notify.rs の例をベースに、分かりやすさのために少し構成を変更したものです。さらに多くの例はこちらで確認できます。

以下は、これから作成する src フォルダーの構成です。Bluetooth関連の共通セットアップと設定を格納するための ble モジュールを作成し、バッテリーサービスのロジック用に別の service.rs ファイルを用意します。

.
├── ble
│   ├── adv.rs
│   ├── config.rs
│   └── mod.rs
├── main.rs
└── service.rs

1 directory, 5 files