プログラムの流れ
クムクムロボットが前に一歩ずつ進み、目の前(20㎝以内)に障害物が確認出来た時は体を左に向けるように足を出します。
障害物が確認できなくなるまで体を左に向けるように足を出し、また障害物が確認できるまで前に一歩ずつ進みます。
完成したプログラム
※Qumcum(HOME3.0 BASIC)での作成
それぞれの定義プログラム詳細
それぞれの定義プログラムの説明
「各モーターの初期化」
クムクムロボットもモーターをすべて元の位置に戻します。
「障害物確認」
目の前に障害物があるかどうかを確認します。
このブロックは1回だけの実行では正確な判断が出来ない場合があるので、今回は3回実行しています。
「右足で前に一歩」
右足を上げて、右足を前に出して、右足をおろす という一連の流れを繋げたものです。
「左足で前に一歩」
左足を上げて、左足を前に出して、左足をおろす という一連の流れを繋げたものです。
「左に一歩」
体を少しずつ左に向ける一連の流れを繋げたものです。
プログラムのポイント
今回のプログラムでは一歩進む度に目の前に障害物があるかどうかを確認しています。
そして反応が20㎝以内だった場合は体の向きを変えます。
「もし~なら」を使って条件が満たされている場合は体の向きを変えるプログラムが実行されます。
歩き終わった状態のモーターの向きではうまく動かないので、体の向きを変える時はまずモーターを初期化します。
向きを変える為に一歩進んだ後に再度障害物が無いかを確認し、20㎝以内に障害物が反応しなくなる向きまで繰り返します。
左足で一歩進んだ際も同じように障害物の確認と、確認できた時の動作を付け加えると今回のプログラムは完成です。
プログラムの拡張
もしこのプログラムに新たな動作を追加する時はどうすればいいでしょうか。
例えば、障害物を確認したときに「障害物を発見しました。」と喋らせてから向きを変えたり、確認した距離によってそれぞれのLEDを光らせたり。
他にも腕や顔を動かしたりさせるのもおもしろいですね。
色々な動作を追加してまるでクムクムロボット自らの意思で進んでいるかのようなプログラムを作ってみてください。
コメント