今回の課題は、ロボットアームを自動仕分け機に改造することです。
前回では、ボタン操作によって、白ブロック、青ブロックを所定の位置に
動かすプログラミングを行いました。
「白色ブロックを台の上に置いたとき、ロボットアームがそれを判別し、白色の台の場所へ
つかんで移動させる・・・」
「青色ブロックを台の上に置いたとき、ロボットアームがそれを判別し、青色の台の場所へ
つかんで移動させる・・・」
このように、ロボットアームが動けば成功です。
今回使うロボットアームの改造を、前回やっておきましたので、今回は
プログラミングだけに集中できます。
が、初めて出てくる用語(●●関数をコールするなど)が難しいようでしたので、
事前に少々解説。。。 それでも??? の様子でした。
まずは、私が作成したロボットを使い、一つ一つのロボットの動きとの関連性を、質問しながら
進めていきました。
① まずは、基本姿勢では、サーボモータはそれぞれの角度を何度にすればいいのか?
② ブロックを置いた・・・
③ すぐアームを動かしていいのか?
④ ブロックを置いた状態で、センサー(赤外線フォトリフレクタ)が読み取る数字は?
⑤ その数字によって 青ブロックをつかむ動作、白ブロックをつかむ動作が発生。その数字は?
(テストモードで検証)
⑥ ブロックをつかむ動作は、3つあるサーボモータのどれをどの角度にするといいのか?
⑦ つかんだあとは、どのサーボモータを使い、何度の角度にすると持ち上げる動作になるのか?
⑧ 持ち上げた後、どのサーボモータを使って、何度の角度にして・・・
・
・
・
このように、一連の動作を、手動でロボットアームを動かしながら、質問しながら、説明です。
動きは理解したようですが、
プログラミングの中で出てくる用語が、難しい・・・「●●関数をコール」
メインプログラムの中に入れて、プログラミングをすっきりした形に整える手法なんですが。。。
(これから先にも、まだまだ同じようなものが出てくるでしょうから、
その都度やっていけば自然と身につくと思っています。)
テキストを見ながら、そして私の教えを求めながら、なんとかプログラミングを終えました。
※ロボットは以下の動画でご覧になれます。
初めは、青ブロックを置いたとき、、白の場所に動いたり、白ブロックを置いたとき、
青の場所に動いたりと、誤作動していました。それぞれ若干の修正を加えることで、
とりあえず、うまく判別するロボットアームを2人とも作ることができました。
次回(3月)は「犬型歩行ロボ」の研究です。