■KCB-1でKHR-1を動かす方法(2)
前回の続きです。
このプログラムでは2バイトコントロールコード再生のプログラムを、RCB-1対応に変更をしています。2バイトコントロールコード再生は、KCB-1からKRCと同じ再生コマンドをRCB-1へ送信し、モーションを再生する方法です。モーションを再生するには、モーションを各ボタンに割り付ける必要があります。
なお、コントロールコード再生を行う際は、更新プログラム「KCB1Update20080510.exe」をダウンロードする必要があります。詳しくは「KCB-1 SDK更新(Rev.20080510)」をご覧ください。
・ プログラム
#include <rcb3.h>
#include <led.h>
// プログラム中で実行するモーションをHTHで割付してください
#define FORWARD BTN2B_LU // 前進
#define LEFTSTEP BTN2B_LL // 左サイドステップ
#define RIGHTSTEP BTN2B_LR // 右サイドステップ
#define LEFTTURN BTN2B_LL | BTN2B_LD // 左ターン
#define RIGHTTURN BTN2B_LR | BTN2B_LD // 右ターン
#define BOW BTN2B_RU // あいさつ
#define NP_WA 1200000 //停止後の待機時間(前に再生したモーションとかぶらないために余裕を持って設定する)
void khr_2Bmotion(int cc) //2BYTEcodeモーション再生関数
{
rcb3_put_2Bcode (cc); //2BYTEcodeでモーション再生
while (ad_read(1) > 500) {} //モーションが終了するまで待つ
rcb3_put_2Bcode (BTN2B_NP); //モーション終了後ニュートラルを送信
}
void main(void)
{
}
・解説
▼変更点①
通常の2バイトコントロールコード再生のプログラムと違うところは、モーションを再生していないときに、常にニュートラル信号を送信していることです。これは、通常、KRCの電源を入れて何も操作していない場合に、KRCからはニュートラル信号が送信されているためです。
▼変更点②
1)コントロールコード再生
2)再生終了待ち
3)ニュートラル送信
4)ニュートラル状態に戻るまで待つ
以上の④項目を今回はkhr_2Bmotionという関数にまとめました。




