&ref(2016a/Member/sommy/Mission/1465480996164.jpg,50%,ロボット) 前後左右の基本的な運動をする本体に、ペンを上下するためのモーターをアーム状に一つつけた。 ペンを固定するために細いタイヤのゴム部分を使用した。 ロボットの前部にモーター等を取り付けたためバランスが悪くなり、中心部分から離れた位置に ペンが固定されているため、ちょっとしたズレでも大きく影響するため、調整が困難である。
#define UP_TIME 200//ペンを持ち上げる時間 #define DOWN_TIME 200//ペンを降ろす時間 #define up Off(OUT_AC);OnRev(OUT_B,100);Wait(UP_TIME);Off(OUT_B);//ペンを上げる #define down Off(OUT_AC);OnFwd(OUT_B,100);Wait(DOWN_TIME);Off(OUT_B);//ペンを降ろす #define TURN_TIME 800 #define SPEED 50 #define turn_left Off(OUT_BC);OnFwd(OUT_A,SPEED);Wait(TURN_TIME);Off(OUT_A);//左に曲がる #define turn_right Off(OUT_AB);OnFwd(OUT_C,SPEED);Wait(TURN_TIME);Off(OUT_C);//右に曲がる #define go_forward(t,s);Off(OUT_B);OnFwd(OUT_AC,s);Wait(t);Off(OUT_AC);//前に進む #define turn_here(t,s);Off(OUT_B);OnFwd(OUT_A,s);OnRev(OUT_C,s);Wait(t);Off(OUT_AC);//その場で回転する #define go_back(t,s);Off(OUT_B);OnRev(OUT_AC,s);Wait(t);Off(OUT_AC);//後ろに下がる task main() { go_forward(1000,40); up; go_forward(1100,80); turn_here(900,60); go_back(1100,80); down; go_forward(1200,40); up; go_forward(1100,80); turn_here(200,60); go_back(1100,80); down; go_forward(800,40); up; go_forward(1100,80); turn_here(1000,60); go_back(1100,80); down; go_forward(800,40); up; go_forward(1100,80); turn_here(400,60); go_back(1100,80); down; go_forward(1300,40); up; go_forward(1800,40); turn_here(850,60); go_back(1100,80); down; go_forward(450,40); up; go_forward(100,40); down; go_forward(450,40); up; turn_here(600,60); down; turn_here(600,30); up; Off(OUT_ABC); }
「その場で回る」とは、左右の車輪を同時に同じ出力で逆方向に回すことで、 ロボットの位置を変えずに向きのみを変える動きを指す。
このプログラムでは、 1、輪郭を描く 2、直線で両目を描く 3、曲線で口 の順に動くことになっている。
写真を取り忘れたため、画像は無いが、簡潔に言って失敗だった。 将棋の駒を逆さまにしたような輪郭に糸目の笑っている顔を完成形としていたが、 実際にはかなり縦に細長い輪郭になってしまい、目と口がはみ出てしまった。 修正を繰り返したもののその度に悪化し、最終的にはお世辞にも顔とは呼べないようなものを 描いてしまった。 今回作ったロボットは上にも書いた通り調整が難しい上にバランスが悪いものになってしまい、 似顔絵を描くことに適しているとはいえないものだった。 他の班のロボットを見て、もっとパーツを上手く組み合わせてより使いやすいロボットを 組み立てられるように学んでいきたいと思う。