目次

課題

A4の紙に大学生活を表す漢字一文字をロボットで書く。 一人暮らしで伸び伸び生活しているということで「伸」という漢字を書く。

機体の説明

ペンをもたせた車型のロボットを走らせ、字を書くことにした。

14.7kb

車部分

シンプルに作った。前輪は摩擦の小さいものを選び、小回りがきくようにした。

14.3kb

ペン

モーターでタイヤを回し、ペンを上げ下げする。何度も上げ下げを繰り返すと、ペンがずれるという問題を克服するためにゴムや、ブロックでペンの動きを制限した。

12.9kb
14.3kb

プログラムの説明

#define turn_right(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_AC)  //右を向く
#define turn_left(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);Off(OUT_AC)  //左を向く
#define go_go(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC)          //前に進む
#define UP_DOWN_TIME 10
#define back_back(t) OnRev(OUT_AC);Wait(t);Off(OUT_AC)        //後ろに進む
#define up_pen OnFwd(OUT_B);Wait(UP_DOWN_TIME);Off(OUT_B)      //ペンをあげる
#define down_pen OnRev(OUT_B);Wait(UP_DOWN_TIME);Off(OUT_B)     //ペンをさげる 

直線を引くサブルーチン

void write(int t)
{
    down_pen;
    go_go(t);
    up_pen;
}

漢字を書く

task main()
{
    write(50);       //一画目
    back_back(50);
    turn_left(40);
    go_go(40);       
    write(70);       //二画目 にんべん完成
    back_back(70);
    turn_left(75);   
    
    go_go(60);
    write(40);             //真ん中の横線
    back_back(40);
    turn_right(75);
    go_go(10);  
    write(40);            //右の縦線
    back_back(40);
    turn_right(80);
    go_go(30);
    write(40);           //下の横線
    back_back(35);
    turn_right(75);
    go_go(30);
    write(40);          //左の縦線
    back_back(35);
    turn_right(90);
    go_go(30);
    write(40);         //上の横線
    turn_left(75);
    
    go_go(10);
    turn_left(80);
    go_go(60);
    turn_left(90);
    go_go(30);
    write(90);        //真ん中の縦線
}

完成した「伸」がこちら

6.1kb

感想・まとめ

タイヤの軸上にペン先がないので曲がった時に思っていた場所にペン先が来なかったので、書く前に機体の位置を調整するのが難しかった。ペンを上げ下げする部分はペンがずれる問題を解決するのは時間がかかったが、工夫して良いものができたと思う。


添付ファイル: filekitai.jpg 109件 [詳細] fileペン.jpg 79件 [詳細] filenobi-runobi-ru.jpg 87件 [詳細] fileagesage.jpg 96件 [詳細] filecar.jpg 113件 [詳細] filecar.xcf 45件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-11-10 (木) 20:04:35