2019a/Member 目次

課題について

自分たちの出身地が神戸だったので,今回の課題にその地名を使いました.

ロボット本体の説明

 まず最初に元となるような形を作り,その後何回か作り直し今の形に至りました.安定性を図るために後輪を一つ増やそうと試みましたが,回転の際に後輪同士がぶつかったり重心よりも十分に距離をとることができなかったので結局三輪に落ち着きました.筆を上げる仕組みはいたってシンプルで,モーターに棒状のパーツをつけた歯車をつけ,そこに輪ゴムで筆記用具を固定しました.(以下の添付ファイルを参照)

http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&pcmd=open&file=IMG_3567.PNG&refer=2019a%2FMember%2Fkimu%2FMission1

プログラムの説明

 全体的な流れとして,まず神戸と書く際に必要な手順をまとめ,次にサブルーティンを使用し数字だけ入れる状態に設定し,最後に実際に動かしながら微調整をしました.また動作の際に誤差が出ないよう「Wait」を使用し一つずつ動作を行うようにしました.以下は実際に使用したプログラムです.

 まずここでサブルーティンなどを使いある程度のプログラムを設定します.

#define PEN_TIME 100
#define pen_rize OnRev(OUT_A,50);Wait(PEN_TIME);Off(OUT_A);
#define pen_down OnFwd(OUT_A,50);Wait(PEN_TIME);Off(OUT_A);
#define W Wait(700);
sub rotation_right(long t)
{
    OnFwd(OUT_C,50);OnRev(OUT_B,50);Wait(t);Off(OUT_BC);
}
sub rotation_left(long t)
{
    OnFwd(OUT_B,50);OnRev(OUT_C,50);Wait(t);Off(OUT_BC);
}
sub go_straight(long t)
{
    OnFwd(OUT_BC,50);Wait(t);Off(OUT_BC);
}
sub back_straight(long t)
{
    OnRev(OUT_BC,50);Wait(t);Off(OUT_BC);
}
sub curve_right(long t)
{
    OnFwd(OUT_C,50);OnFwd(OUT_B,15);Wait(t);Off(OUT_BC);
}
sub back_curve_right(long t)
{
    OnRev(OUT_C,50);OnRev(OUT_B,15);Wait(t);Off(OUT_BC);
}

 次に「神」の文字を書くのに必要な手順を数字を考えずにそのままプログラムにします.その後,数字を入れる→実際に動かす→数字を変えて微調整,を繰り返しました.

task main()
{
    go_straight(100);
    W;
    pen_rize;
    W;
    go_straight(100);
    W;
    rotation_right(550);
    W;
    go_straight(100);
    W;
    pen_down;
    W;
    back_straight(100);
    W;
    rotation_left(400);
    W;
    curve_right(700);
    W;
    pen_rize;
    W;
    back_curve_right(450);
    W;
    rotation_left(400);
    W;
    pen_down;
    W;
    go_straight(100);
    W;
    pen_rize;
    W;
    back_straight(100);
    W;
    rotation_right(400);
    W;
    pen_down;
    W;
    go_straight(450);
    W;
    pen_rize;
    W;
    rotation_left(600);
    W;
    go_straight(200);
    W;
    rotation_left(600);
    W;
    go_straight(350);
    W;

 「戸」の字も同様の作業を繰り返します.

    pen_down;
    W;
    go_straight(200);
    W;
    rotation_right(650);
    W;
    go_straight(250);
    W;
    rotation_right(650);
    W;
    go_straight(200);
    W;
    rotation_right(650);
    W;
    go_straight(250);
    W;
    pen_rize;
    W;
    rotation_right(650);
    W;
    go_straight(150);
    W;
    rotation_right(650);
    W;
    pen_down;
    W;
    go_straight(250);
    W;
    pen_rize;
    W;
    back_straight(125);
    W;
    rotation_right(600);
    W;
    back_straight(250);
    W;
    pen_down;
    W;
    go_straight(600);
    W;
    pen_rize;
    W;
    go_straight(200);
    W;
    rotation_right(600);
    W;
    pen_down;
    W;
    go_straight(300);
    W;
    pen_rize;
    W;
    rotation_left(600);
    W;
    go_straight(150);
    W;
    rotation_left(600);
    W;
    pen_down;
    W;
    go_straight(300);
    W;
    rotation_right(650);
    W;
    go_straight(150);
    W;
    rotation_right(650);
    W;
    go_straight(300);
    W;
    pen_rize;
    W;
    rotation_left(650);
    W;
    back_straight(150);
    W;
    pen_down;
    W;
    go_straight(150);
    W;
    curve_right(500);
}

結果

多少のズレはあったものの、無事文字を書くことができました。(以下の添付ファイルを参照)

http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&pcmd=open&file=IMG_3519%20%281%29.PNG&refer=2019a%2FMember%2Fkimu%2FMission1

考察

 誤差の出ないようにプログラムしたつもりだったのですが,実際に動かしてみると大きくずれてしまうことが多々ありました.車型のロボットだと動作の際に全体を動かしてしまうので誤差が起きやすかったようです.ペン自体を横移動させるロボットのほうが動かす部分が少なく,反動も小さくなるのでもっと考えてから製作に取り掛かるべきでした.他にも誤差を少なくすることのできる構造もあると思うので,次回からはプログラムだけでなくロボットの構造ももっと工夫するようにしたいと思いました.


添付ファイル: fileIMG_3519 (1).PNG 5件 [詳細] fileIMG_3567.PNG 6件 [詳細]

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