# Bluetooth仕様 ## BLEレイヤーの仕様 アドバタイズ、GATTテーブル(サービス、キャラクタリスティック)の仕様については以下を参照ください。 * [BLE specification](https://docs.google.com/document/d/1HjXVrIxySRz522k9D8VXwAAuYe8NCczKYReQd_sTrSg/edit?usp=sharing) ## nRF ConnectによるBLEの直接操作 nRF Connect for MobileでスマートフォンからGATTテーブルを操作し、konashiを動かす手順について説明します。 ### 1. nRF Connectの準備 nRF Connect for Mobileをインストールし、起動します。 ![nRF Connect for Mobile](./nrfc.jpg) * [Android](https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp&hl=ja&gl=US&pli=1) * [iOS]( https://apps.apple.com/jp/app/nrf-connect-for-mobile/id1054362403 ) ### 2. BLEデバイスのスキャン 接続するkonashiに電源を入れ、"SCAN"ボタンをタップし、周辺のデバイスを探します。このとき、付近のデバイスの検出と位置情報についての権限を求められるので許可します。 ![Scan](./nrfc1.jpg) ### 3. 接続 接続するkonashiの名前が表示されたら"CONNECT"をタップして接続します。また、konashiのデバイス名は"ks"から始まるので、この名前でフィルターをかけると探しやすくなります。 ![Connect](./nrfc3.jpg) ### 4. GPIOの設定 konashiに接続したら、使用するGPIO1を出力モードとして有効化します。Service一覧の中からKonashi Config Service (UUID:064D0200-8251-49D9-B6F3-F7BA35E5D0A1)をタップします。 ![config_1](./nrfc4.jpg) サービスをタップするとCharacteristic一覧が表示されます。この中のConfig Command Characteristic(UUID:064D0201-8251-49D9-B6F3-F7BA35E5D0A1)の右上のボタンをタップします。 ![config_2](./nrfc5_1.jpg) ここで0x011110を入力し、SENDをタップしてデータを送信をします。これによってGPIO1が出力ピンとして有効になりました。 ![config_3](./nrfc5_2.jpg) ### 5. GPIOの出力制御 GPIO1の状態を制御します。Service一覧の中からKonashi Control Service(UUID:Control Command 064D0300-8251-49D9-B6F3-F7BA35E5D0A1)の中のControl Command Characteristic(UUID:Control Command 064D0301-8251-49D9-B6F3-F7BA35E5D0A1)のアップロードボタンをタップします。 ![control_1](./nrfc6_1.jpg) ここで0x0112を入力し、SENDをタップしてデータを送信します。 このコマンドでGPIO1の状態がトグルされます。これを繰り返し送信すればLED1がON/OFFを繰り返します。 ![control_2](./nrfc6_2.jpg)