[[2006a/MemberOnly/進行状況C]] *『木』を書くプログラム [#b0e29fc3] 1 前回のものを実際に本体を使って試運転した結果、しっかりと動けてなかったので改良したものです。数値の調整は必要。 #define pen_down OnFwd(OUT_B);Wait(100); //ペンを下げる #define pen_up OnRev(OUT_B);Wait(100); //ペンを上げる #define turn1 OnFwd(OUT_A);OnRev(OUT_C);Wait(85); //右旋回1 #define turn2 OnFwd(OUT_A);OnRev(OUT_C);Wait(40); //右旋回2 #define turn3 OnRev(OUT_A);OnFwd(OUT_C);Wait(70); //左旋回 #define OUT1 Off(OUT_A+OUT_C); Wait(10); //タイヤのモーターを止める #define OUT2 Off(OUT_B);Wait(10); //ペンのモーターを止める task main() { pen_down; OUT2; OnFwd(OUT_A+OUT_C); Wait(150); OUT1; pen_up; OUT2; //一画目 OnRev(OUT_A+OUT_C); Wait(190); OUT1; turn1; OnRev(OUT_A+OUT_C); Wait(50); OUT1; //二画目の始まりまで移動 pen_down; OUT2; OnFwd(OUT_A+OUT_C); Wait(200); OUT1; pen_up; OUT2; //二画目 OnRev(OUT_A+OUT_C); Wait(215); OUT1; turn2; OUT1; OnFwd(OUT_A+OUT_C); Wait(30); OUT1; //三画目の始まりまで移動(後退・旋回) pen_down; OUT2; OnFwd(OUT_A+OUT_C); Wait(150); OUT1; pen_up; OUT2; //三画目 OnRev(OUT_A+OUT_C); Wait(165); OUT1; turn3; OUT1; OnFwd(OUT_A+OUT_C); Wait(111); OUT1; //四画目の始まりまで移動(後退・旋回) pen_down; OUT2; OnFwd(OUT_A+OUT_C); Wait(150); OUT1; pen_up; //四画目 Off(OUT_A+OUT_B+OUT_C); } *課題と反省 [#wc1aeb98] 上に書いたプログラムでほぼ完全に動きます。しかし、紙が曲がっていたりでこぼこしていたりすると三画目、四画目が合わなくなってしまいます。今まで新聞紙の上に書いて成功した確率は20%程度なので課題は成功する確率を100%に上げることです。 字を書く仕組みはロボット自体を動かして書くというものだったのでペンの方を動かす仕組みにしていればよかったと思いました。また、実際に字を書かせてみたら字が少しグニャグニャになってしまったので、ペンを持たせる部分をもう少ししっかりさせておけばよかったと思いました。