目次

課題

詳しくは課題1を参照。 私は、大学生になり一人暮らしをする中で、家事の大変さを思い知り、また同時に親の有難みを感じる機器が多くなった。そのなかで家事の大変さを痛感した点から「苦」という文字を選んだ。

ロボットについて

私たちは、多少プログラミングが難しくなっても良いので、ロボット本体を動かしながら文字を書くロボットを作った。なぜなら、私はロボット初心者なため複雑な構造を作ろうとすると困惑して時間がかかると思ったからである。完成品は下記の写真の通りである。

robote

試作品

私たちはまず下記の写真のロボットを作った。

robote

作った当初は上手くいくと思っていたが、動かしてみると重大な問題点が見つかった。 それは、重さのバランスが悪いためタイヤにかかる負荷がことなり、各タイヤに同じプログラムをしてもまっすぐ進まない点である。 そこで、完成品の写真にの通り知能ブロックを真ん中に移すことで左右にバランスを釣り合わせることに成功した。

アームについて

今回は、外側にある2つのモーターで本体を動かし真ん中のモーターでペンの上げ下げを行う仕組みを作った。ペンに関しては下記写真にある通り二重に固定させてある。下の部分ではペンの幅に合わせて大きさが調整できるようになっておりペン幅ぎりぎりにすることで固定することができる。上の部分は補助的な役割といてペンを固定している。

robote

プログラミングについて

文字に斜めに書くところがないため基本的に縦の線の長さと横の線の長さをそれぞれ統一してプログラミングを楽にした。線の長さの比は、縦:横=1:2で書くようにした。サブルーチンを使い図に示した番号に従った名前にしている。 ロボットが小回りが利かないため回転した後に前進や後進して位置を調節している。

定義

最初に時間を変数として前(mae)と後ろ(ushiro)で定義した。

#define mae(t) OnFwd(OUT_AC,25);Wait(t);Off(OUT_AC);
#define ushiro(t) OnRev(OUT_AC,25);Wait(t);Off(OUT_AC);

スピン

次に、文字を書くにあたって必要となるスピンを約90度回転するようにした。

sub spin()
{
 OnFwd(OUT_A,50);
 OnRev(OUT_C,50);
 Wait(1500);
 Off(OUT_AC);
}

アームの上げ下げ

アームを下げる(arm_down)場合はモーターを後ろに回転させることで、アームを上げる(arm_up)場合はモーターを前に回転させることでアームを上げ下げしている。

sub arm_up()
{
 OnRev(OUT_B,50);
 Wait(100);
 Off(OUT_B);
}
sub arm_down()
{
 OnFwd(OUT_B,50);
 Wait(100);
 Off(OUT_B);
}

1番目

1番目は草冠の横長の部分を書くプログラムである。

sub first()
{
 mae(1000);
 arm_up();
}

2番目

次に十の部分の縦線を書くプログラムである。

sub second()
{
 spin();
 ushiro(900);
 arm_down();
 ushiro(500);
 arm_up();
}

3番目

次は、口の部分を書くプログラムである。ここではリピートを使うことでプログラムを簡略化してある。

sub third()
{
repeat(2){spin();
          ushiro(400);
          arm_down();
          ushiro(1000);
          arm_up();
          spin();
          ushiro(400);
          arm_down();
          ushiro(500);
          arm_up();
          }
}

4番目

次は、十の横線の部分を書くプログラムである。

sub fourth()
{
 mae(300);
 spin();
 mae(100);
 arm_down();
 ushiro(1000);
 arm_up();
}

5番目

5番目は、草冠の左側の縦線の部分を書くプログラムである。

sub fifth()
{
 mae(200);
 spin();
 ushiro(400);
 arm_down();
 ushiro(500);
 arm_up();
}

6番目

最後に、草冠の右側の縦線の部分を書くプログラムである。

sub sixth()
{
 spin();
 ushiro(300);
 spin();
 ushiro(400);
 arm_down();
 ushiro(500);
}

本文

サブルーチンを使うことで本文は限りなく短くした。

task main()
{
 first();
 second();
 third();
 fourth();
 fifth();
 sixth();
}

結果

いざボールペンで文字を書いてみると薄れてしまう部分が出てきた。そこで、筆ペンを使うことで文字が薄れないようにした。 結果的にかけた文字は下記の写真の通りである。

robote

考察・まとめ

robote

文字自体はそこそこよくかけていると感じる。しかし、実際に書いてみると問題点も浮上してきた。 それは、上記の写真の通りに後輪をつけたが、後方に想像してた以上の負荷がかかってしまう点である。後輪が外れることはないが、書く場所が変わるとそれにあわせてスピンさせたときの角度が変わってしまいうまく書けなくなってしまう。書く場所によって成功したり失敗するのはあまりよくないと自分は思う。この問題点は、知能ブロックを今回よりも前につけたりタイヤの数を増やすなどいろいろな解決策があると感じた。この反省を生かしていきたい。


添付ファイル: file課題1.jpg 58件 [詳細] fileロボット4.jpg 68件 [詳細] fileロボット3.jpg 37件 [詳細] fileロボット2.jpg 71件 [詳細] fileロボット1.jpg 69件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-05-25 (木) 23:50:03 (816d)