目次

課題の説明

今回の課題は、書道ロボットを作成し、各自の名前の一文字を選択し、A4用紙に書道ロボットに書かせるというものである。ただし、選択する文字は7画以上でなければならない。なお、今回私は「村」という一文字を選んだ。

ロボットの説明 

全体

new_IMG_0268.jpg

最初は後輪が高いため、重心が高くなっており、ひっくり返ってしまった。そこで後輪を組み換え重心を低くした。

タイヤ部分

new_IMG_0259.jpg

後輪はRISの冊子を参考に作った。前輪は歯数の小さいギアをモーター側に、大きいギアをタイヤ側につけることで速度を落とし、A4紙に収まる大きさの字を書きやすくした。モーターは前輪にのみ付いている。

ペンの上げ下げ

new_IMG_0254.jpg
new_IMG_0255.jpg

タイヤを2つ使い、その間にペンをはさみ、タイヤをギアで回転させることで、ペンの上げ下げを行う。最初、ギアをそのままつけたが、強すぎ、ペン先がはじかれてしまった。そこで輪ゴムを使い、一定のテンションがかかり続けるようにすることで、はじかれないように調整した。

プログラムの説明

プログラム

#define Down OnRev(OUT_B);Wait(120);Off(OUT_B);Wait(100); //ペンを下げる
#define Up OnFwd(OUT_B);Wait(100);Off(OUT_B);Wait(100); //ペンを上げる
#define SenFwd(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC);Wait(100); //前に進む
#define spin90 OnFwd(OUT_C);OnRev(OUT_A);Wait(60); //90度回転させる
#define SenRev(t) OnRev(OUT_AC);Wait(t);Off(OUT_AC);Wait(100); //後ろに進む
task main ()
{
    Down;             //一画目開始
    int time1;  
    time1 = 0;
 
    time1 += 25;
    SenFwd(time1);
    Up;            //一画目終了
 
    time1 /= 2;
    SenFwd(time1);    //五画目の始めの位置に移動
    Down;          //五画目開始  
    time1 *= 2;
    SenFwd(time1);
 
    Up;         //五画目終了
    time1 *= 2;
    SenRev(time1);  //一画目の中央に移動
    spin90;      //90度回転
    time1 /= 4;
    SenRev(time1);  //二画目の始めの位置に移動
    Down;       //二画目開始
    time1 *= 8;
    SenFwd(time1);
    Up;        //二画目終了
    time1 *= 3;
    time1 /= 4;
    SenRev(time1); //三画目の始めの位置に移動
 
    OnFwd(OUT_C);
    OnRev(OUT_A);
    Wait(10);
    Off(OUT_AC);
    Wait(100);   //三画目を書く方向を向かせる
    Down;      //三画目開始
 
    time1 *= 2;
    time1 /= 3;
    SenFwd(time1);
 
    Up;       //三画目終了
    SenRev(time1);//四画目の始めの位置に移動
    OnFwd(OUT_A);
    OnRev(OUT_C);
    Wait(25);
    Off(OUT_AC);
    Wait(100);  //四画目を書く方向を向かせる
    Down;     //四画目開始
    time1 /= 2;
    SenFwd(time1);
    Up;      //四画目終了
    time1 *= 3;
    time1 /= 2;
    SenFwd(time1);//六画目の始めの位置に移動(六画目は反対側から書く)
 
    Down;    //六画目のはねの部分開始
    time1 *= 2;
    time1 /= 3;
    SenFwd(time1);//六画目のはねの部分終わり
    OnFwd(OUT_A);
    OnRev(OUT_C);
    Wait(100);
    Off(OUT_AC);
    Wait(100); //六画目の直線を書く方向を向かせ、六画目の直線部分開始
    time1 *= 4;
    SenFwd(time1);
    Up;     //六画目終了
    OnFwd(OUT_A);
    OnRev(OUT_C);
    Wait(10);
    Off(OUT_AC);
    Wait(100);  //七画目の始めの位置の方向を向かせる
    time1 /= 2;
    SenFwd(time1);//七画目の始めの位置に移動
    spin90;   //七画目を書く方向を向かせる
    Down;    //七画目開始
    time1 /= 8;
    SenFwd(time1);//七画目終了
}

説明

new_ロボ書き順.jpg

上の図の書き順で書いた。同じ方向の線を合わせて書くことで、向きを変える手間をできるだけ省いた。 プログラムにおける回転の秒数は、モーターの出力に差があったため、何回か実際に動かしてみることで秒数を決定した。

書けたもの

new_IMG_0262.jpg

少し斜めになってしまったが、何とか「村」と読める。

感想と反省

・ロボットの動きの微調整が難しかった。特に、回転の秒数を決めるとき、モーターの出力に差があったため、何回も動かして秒数を決めていった。

・全員の予定がなかなか合わず、あまり時間を取れなかった。今度ロボットを組む時は連携をさらに密にし、完璧なものを作り上げたい。

・難しかった点や、困った点などいろいろとあったが、最終的にはなんとか形にでき、また楽しむこともできたのでよかったと思う。今回の経験は次回の課題に生かしていきたい。


添付ファイル: filenew_IMG_0262.jpg 190件 [詳細] filenew_IMG_0255.jpg 192件 [詳細] filenew_ロボ書き順.jpg 189件 [詳細] filenew_IMG_0254.jpg 226件 [詳細] filenew_IMG_0259.jpg 178件 [詳細] filenew_IMG_0258.jpg 130件 [詳細] filenew_IMG_0268.jpg 243件 [詳細] filenew_IMG_0267.jpg 136件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-08-01 (土) 10:22:16