目次

課題

A4の紙に松本の大学生活を表す漢字一文字を書く。 課題1

漢字について

大学に入ってからジャグリングと軟式テニスを始めたので、「球」にした。

ロボットの説明

ロボット全体

今回のロボットは、ペンを前後左右に動かすことで字を書く駆動である。 モーターは3つ使用しており、 ロボット本体の前後、ペンの左右、ペンの上下に動かしている。 初めはロボット本体を動かし字を書くロボットとプログラムを作っていたが、 プログラムが難しく途中でこのロボットに変更した。 また、持ち運びがしやすいように簡単に分解できるようにした。

DSC_0241.JPG pic_ro1.jpg

前後の動き

ロボットを前後させるためのモーターを本体の内側にいれ、外側から見えないようにした。 また、タイヤを3つ使いロボットを安定させている。

pic_ro5.jpg

左右の動き

ペンを左右させるためのレールに摩擦が少なくなるように丸い部品を使った。 また、固定されていない棒を使い、レールの振動を軽減させることと、スライドし過ぎてレールから外れないようにした。

pic_ro6.jpg pic_ro2.jpg

上下の動き

モーターを回転しペンを上げる。しかし、ペンを下げるのはモーターを止めることでやっているため、モーターには良くない仕様になってしまった。

pic_ro7.jpg

文字について

今回、正しい書き順ではなく、プログラムが簡単になるように書き順を変更した。

pic_ro8.jpg

プログラムの説明

点の線と横線をサブルーチンでプログラムした。ペンを下したあとの振動がおさまるのをまつため、止まっている時間をつくった。また、ペンでレールでスライドさせたあと左右によりすぎるとスライドできなくなるので、再び動かせるように元の位置に戻すプログラムを追加した。

sub yoko()
{
    Off(OUT_B);
       Wait(100);
       OnRev(OUT_A);
       Wait(20);
       Off(OUT_A);
    OnRev(OUT_B);          //球の横線を書く
}

sub ten()
{
       Off(OUT_B);           
       Wait(150);
       OnRev(OUT_C);
       Wait(13);
    Off(OUT_C);
    OnRev(OUT_B);          //求の点の部分を書く
}

task main()
{
    yoko();                //1画目
       OnFwd(OUT_A);
    Wait(25);
    Off(OUT_A);
    OnFwd(OUT_C);          //移動
    Wait(17);
    Off(OUT_C);
    yoko();                //2画目
    OnFwd(OUT_A);
    Off(OUT_A);
    OnFwd(OUT_C);          //移動
    Wait(17);
    Off(OUT_C);
    yoko();                //3画目
    OnFwd(OUT_A);
       Wait(15);
       Off(OUT_A);
    Off(OUT_B);            //4画目
    Wait(100);
    OnRev(OUT_C);
    Wait(33);
    Off(OUT_C);
    Wait(50);
    OnRev(OUT_AB);
    Wait(25);
    Off(OUT_AB);           //5画目
    Wait(100);
       OnFwd(OUT_C);
    Wait(45);
       Off(OUT_C);
    OnRev(OUT_C);          //移動
    Wait(15);
       Off(OUT_C);
    Wait(100);
    OnFwd(OUT_A);          
    Wait(9);
    Off(OUT_A);
    Wait(100);
    yoko();                //6画目
    OnFwd(OUT_C);          //移動
    Wait(15);
       Off(OUT_C);
    OnRev(OUT_B);
    ten();                 //7画目
    OnRev(OUT_C);          //移動
    Wait(8);
    Off(OUT_C);
    Wait(20);
    ten();                 //8画目
    OnRev(OUT_C);          //移動
    Wait(8);
    Off(OUT_C);
    Wait(20);
    ten();                 //9画目
    OnFwd(OUT_A);          //移動
    Wait(20);
    Off(OUT_A);
    OnFwd(OUT_C);
    Wait(20);
    Off(OUT_C);
    ten();                 //10画目
    OnRev(OUT_C);          //移動
    Wait(10);
    Off(OUT_C);
    Wait(20);
    ten();                 //11画目
    Off(OUT_B);
}

まとめ

書けた漢字

「求」の点が斜めではなく、縦にした。

pic_ro9.jpg

感想

私はロボットを組み立てるのがうまくなく、相方にたくさん助けてもらいロボットを作った。 また、プログラムが長々となってしまったので、今度はサブルーチンを使うなどで、できるだけ短くかきたい。漢字を書くとき、突き抜けてはいけない線が突き抜けると違う漢字になっていしまうところも難しく、毎回漢字を書くと変わってしまい何度もプログラムを変更するのが大変だった。しかし、思った通りに書けたときは何度でもうれしかった。このロボットでは斜めの線、曲線を書くことが難しく断念してしまった。次回はプログラムをきれいに書きたい。


添付ファイル: filepic_ro9.jpg 75件 [詳細] filepic_ro8.jpg 71件 [詳細] filepic_ro6.jpg 69件 [詳細] filepic_ro7.jpg 68件 [詳細] filepic_ro2.jpg 76件 [詳細] filepic_ro5.jpg 59件 [詳細] filepic_ro1.jpg 60件 [詳細] fileDSC_0241.JPG 103件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-07-07 (金) 12:28:47 (774d)