前回に続けてプログラムの続きを説明します。
■データ解析とコマンド実行
ird[0]~[10]に赤外線受信データが読み込まれました。このデータをケータイ・リモコンのキーと照らし合わせて、プチロボのモーションを実行できるようにします。
有効なのはird[6]、[7]、[8]ビットです。3ビットなので、7通りのコマンドが実行可能ですが、実際の操縦を考えて、下のように割り当てました。
| 携帯電話キー | リモコン動作/ird[] | ird[ ] | プチロボXコマンド | ||
| 6 | 7 | 8 | |||
| 2 | チャネル"+" | 0 | 1 | 0 | 前進 |
| 8 | チャネル"-" | 1 | 1 | 0 | 後退 |
| 4 | 音量"-" | 0 | 0 | 1 | 左 |
| 6 | 音量"+" | 1 | 0 | 1 | 右 |
| 1 | "電源" | 0 | 0 | 0 | ホーム・ポジション |
以上の定義を元にして制作したのが、データ解析とコマンド実行ルーチンです。
//携帯リモコン・ビット解析、コマンド実行
if(ird[6]==0 && ird[7]==1 && ird[8]==0){//"2" or チャネル"+"
command=FW_F;//前進:
}
else if(ird[6]==1 && ird[7]==1 && ird[8]==0){//"8" or チャネル"-"
command=B;//後退:
}
else if(ird[6]==0 && ird[7]==0 && ird[8]==1){//"4" or 音量"-"
command=L;//左:
}
else if(ird[6]==1 && ird[7]==0 && ird[8]==1){//"6" or 音量"+"
command=R;//右:
}
else if(ird[6]==0 && ird[7]==0 && ird[8]==0){//"1" or "電源"
command=0;//ホームポジション:
}
//ホーム・ポジション設定処理省略
■コマンド実行
データ解析とコマンド実行ルーチンにより、実際に実行されるプチロボXのモーション実行関数をここに記述します。
//プチロボ動作コマンド実行
switch(command){
case FW_F://th Hi
forward_f(1);
break;
case B://th low
back();
break;
case R://right
r_turn();
break;
case L://左
l_turn();
break;
case FW2://el down
forward_f(5);
break;
case B2://el up
back();
break;
case R2://rd right
right();
break;
case L2://rd left
left();
break;
case NOOP:break; //ノーオペレーション
default://ホーム・ポジション
home();
break;
}
}//while()
}//main()
■ダウンロード
プチロボX赤外線モーションコントローラ用C言語ソース・ファイルおよびHEXファイルは【28K08005probo_keitai.lzh】よりダウンロードできます。
以上でファームウエアの制作は終わりです。次回で、プチロボX操縦計画は完了します。
長野県飯田工業高校 竹内浩一
