担当:藤城
taskmain() {
OnFwd(OUT_A+OUT_C); // AとCのモーターを正回転 Wait(20); // Float(OUT_A); // Aのモーターを滑らかに停止 Wait(70); // ハートの右上のカーブを描く OnFwd(OUT_A); // Cを再び正回転させて直進 Wait(80); // OnRev(OUT_C); // Cのモーターを逆回転 Wait(50); // その場で回転してハートの先端を描く OnFwd(OUT_A); // Aを再び正回転させ直進 Wait(80); // Float(OUT_C); // Cのモーターを滑らかに停止 Wait(70); // OnFwd(OUT_C); // 再びCのモーターを正回転させて直進 Wait(20); // 最後の微調整 Flat(OUT_A+OUT_C); // AとCのモーターが滑らかに停止
}
感想:ハートの滑らかさを出すためにFloatを使ったが、かえって誤差を大きくしてしまう結果になって残念。毎回違うハートを描く事に。
task main()
{ SetPower(OUT_A,7); SetPower(OUT_C,0); OnFwd(OUT_A); repeat(25) { OnFwd(OUT_C); Wait(3); Off(OUT_C); Wait(3); } Off(OUT_A+OUT_C); Wait(10); SetPower(OUT_A,1); SetPower(OUT_C,3); OnFwd(OUT_A+OUT_C); Wait(20); SetPower(OUT_A,2); Wait(20); SetPower(OUT_A,3); Wait(20); SetPower(OUT_A,4); Wait(20); SetPower(OUT_A,5); Wait(20); SetPower(OUT_C,0); SetPower(OUT_A,6); Wait(40); Off(OUT_A+OUT_C); SetPower(OUT_A,6); SetPower(OUT_C,7); OnFwd(OUT_A); OnRev(OUT_C); Wait(50); Off(OUT_A+OUT_C); Wait(10); SetPower(OUT_C,0); SetPower(OUT_A,6); OnFwd(OUT_A+OUT_C); Wait(50); SetPower(OUT_A,5); SetPower(OUT_C,3); Wait(20); SetPower(OUT_A,4); Wait(20); SetPower(OUT_A,3); Wait(20); SetPower(OUT_A,2); Wait(20); SetPower(OUT_A,1); Wait(20); Off(OUT_A+OUT_C); SetPower(OUT_A,7); SetPower(OUT_C,0); OnFwd(OUT_A); repeat(25) { OnFwd(OUT_C); Wait(3); Off(OUT_C); Wait(3); } Off(OUT_A+OUT_C); }
試験運転は絨毯上、本番は木板上で実施したためタイヤの摩擦が変わり、 waitの数値にずれが発生した。 当時はなかなか原因に気づかず、試行錯誤を繰り返した。