[[2019a/Member]]

私たちのペアは静岡県の富士という地名をを題材にした.
比較的縦と横が直角な漢字であるので,ロボットの機能はペンを上げ下げするというシンプルな設定にし,動き回るタイプのロボットを制作した.ペンの上げ下げは一つのモーターに対して二つの小さいタイヤが等速逆回転かつ,幅がペンがぴったりはまるような狭さにした.書き方は書き順にある程度従っていたが,口,田の四角は一周するように書いた.
プログラミングに関しては,まず上で述べたように直角に曲がることがほとんどなので,defineを用いて右,左への90度回転を簡略化した.ペンの上げ下げは,常に同じだと思い,時間も等しく設定したが,ペンが少し傾くことも考慮して下げの時間の方を少し長くすべきであったことは反省点である.この動作は多数行うため,これもdefineで簡略した.
以降がプログラミング内容である.



 #define turn_right OnFwd(OUT_A);OnRev(OUT_C);Wait(88);
 #define turn_left OnFwd(OUT_C);OnRev(OUT_A);Wait(88);
 #define go_straight OnFwd(OUT_AC);
 #define back OnRev(OUT_AC);
 #define down OnFwd(OUT_B);Wait(20);Off(OUT_B);
 #define up OnRev(OUT_B);Wait(20);Off(OUT_B);
 #define freez Off(OUT_AC);Wait(30)
 task main()
 {
    go_straight;Wait(15);
    freez;
    up;
    turn_right;
    go_straight;Wait(35);
    turn_left;
    freez;
    down;
    go_straight;Wait(15);
    freez;
    up;
    go_straight;Wait(53);
    turn_left;
    back;Wait(68);
    freez;
    down;
    go_straight;Wait(70);
    freez;
    up;
    go_straight;Wait(68);
    turn_right;
    back;Wait(68);
    freez;
    down;
    go_straight;Wait(15);
    freez;
    up;
    go_straight;Wait(70);
    turn_right;
    back;Wait(48);
    freez;
    down;
    go_straight;Wait(35);
    freez;
    up;
    go_straight;Wait(68);
    turn_left;
    back;Wait(54);
    freez;
    down;
    go_straight;Wait(15);
    freez;
    up;
    go_straight;Wait(68);
    turn_left;
    back;Wait(68);
    freez;
    down;
    go_straight;Wait(35);
    freez;
    up;
    go_straight;Wait(68);
    turn_left;
    back;Wait(68);
    freez;
    down;
    go_straight;Wait(15);
    freez;
    up;
    go_straight;Wait(68);
    turn_left;
    back;Wait(68);
    freez;
    down;
    go_straight;Wait(35);
    freez;
    up;
    go_straight;Wait(86);
    turn_left;
    back;Wait(44);
    freez;
    down;
    go_straight;Wait(35);
    freez;
    up;
    go_straight;Wait(68);
    turn_left;
    back;Wait(68);
    freez;
    down;
    go_straight;Wait(70);
    freez;
    up;
    go_straight;Wait(68);
    turn_left;
    back;Wait(68);
    freez;
    down;
    go_straight;Wait(35);
    freez;
    up;
    go_straight;Wait(68);
    turn_left;
    back;Wait(68);
    freez;
    down;
    go_straight;Wait(70);
    freez;
    up;
    go_straight;Wait(33);
    turn_left;
    back;Wait(68);
    freez;
    down;
    go_straight;Wait(35);
    freez;
    up;
    go_straight;Wait(49);
    turn_right;
    back;Wait(107);
    freez;
    down;
    go_straight;Wait(70);
    freez;
    up;
    go_straight;Wait(33);
    turn_left;
    back;Wait(13);
    freez;
    down;
    go_straight;Wait(80);
    freez;
    up;
    go_straight;Wait(68);
    turn_right;
    back;Wait(88);
    freez;
    down;
    go_straight;Wait(40);
    freez;
    up;
    go_straight;Wait(88);
    turn_right;
    go_straight;Wait(34);
    turn_right;
    freez;
    down;
    go_straight;Wait(80);
    freez;
    up;
 }

問題点は線が点々となってしまったこと,四角がきれいに書けなかったこと,士の下の横線が左右非対称すぎていることがあげられる.解決策としては上でも述べたように下げる動作の時間を少し長くすること,筆ペンのようなものを用いること,回転後のずれに対して試行錯誤をもっと繰り返すことがあげられる.


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS