kubi 2.0 使いこなしガイドby iPresence

開発者向け:通信仕様

kubi 2.0 は Bluetooth Low Energy(BLE)で iPad などの端末と通信します。このページでは、自社のアプリやサービスから kubi 2.0 の首の向きを制御し、状態を読み取るための通信仕様を公開しています。

仕様は予告なく変更される場合があります。最新の内容はこのページでご確認ください。

kubi 2.0 の GATT サービス
// デバイス名:kubi + MAC アドレス
Generic Access        0x1800
Device Information    0x180A
Custom Control        2a001800-…-1d9ff2d5c442
  ├ Pan  目標位置      0x9145
  ├ Tilt 目標位置      0x9146
  └ 2byte レジスタ書込  0x9142
Custom Status         0xE001
  ├ バッテリー電圧     0xE101
  ├ サーボエラー       0xE102
  └ バッテリー状態     0xE105
UUID の完全な表記は、下の各表を参照してください。

アドバタイズと機器情報

Advertising Data

項目値説明
AD Type 0x01(Flags)0x06LE General Discoverable/BR/EDR Not Supported

Scan Response Data

項目値説明
AD Type 0x09(Complete Local Name)kubi24587CEFC55E(例)「kubi」+ MAC アドレス

Generic Access(0x1800)と Device Information(0x180A)

CharacteristicProperty値
0x2A00 Device NameRead「kubi」+ MAC アドレス
0x2A01 AppearanceReadGeneric Remote Control
0x2A25 Serial Number StringReadMAC アドレスの下6桁
0x2A24 Model Number StringReadiPre-K
0x2A29 Manufacturer Name StringReadiPresence Co., Ltd.
0x2A27 Hardware Revision StringReadハードウェアのリビジョン(文字列)
0x2A26 Firmware Revision StringReadファームウェアのリビジョン(文字列)

首の制御(Custom Control service)

Service UUID:2a001800-2803-2801-2800-1d9ff2d5c442。Characteristic の UUID は 0000XXXX-0000-1000-8000-00805f9b34fb の形式です(表の XXXX)。

UUIDProperty長さ内容
9141Write5byte1byte レジスタへの書き込み(未使用)
9142Write5byte2byte レジスタへの書き込み(速度・加速度の設定)
9143Write5byte1byte レジスタの読み込み(未使用)
9144Write2byte2byte レジスタの読み込み要求
9145Read, Write2byteパン用サーボの目標位置
9146Read, Write5byteチルト用サーボの目標位置
9147Read, Notify5byteレジスタから読み出した値(読み出し時に通知)
9149Read, Notify9byte直前のコマンドへの応答(未使用)

目標位置(9145:パン/9146:チルト)

データ形式
MSB、LSB の順の2byte。例:0x02 0x00(0x0200)
値の範囲
0(0x0000)〜1023(0x03FF)
動かせる範囲
パン(左右):0(0x0000)〜1023(0x03FF)/チルト(上下):432(0x01B0)〜620(0x026C)
角度への換算
値 × 0.29 ≒ 角度[°]。例:0x0200(512)× 0.29 ≒ 150°

現在位置の読み出し(9144 → 9147)

読み込み要求(9144)
ID と Address の2byte。ID:0x01 パン/0x02 チルト。Address は 0x24 のみ。
通知される値(9147)
ID、Address(0x24)、Length(0x02)、LSB、MSB の5byte。例:0x01 0x24 0x02 0x00 0x02 は、パンの現在位置 0x0200(≒150°)。

速度と加速度(9142:2byte レジスタへの書き込み)

ID、Address、LSB、MSB の順に書き込みます。ID:0x01 パン/0x02 チルト。Address は 0x20(速度)と 0x6C(加速度)だけが対象です。

項目Address書き込み例値の範囲初期値動作を保証する範囲換算
Profile Velocity(速度)0x200x01 0x20 0x4E 0x000〜102378(0x004E)78〜156値 × 0.111 ≒ rpm(78 ≒ 9rpm)
Profile Acceleration(加速度)0x6C0x01 0x6C 0x03 0x000〜327673(0x0003)3〜6値 × 214.577 ≒ rpm²(3 ≒ 644rpm²)
速度・加速度は、目標位置を更新したときに反映されます

設定を変えたあとは、目標位置(9145/9146)を書き込んでください。動作を保証する範囲の外の値は使わないでください。

状態の取得(Custom Status service)

Service UUID:0000e001-0000-1000-8000-00805f9b34fb

UUIDProperty長さ内容
0000e101-…Read2byteバッテリー電圧[mV]。LSB、MSB の順。例:0x74 0x0E = 0x0E74 = 3,700mV
0000e102-…Read, Write, Notify2byteサーボのエラー(発生時に通知)。内容は下の表
0000e103-…Read2byteエラーが起きたサーボの ID(0x01 パン/0x02 チルト)
0000e104-…Read, Write3byteインジケーターの点灯色(R、G、B の順に各 0〜255)
0000e105-…Read, Notify1byteバッテリーの状態(変化時に通知)。内容は下の表
0000e10a-…Read, Notify1byte電源ボタンの状態(0x00:離している/0x01:押している。変化時に通知)

UUID の「…」は -0000-1000-8000-00805f9b34fb です。

サーボのエラー(e102)

Bitエラー内容
5Overload Error最大出力を超える負荷が続いている
4Electrical Shock Error回路の電気的な障害、またはモーターを動かす電力の不足
2Overheating Error内部温度が設定された動作温度を超えた
0Input Voltage Error入力電圧が設定された動作電圧を超えた

Bit 7、6、3、1 は使用しません。

バッテリーの状態(e105)

値状態
1通常
3System Reset
5Low Battery
7System Reset/Low Battery
9Charging
11System Reset/Charging
13Low Battery/Charging
15System Reset/Low Battery/Charging

開発のご相談

iPresence は、自社の AI エージェントやサービスに kubi 2.0 の動きを組み込みたい企業・開発者を「AI開発パートナー」として募集しています。既存システムへの組み込みや技術要件のすり合わせについては、お問い合わせください。

開発について問い合わせる