3.Qumcum PythonライブラリでコントロールできるAPI仕様(QumCommLib.dll呼出し)

クムクムプログラミング

Qumcum Pythonライブラリ はクムクムをPythonのプログラムから制御するための関数が用意されています。
クムクムを制御するための準備については「Pythonでクムクムのライブラリーを使う方法」を見て、準備を行ってください。

プログラミング学習用ロボット(クムクム)で制御できるもの

  • RGB-LED
  • ビープ音
  • 音声合成LSI(発話)
  • 超音波センサ
  • マイク
  • モーター(頭、右手、左手、右ふともも、左ふともも、右足、左足)

 

RGB-LED

R(赤)・G(緑)・B(青)、3色の光を出すことができるLEDで、ON-OFFを組み合わせることで7色の光をだすことができます。

ビープ音

周波数指定を行って、ビープ音の高さを制御することができます。

音声合成LSI(発話)

ローマ字の言葉を並べて指示することで音声合成LSIからしゃべることができます。

超音波センサ

超音波により、対象物までの距離を測ることができます。

マイク

音の大きさを測ることができます。音声の認識はできません。

モーター

頭、右手、左手、右ふともも、左ふともも、右足、左足の7つのモーターを動かすことができます。

Qumcum Pythonライブラリ(QumCommLib.dll)のAPI

ここでは、「PythonプログラムからQumCommLib.dllで制御する場合のインターフェースAPI」について書いています。

接続

Qumcumとの接続を開始する

インターフェース HQUMCOMM qumcomm_connect(const char* port_name, unsigned int baudrate);
機能 Qumcumと接続し通信を開始します
※Qumcumを動かすプログラムの一番最初に書きます。
引数 port_name・・・ポート番号の文字列
baudrate・・・ボーレート(通信速度)[クムクムとの通信速度は115,200bpsです]
戻り値 HQUMCOMM型。この値そのものを変更することはありませんが、他のAPI関数を呼び出すときに使用しますので変数で保持しておく必要があります。

 

切断

Qumcumとの接続を終了する

インターフェース void qumcomm_end(HQUMCOMM handle);
機能 Qumcumとの接続を終了します
※Qumcumを動かすプログラムの一番最後に書きます。
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
戻り値 なし

 

RGB-LED

指定した色のRGB-LEDを点灯させる

インターフェース unsigned int qumcomm_led_on(HQUMCOMM handle, int color);
機能 RGB-LEDで指定した色をON(点灯)させます
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
color・・・色を示す数字を指定します。
1:赤
2:青
3:緑
戻り値 unsigned int型(0:成功、0以外:処理失敗)

 

指定した色のRGB-LEDを消灯させる

インターフェース unsigned int qumcomm_led_off(HQUMCOMM handle, int color);
機能 RGB-LEDで指定した色をOFF(消灯)させる
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
color・・・色を示す数字を指定します。
1:赤
2:青
3:緑
戻り値 unsigned int型(0:成功、0以外:処理失敗)

 

ビープ音

指定した周波数のビープ音を出力する

インターフェース unsigned int qumcomm_sound(HQUMCOMM handle, int freq, int time_ms);
機能 指定した時間(msec)だけ指定した周波数の音を発生させる
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
freq・・・出力する周波数
time_ms・・・出力する時間
戻り値 unsigned int型(0:成功、0以外:処理失敗)

 

音声合成LSI(発話)

発話するときの速さを設定する

インターフェース unsigned int qumcomm_voice_speed(HQUMCOMM handle, int speed);
機能 発話する速度を指定します
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
speed・・・発話速度(30-300)
※数値は音声合成LSIのパラメータです。30にするとゆっくり、300にすると早口でしゃべります
戻り値 unsigned int型(0:成功、0以外:処理失敗)

 

指定した言葉を発話する

インターフェース unsigned int qumcomm_voice(HQUMCOMM handle, const char* word);
機能 wordsで指定した言葉を発話します
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
words・・・ローマ字で指定した発話させる文字列
戻り値 unsigned int型(0:成功、0以外:処理失敗)

 

超音波センサ

超音波センサの計測値を取得する

インターフェース unsigned int qumcomm_get_sensor_value(HQUMCOMM handle, int* val);
機能 超音波センサで計測した値を取得します。(単位はcm)
直前のコマンド実行結果から保持した値です。
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
val・・・超音波センサ計測値
戻り値 unsigned int型(0:成功、0以外:処理失敗)

マイク

マイクの計測値を取得する

インターフェース unsigned int qumcomm_get_mic_value(HQUMCOMM handle, int* val);
機能 マイク計測値を取得する。(数値は目安で最小値が0で最大値は100です)
直前のコマンド実行結果から保持した値です。
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
val・・・マイク計測値
戻り値 unsigned int型(0:成功、0以外:処理失敗)

 

モーター制御

モーターの電源をONにする

インターフェース unsigned int qumcomm_motor_power_on(HQUMCOMM handle, int motor_time_ms);
機能 Qumcumのモーター電源をONします
※Qumcumでモーターを動かす前に書きます。
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
motor_time_ms・・・モーターの動作時間(速度、ミリ秒単位)
※別途動作時間を設定していない場合はここでセットした動作時間で動作します
戻り値 unsigned int型(0:成功、0以外:処理失敗)

 

モーターの電源をOFFにする

インターフェース unsigned int qumcomm_motor_power_off(HQUMCOMM handle);
機能 モーター電源をOFFにします
※モーター動作させる一連の処理の終了する際に呼び出します。
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
戻り値 unsigned int型(0:成功、0以外:処理失敗)

 

指定したモーターの角度を設定する

インターフェース unsigned int qumcomm_motor_set_pos(HQUMCOMM handle, int no, int pos);
機能 モーターを指定した角度(絶対位置)に移動する
【注意】この関数だけではモーターは動きません。
動かすには’motor_start’関数をコールしてください
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
no・・・モーターの番号
1: モーター1(右手)
2: モーター2(右足)
3: モーター3(右足首)
4: モーター4(頭)
5: モーター5(左足首)
6: モーター6(左足)
7: モーター7(左手)pos・・・noで指定したモーターの角度
モーター毎に動作させることができる角度が異なります。
モーター1(右手) の角度 0 ~ 180度
モーター2(右足) の角度 55 ~ 125度
モーター3(右足首)の角度 55 ~ 125度
モーター4(頭) の角度 0 ~ 180度
モーター5(左足首)の角度 55 ~ 125度
モーター6(左足) の角度 55 ~ 125度
モーター7(左手) の角度 0 ~ 180度
戻り値 unsigned int型(0:成功、0以外:処理失敗)

 

7つのモーターの角度を設定する

インターフェース unsigned int qumcomm_motor_pos_all(HQUMCOMM handle
, int pos1, int pos2, int pos3, int pos4, int pos5, int pos6, int pos7);
機能 全モーター(7つ)の角度をセットする
【注意】この関数だけではモーターは動きません。
動かすには’motor_start’関数をコールしてください
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
pos1・・・モーター1(右手) の角度( 0 ~ 180度)
pos2・・・モーター2(右足) の角度(55 ~ 125度)
pos3・・・モーター3(右足首)の角度(55 ~ 125度)
pos4・・・モーター4(頭) の角度( 0 ~ 180度)
pos5・・・モーター5(左足首)の角度(55 ~ 125度)
pos6・・・モーター6(左足) の角度(55 ~ 125度)
pos7・・・モーター7(左手) の角度( 0 ~ 180度)
戻り値 unsigned int型(0:成功、0以外:処理失敗)

 

指定したモーターの角度と動作時間を設定する

インターフェース unsigned int qumcomm_motor_angle_time(HQUMCOMM handle, int no, int pos, int motor_time);
機能 モーターの角度(絶対位置)、動作時間を指定する
【注意】この関数だけではモーターは動きません。
動かすには’motor_start’関数をコールしてください
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
no・・・モーターの番号
1: モーター1(右手)
2: モーター2(右足)
3: モーター3(右足首)
4: モーター4(頭)
5: モーター5(左足首)
6: モーター6(左足)
7: モーター7(左手)pos・・・noで指定したモーターの角度
モーター毎に動作させることができる角度が異なります。
モーター1(右手) の角度 0 ~ 180度
モーター2(右足) の角度 55 ~ 125度
モーター3(右足首)の角度 55 ~ 125度
モーター4(頭) の角度 0 ~ 180度
モーター5(左足首)の角度 55 ~ 125度
モーター6(左足) の角度 55 ~ 125度
モーター7(左手) の角度 0 ~ 180度
motor_time_ms・・・モーターの動作時間(速度、ミリ秒単位)
戻り値 unsigned int型(0:成功、0以外:処理失敗)

 

7つのモーターの角度と動作時間を設定する

インターフェース unsigned int qumcomm_motor_angle_multi_time(HQUMCOMM handle
, int pos1, int pos2, int pos3, int pos4, int pos5, int pos6, int pos7, int motor_time);
機能 モーター動作時間(速度)を指定して、
全モーター(7つ)の角度をセットする
【注意】この関数だけではモーターは動きません。
動かすには’motor_start’関数をコールしてください
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
pos1・・・モーター1(右手) の角度( 0 ~ 180度)
pos2・・・モーター2(右足) の角度(55 ~ 125度)
pos3・・・モーター3(右足首)の角度(55 ~ 125度)
pos4・・・モーター4(頭) の角度( 0 ~ 180度)
pos5・・・モーター5(左足首)の角度(55 ~ 125度)
pos6・・・モーター6(左足) の角度(55 ~ 125度)
pos7・・・モーター7(左手) の角度( 0 ~ 180度)
motor_time_ms・・・モーターの動作時間(速度、ミリ秒単位)
戻り値 unsigned int型(0:成功、0以外:処理失敗)

 

モーターを動かす

インターフェース unsigned int qumcomm_motor_start(HQUMCOMM handle);
機能 モーターを指定した角度(絶対位置)に移動させる
当関数を呼び出すまでにセットした角度にモーターを動かします
引数 handle・・・ハンドル(qumcomm_connectで取得した値)
戻り値 unsigned int型(0:成功、0以外:処理失敗)