2016a/Member 目次
今回の課題はロボットで似顔絵を描くことです。
・ひとりにつき一つのプログラム
・ペン以外はキットの部品を使い、輪ゴムの扱いに十分注意する
今回似顔絵ロボットを作成するために製作したロボットの説明をします。
3つのモーターを用いてロボットの前後運動、右回り、左回り、ペンの上下運動を行います。
線を描き始める位置の真上にペンが来るようにRISを移動させる
↓
ペンを下ろす
↓
線を描き終える位置にRISを移動させる
↓
ペンを上げる
この一連の動作を繰り返します。
似顔絵を描く上で必要となる動作の説明をします。
RIS本体の真横につけられたモーターにギアをかませ、左右それぞれ2つずつのタイヤを回す四輪駆動タイプです。
RIS本体の後ろ部分につけられたモーターにタイヤ二つをそれぞれ逆方向に回転するように取り付けました。
ひとつはギアをかませ、もうひとつは白い輪ゴムとつなげ回転させました。二つの黄色いタイヤとブロックを用いてペンを支えました。
問題点 ロボットの重心が大分後ろに偏ったことで、ロボットが方向転換するたびにロボットの前輪が少し浮いてしまい、線の書き始めがずれてしまいました。
解決策 ロボットの前方を重くすること、あるいはロボットの後方を軽くすれば改善するとはず。
それぞれの線につけた番号とプログラムに記した番号を対応させてあります。
#define TUNE_RIGHT(t);OnFwd(OUT_A);Wait(t);Off(OUT_A); #define TUNE_LEFT(t);OnFwd(OUT_C);Wait(t);Off(OUT_C); #define COME_BACK(t);OnRev(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C); #define UP(t);OnRev(OUT_B);Wait(t);Off(OUT_B); #define DOWN(t);OnFwd(OUT_B);Wait(t);Off(OUT_B);
task main () { DOWN(50); GO_FORWARD(65); // 輪郭1 UP(25); COME_BACK(76); TURN_LEFT(79); GO_FORWARD(40); DOWN(50); GO_FORWARD(40); // 輪郭2 UP(25); COME_BACK(76); TURN_LEFT(79); GO_FORWARD(40); DOWN(50); GO_FORWARD(27); // 輪郭3 UP(25); COME_BACK(76); TURN_LEFT(79); GO_FORWARD(40); DOWN(50); GO_FORWARD(40); // 輪郭4 UP(25); COME_BACK(76); TURN_LEFT(79); GO_FORWARD(40); DOWN(50); GO_FORWARD(65); // 輪郭5 UP(25); COME_BACK(130); TURN_LEFT(165); GO_FORWARD(25); DOWN(50); GO_FORWARD(25); // 左目1 UP(25); GO_FORWARD(15); DOWN(50); GO_FORWARD(25); // 右目1 UP(25); COME_BACK(164); TU_FORWARD(15); // 右目2 UP(25); GO_FORWARD(30); DOWN(50); GO_FORWARD(10); // 口4 UP(25); COME_BACK(120); TURN_LEFT(165); GO_FORWARD(15); DOWN(50); GO_FORWARD(22); // 口1 UP(25); COME_BACK(112); TURN_LEFT(165); DOWN(50); GO_FORWARD(10); // 口2 UP(25); GO_FORWARD(30); DOWN(50); GO_FORWARD(15); // 左目4 UP(25); COME_BACK(160); TURN_LEFT(165); GO_FORWARD(15); DOWN(50); GO_ FORWARD(22); // 口3 UP(25); COME_BACK(70); TURN_RIGHT(152); GO_FORWARD(45); DOWN(50); GO_FORWARD(35); // 髪1 UP(25); COME_BACK(76); TURN_RIGHT(70); GO_FORWARD(35); DOWN(50); GO_FORWARD(35); // 髪2 UP(25); COME_BACK(76); TURN_RIGHT(67); GO_FORWARD(35); DOWN(50); GO_FORWARD(40); // 髪3 UP(25); COME_BACK(76); TURN_RIGHT(67); GO_FORWARD(50); DOWN(50); GO_FORWARD(35); // 髪4 UP(25); COME_BACK(76); TURN_RIGHT(65); GO_FORWARD(35); DOWN(50); GO_FORWARD(35); // 髪5 UP(25); COME_BACK(76); TURN_RIGHT(60); GO_FORWARD(35); DOWN(60); GO_FORWARD(35); // 髪6 UP(25); COME_BACK(100); TURN_RIGHT(120); GO_FORWARD(30); DOWN(60); GO_FORWARD(108);//前髪
完成
下書き
完成作品
私はプログラムを打ち込むという経験が一度もなく、作業が思うように進まずに遅れが出てしまうこともありました。ですが、ペアの大石君と協力しプログラムを作り上げロボットが似顔絵を描き始めたときは、思わず声を上げて喜んでしまいました。次からの課題もしっかりこなしていき、自分たちの力を最終試験で発揮できるようにしていきたいと思います。