#contents *課題 [#h0b79946] 書道ロボットの製作し、7画以上の漢字を書く。詳しくは [[課題1のページ>http://yakushi.shinshu-u.ac.jp/robotics/?2015a%2FMission1]] を参照。 私は涼という漢字を書くことにした。 *ロボット本体の説明 [#bd9a3611] **ロボットの外観 [#z75277cb] 上から見た写真 #ref(edo_ue.jpg) またこのロボットは役割ごとに下の写真のように4つに分解できる それぞれのパーツについて説明をしていく。 *プログラムの説明 [#e7dae3ec] **使用したプログラム [#x752e646] sub syoki() //初期位置(左上)にペンを持って行きつつ、モーターのパワーの設定 { SetPower(OUT_A,1); SetPower(OUT_B,3); SetPower(OUT_C,3); OnRev(OUT_A); Wait(5); Off(OUT_A); OnFwd(OUT_B); OnRev(OUT_C); Wait(100); Off(OUT_BC); } void migisita (int t) //ペンを右下に45度t秒動かす { OnFwd(OUT_C); OnRev(OUT_B); Wait(t); Off(OUT_BC); } void hidarisita(int t) //ペンを左下に45度t秒動かす { OnRev(OUT_BC); Wait(t); Off(OUT_BC); } void sita(int t) //ペンを下にt秒動かす { OnRev(OUT_B); Wait(t); Off(OUT_B); } void ue(int t) //ペンを上にt秒動かす { OnFwd(OUT_B); Wait(t); Off(OUT_B); } void migi (int t) //ペンを右にt秒動かす { OnFwd(OUT_C); Wait (t); Off (OUT_C); } void hidari (int t) //ペンを左にt秒動かす { OnRev(OUT_C); Wait (t); Off (OUT_C); } void migiue (int t) //ペンを右上に45度t秒動かす { OnFwd(OUT_BC); Wait(t); Off(OUT_BC); } void hidariue (int t) //ペンを左上に45度t秒動かす { OnRev(OUT_C); OnFwd(OUT_B); Wait(t); Off(OUT_BC); } #define kakidasi OnFwd(OUT_A);Wait(10); //ペンを紙につけたままにする #define kakiyame OnRev(OUT_A);Wait(5);Off(OUT_A); //ペンを紙から離す task main() { syoki (); migi (5); //氵の書き始めの位置にペンを移動 sita (10); kakidasi; //氵1画目 migisita(10); kakiyame; hidari (15); //氵の2画目にペンを移動 kakidasi; //氵2画目 migisita(10); kakiyame; hidari (15); //氵の3画目にペンを移動 sita (20); kakidasi; //氵3画目 migiue (10); kakiyame; syoki (); //亠の書き始めの位置にペンを移動 migi (30); kakidasi; //亠を一気に書く sita (10); migi (15); hidari (30); kakiyame; sita (5); //口の書き初めの位置にペンを移動 kakidasi; //口を一気に書く sita (15); migi (30); ue (15); hidari (30); kakiyame; migi (15); //小の書き始めの位置にペンを移動 sita (15); kakidasi; //小1画目 sita (20); kakiyame; ue (15); //小の2画目の位置にペンを移動 hidari (10); kakidasi; //小2画目 hidarisita (15); kakiyame; //小の3画目の位置にペンを移動 migi (25); ue (15); kakidasi; //小3画目 migisita (15); kakiyame; }