基本的な構造は最初に作ったロボットをもとに製作しました。
しかし、最初のロボットの構造ではnxt本体の位置が悪く重心が傾いており、曲がるときに転倒もしくはまっすぐ走れないなど致命的な欠点がありました。
またペンの持たせ方が悪く筆圧が安定せず点線のようになってしまいました。
次は趣向を変え、過去の先輩のロボットを参考にしてみましたが構造が複雑になってしまい、かなり貧弱になってしまいました。
重心は安定しておりまっすぐ走れるようになりましたが、またも筆圧が安定せず線が描けない問題が発生しました。
ぺアの人と話し合った結果できるだけ単純かつモーターの出力に負けない最低限の頑丈さが必要ということになり説明書の作り方を参考にし、写真のようになりました。
前回の失敗を考慮しnxt本体の位置を中心に持ってき、重心を安定させました。
またキャスターが安定するように余った歯車等で固定しました。
タイヤによる摩擦を少なくするために全体的に軽量化を施し無駄なもの、最低限の強化以外は省きました。
アームは筆圧が安定するようにボディの下に潜り込ませるようにし、ペン先の摩擦の影響を受けにくくしました。その際、潜り込みすぎないようにストッパーを取り付けました。
ペンを水性ペンにすることにより摩擦の軽減に成功しました。
#define age OnRev(OUT_C,30); Wait(0300); Off(OUT_B); Wait(1000);//ペンを上げる
#define sage OnFwd(OUT_C,50); Wait(0200); Off(OUT_B); Wait(1000);//ペンを下げる
#define go OnFwd(OUT_A,40);OnFwd(OUT_B,40);
#define turn_left OnFwd(OUT_A,75);OnRev(OUT_B,75);Wait(0250);
task main () {
//左目 age;//ペンを上げる go;//前身 Wait(0210); Float(OUT_AB); Wait(2000); sage;//ペンを下げる go;//前身 Wait(0340); Float(OUT_AB); Wait(2000);
//右目 age; go; Wait(0200); Off(OUT_AB); Wait(2000);
sage; go; Wait(0340); Float(OUT_AB); Wait(2000);
age; go; Wait(1450); Float(OUT_AB); Wait(2000);
//口を書くため移動 OnFwd(OUT_B,50); OnRev(OUT_A,30); Wait(1100); Off(OUT_AB); Wait(1000);
go; Wait(0230); Float(OUT_AB); Wait(2000);
OnFwd(OUT_B,50); OnRev(OUT_A,30); Wait(1100); Off(OUT_AB); Wait(1000);
//口 age; go; Wait(1400); Float(OUT_AB); Wait(2000);
sage; go; Wait(0600); Float(OUT_AB); Wait(2000);
age; go; Wait(1500); Float(OUT_AB); Wait(2000);
//輪郭を左から書く OnFwd(OUT_A,30); OnRev(OUT_B,50); Wait(1185); Off(OUT_AB); Wait(1000);
go; Wait(0500); Float(OUT_AB); Wait(2000); OnFwd(OUT_A,50); OnRev(OUT_B,30); Wait(1185); Off(OUT_AB); Wait(1000);
go; Wait(0300); Float(OUT_AB); Wait(2000);
OnFwd(OUT_A,50); OnRev(OUT_B,30); Wait(1200); Off(OUT_AB); Wait(1000);
go; Wait(0600); Float(OUT_AB); Wait(2000); //左顔の線 sage; go; Wait(11500); Float(OUT_AB); Wait(2000); //頭部 OnFwd(OUT_A,100); OnFwd(OUT_B,10); Wait(1850); Off(OUT_AB);
//右顔の線 go; Wait(1150); Float(OUT_AB); Wait(2000);
//顎 OnFwd(OUT_A,100); OnFwd(OUT_B,10); Wait(1850); Off(OUT_AB);
}