Device Information Service

 
ファームウェアバージョンなど、デバイス情報を読み取るためのサービスです。

Bluetooth 採択済みプロファイルの1つです。

Service UUID: 0x180A

Characteristics UUID (16bit)
Manufacturer Name String
製造者の名称を記載する
0x2A29
Hardware Revision String
ハードウェアのリビジョンを記載する
0x2A27
Firmware Revision String
ファームウェアのリビジョンを記載する
0x2A26

 

 

KeiganMotor Service

 
KeiganMotor Service

KeiganMotor の制御を司る独自のサービスです。

Service UUID: f140ea35-8936-4d35-a0ed-dfcd795baa8c

アドバタイズしている、KeiganMotor のスキャン(絞り込み)には、上記のUUIDを使用して下さい。

Characteristics UUID (128bit)
Motor Control
KeiganMotorへの設定、制御命令を取り扱う
f1400001-8936-4d35-a0ed-dfcd795baa8c
Motor LED
KeiganMotorのLEDを取り扱う
f1400003-8936-4d35-a0ed-dfcd795baa8c
Motor Measurement
モーターの位置・速度・トルク等測定値を取り扱う
f1400004-8936-4d35-a0ed-dfcd795baa8c
Motor IMU Measurement
KeiganMotorの加速度・ジャイロセンサー(IMU)を取り扱う
f1400005-8936-4d35-a0ed-dfcd795baa8c
Motor Settings
KeiganMotorの設定値を取り扱う
f1400006-8936-4d35-a0ed-dfcd795baa8c

 

KeiganMotor Service の各キャラクタリスティクス

Motor Control

read
write
write_without_response

Characteristics UUID: f1400001-8936-4d35-a0ed-dfcd795baa8c

本キャラクタリスティクスに、以下の コマンド (無線-有線共通)を書き込むことにより、KeiganMotorを制御します。

 

 

Motor LED

read
write
write_without_response

Characteristics UUID: f1400003-8936-4d35-a0ed-dfcd795baa8c

本キャラクタリスティクスに、以下の形式でデータを書き込むと、LEDを制御します。

LED は、Motor Control キャラクラリスティクスに、コマンド(LED)を書き込むことによっても制御が可能です。
byte [0] [1] [2] [3]
uint8_t ledState uint8_t red uint8_t green uint8_t blue
説明 点灯モード
(下記)
red 強度
0-255
green 強度
0-255
blue 強度
0-255


typedef enum ledState =
{

LED_STATE_OFF = 0, // LED消灯

LED_STATE_ON_SOLID = 1, // LED点灯(点灯しっぱなし)

LED_STATE_ON_FLASH = 2, // LED点滅(一定間隔で点滅)

LED_STATE_ON_DIM = 3 // LEDがゆっくり明滅する

}

動作デモ
Device Scan
Device Disconnect
:DisConnectted
MOTOR_LED_STATE_OFFMOTOR_LED_STATE_ON_SOLID</option >MOTOR_LED_STATE_ON_FLASHMOTOR_LED_STATE_ON_DIM
R:00R:11R:22R:33R:44R:55R:66R:77R:88R:99R:AAR:BBR:CCR:DDR:EER:FF
G:00G:11G:22G:33G:44G:55G:66G:77G:88G:99G:AAG:BBG:CCG:DDG:EEG:FF
B:00B:11B:22B:33B:44B:55B:66B:77B:88B:99B:AAB:BBB:CCB:DDB:EEB:FF
Send

 

 

Motor Measurement

read
notify

Characteristics UUID: f1400004-8936-4d35-a0ed-dfcd795baa8c

本キャラクタリスティクスに、モーターの位置、速度、トルクの測定値が通知されます。
データの形式は下記となります。

byte [0][1][2][3] [4][5][6][7] [8][9][10][11]
float position float velocity float torque
説明 絶対位置
[radian]
角速度
[radian/second]
トルク
[N*m]
モーター動作中でないとトルクは出力されません。また、事前に CCCD キャラクタリスティクス: 0x2902 に 1 を書き込んで、通知を許可して下さい。

 

Motor IMU Measurement

read
notify

Characteristics UUID: f1400005-8936-4d35-a0ed-dfcd795baa8c

本キャラクタリスティクスに、IMU(加速度・ジャイロセンサー)の測定値が通知されます。
ジャイロセンサーは各軸周りの角速度を出力します。データの形式は下記となります。

byte [0][1] [2][3] [4][5] [6][7] [8][9] [10][11] [12][13]
int16_t accel-x int16_t accel-y int16_t accel-z int16_t temp int16_t gyro-x int16_t gyro-y int16_t gyro-z
説明 加速度(x)
-32,768 - 32,767
加速度(y)
-32,768 - 32,767
加速度(z)
-32,768 - 32,767
温度
-32,768 - 32,767
角速度(x)
-32,768 - 32,767
角速度(y)
-32,768 - 32,767
角速度(z)
-32,768 - 32,767

各値については以下にて単位変換を行ってください。読み取った生の値を raw_value, 変換した値を value と定義します。

  • 加速度
    value [G] = raw_value * 2 / 32,767
  • 温度
    value [℃] = raw_value / 333.87 + 21.00
  • 角速度
    value [degree/second] = raw_value * 250 / 32,767
    value [radians/second] = raw_value * 0.00013316211

 

※ 1.0 G = 9.80665 m/s^2

Motor Control キャラクラリスティクスに、enableIMU コマンドを書き込まない限り、notification(通知)は動作しません。また、事前に CCCD キャラクタリスティクス: 0x2902 に 1 を書き込んで、通知を許可して下さい。

 

Motor Settings

read
write
write_without_response

Characteristics UUID: f1400006-8936-4d35-a0ed-dfcd795baa8c

本キャラクタリスティクスに、コマンド(モーター設定) を書き込むことにより、モーターの設定(レジスタ)を読み書きします。
(無線-有線共通コマンド)