2016a/Member/Junnko/Mission1目次
ロボット本体の説明を主にペンのとことを中心として説明します。
なるべく少ない部品で収まるようにコンパクトにしました。
ペンは2つのタイヤで挟み、片方のタイヤをゴムを使ってモーターを使って動かしました。 回転の方向によってペンが上下する仕組みです。 はじめはゴムを1本使っていましたが、タイヤがペンと滑って空回りすることが多かったので、 2本にしてみたらうまくペンがスムーズに上げ下げできるようになりました。
#define Ageru OnRev(OUT_B); Wait(20); Off(OUT_B); #define Sageru OnFwd(OUT_B); Wait(20); Off(OUT_B); #define Mawaru1(t) OnFwd(OUT_C); OnRev(OUT_A); Wait(t); Off(OUT_AC); #define Go_f(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC); #define Go_r(t) OnRev(OUT_AC); Wait(t); Off(OUT_AC); #define Mawaru2(t) OnFwd(OUT_A); OnRev(OUT_C); Wait(t); Off(OUT_AC); task main () { Mawaru1(250); //輪郭の下半分 Ageru; Go_f(100); Mawaru1(100); Go_r(100); Sageru; Go_f(100); //輪郭の右 Ageru; Go_f(100); Mawaru1(50); Go_r(100); Sageru; Go_f(50); //前髪の右 Ageru; Go_f(100); Mawaru1(50); Go_r(100); Sageru; Go_f(100); //前髪の左 Ageru; Go_f(50); Mawaru1(30); Go_r(50); Sageru; Go_f(100); //輪郭の左 Ageru; Go_f(30); Mawaru2(30); Go_r(30); Sageru; Go_f(50); //髪の左下1 Ageru; Go_f(30); Mawaru2(50); Go_r(30); Sageru; Go_f(30); //髪の左下2 Ageru; Go_f(30); Mawaru1(30); Go_r(30); Sageru; Mawaru2(250); //髪の上 Ageru; Go_f(30); Mawaru2(100); Go_r(30); Sageru; Go_f(30); //髪の右下1 Ageru; Go_f(30); Mawaru2(80); Go_r(30); Sageru; Go_f(30); //髪の右下2 Ageru; Go_f(80); Mawaru2(30); Sageru; Go_f(30); //右目 Ageru; Mawaru1(80); Go_f(30); Mawaru1(80); Go_r(60); Sageru; Go_f(30); //左目 Ageru; Go_f(50); Mawaru1(80); Sageru; Go_f(30); //口 Ageru; Go_r(15); Mawaru1(80); Sageru; Go_f(20); //鼻 }
このプログラムでかけた似顔絵はこれです。
ペンを上げ下げするところがゴムの引っ張る力によって傾いてしまっていたので、 そこを並行するためにいろいろは方法を試すのが大変でした。 また、自分が書いたペンの終わりの部分と次に書き始めるところのスタートを合わせるのが難しく、 私は計算せずに一つ一つ合わせていきました。 電池の減り具合によってリスの進む速度が変わったりしたので毎回調節するのは大変でした。 でも、少しずつ出来上がっていくのをみて自分のプログラムがちゃんと形として現れているのが分かってとっても嬉しかったです。