書道ロボットを製作する。 自分の名前の七画以上の文字を一つ書く。
前に進むと書きにくかったので、すべて後ろに進んで書くようにした。
文字を書く際にロボット全体が動いて書くところまで行くようにした。
自分たちの班はアームを本体の横につけてペンを上下に動かすようにした。
ほかの方法として、ペンを本体の前の中心につけてそれを垂直に下ろす動かし方もあるが、製作の難易度から、グループ内で話し合って、横につけることにした。
また、字を滑らかに書くために先の柔らかい筆ペンを使った。
#define go_forward(s,t) OnFwd(OUT_AC,s); Wait(t); // 直進 #define go_back(s,t) OnRev(OUT_AC,s); Wait(t); // 後退 #define s 60 #define down OnFwd(OUT_B,40); Wait(100); Off(OUT_B); // アーム 下ろす #define up OnRev(OUT_B,40); Wait(100); Off(OUT_B); // アーム 上げる task main() { down; // 草冠 始まり go_back(s,800); up; go_forward(s,400); Off(OUT_AC); OnFwd(OUT_A,70); OnRev(OUT_C,10); Wait(100); Off(OUT_AC); down; OnFwd(OUT_C,90); OnRev(OUT_A,10); Wait(200); Off(OUT_AC); up; OnFwd(OUT_A,90); OnRev(OUT_C,10); Wait(100); Off(OUT_AC); go_forward(s,300); Off(OUT_AC); OnFwd(OUT_A,70); OnRev(OUT_C,10); Wait(100); Off(OUT_AC); down; OnFwd(OUT_C,90); OnRev(OUT_A,10); Wait(200); Off(OUT_AC); up; OnFwd(OUT_A,90); OnRev(OUT_C,10); Wait(100); Off(OUT_AC); // 草冠 終了 OnFwd(OUT_A,90); // 月 始まり OnRev(OUT_C,10); Wait(500); Off(OUT_AC); go_back(s,100); Off(OUT_AC); down; go_back(s,750); Off(OUT_AC); up; go_forward(s,500); Off(OUT_AC); OnFwd(OUT_C,100); OnRev(OUT_A,10); Wait(500); Off(OUT_AC); go_back(s,400); Off(OUT_AC); down; go_back(s,400); Off(OUT_AC); up; go_forward(s,400); Off(OUT_AC); OnFwd(OUT_C,100); OnRev(OUT_A,10); Wait(500); Off(OUT_AC); go_back(s,100); Off(OUT_AC); go_back(s,400); Off(OUT_AC); down; go_back(s,700); Off(OUT_AC); up; // 月 途中 go_forward(s,800); OnFwd(OUT_C,100); OnRev(OUT_A,10); Wait(500); Off(OUT_AC); go_back(s,500); Off(OUT_AC); down; go_back(s,300); Off(OUT_AC); up; // 一本目 OnFwd(OUT_A,100); OnRev(OUT_C,10); Wait(300); OnFwd(OUT_C,100); OnRev(OUT_A,10); Wait(300); Off(OUT_AC); go_back(s,200); Off(OUT_AC); down; go_back(s,300); Off(OUT_AC); up; // 月 終わり go_forward(s,1000); Off(OUT_AC); down; go_back(s,500); Off(OUT_AC); up; // 一本目 OnFwd(OUT_C,60); OnFwd(OUT_A,10); Wait(500); OnFwd(OUT_A,100); OnRev(OUT_C,10); Wait(300); Off(OUT_AC); down; go_back(s,500); Off(OUT_AC); up; // 二本目 OnFwd(OUT_A,70); OnFwd(OUT_C,20); Wait(400); Off(OUT_AC); down; OnRev(OUT_A,60); OnRev(OUT_C,20); Wait(700); up; // 一本目 Off(OUT_AC); go_forward(s,1400); Off(OUT_AC); OnRev(OUT_A,70); OnRev(OUT_C,20); Wait(400); Off(OUT_AC); down; OnRev(OUT_A,70); OnRev(OUT_C,20); Wait(500); Off(OUT_AC); up; // 二本目 go_forward(s,700); // 水 始まり Off(OUT_AC); down; go_back(s,500); Off(OUT_AC); up; OnFwd(OUT_A,70); OnFwd(OUT_C,20); Wait(600); Off(OUT_AC); go_back(s,500); Off(OUT_AC); down; go_back(s,400); Off(OUT_AC); up; go_forward(s,800); Off(OUT_AC); OnFwd(OUT_C,100); OnRev(OUT_A,100); Wait(300); Off(OUT_AC); go_forward(s,200); Off(OUT_AC); down; go_back(s,400); Off(OUT_AC); up; // 水終わり OnFwd(OUT_C,100); OnFwd(OUT_A,10); Wait(500); Off(OUT_AC); go_back(s,200); Off(OUT_AC); down; go_back(s,100); Off(OUT_AC); up; OnFwd(OUT_C,100); OnRev(OUT_A,100); Wait(100); Off(OUT_AC); down; go_back(s,100); Off(OUT_AC); up; Off(OUT_AC); // 終わり }
初め、草冠は上手くかけていたが何回も書いていくうちにどんどん書けなくなっていった。途中電池がなくなり、交換したところ書く時間が長くなってしまったので、すべての時間を短くし、速度も調整したが書けなくなってしまった。
初め、齊という文字を選んだが、上の部分が細かくロボットを文字を書く位置まで移動させることが難しかったため藤という文字にした。 スムーズに書くために書き順を工夫して書いたつもりだったが上手くいかなかった。また、細かいところは0.1秒変えるだけで曲がる角度が全然違くなってしまったので調節がなかなかうまくいかなかった。
電池の残り残量によって動き方が異なり、途中で電池がなくなり交換したことによって動き方がまったく違うものになってしまったので、すべての時間とスピードを変更しなければならなかったことには苦労した。
もう少し読めるように書けるようにする。
スムーズに文字を書けるように時間やスピードを調節したりする。
ペンの動かし方についてどう動かすのが一番字を書くのに最適かをグループのメンバーと話し合う。
約5時間(授業以外)
筆ペン 420円
単三電池 900円
A4紙(30枚) 15円
自分の名前の文字がすべて難しい漢字だったのでその中で一番簡単だった藤を選んだが予想以上に難しかった。もう少しグループで集まって話し合うことで、作業がスムーズにいったと思う。