目次

課題について

2017a/Mission1を参照してください

私は初めて自転車だけが交通手段になったので「車」を選びました。

ロボットについて

全体について

ロボット本体

私達は基本の車型を崩さずに車体を動かして文字を書くことにした。この後ろにある組み立てられたパーツはアームを付けた時のバランスを取るためにある。これがなっかたらアームの重さで重心が前にずれてしまうため車体が揺れてしまいまともに字を書くことが難しくなるのと、ペンが紙に着きっぱなしになってしまう。

アームについて

アーム

アームを上げ下げさせることでペンを動かす。モータのところに位置合わせのためのゴムとギヤ方向を変えるためのギヤが付いている。そして間にあるギアで上下移動する。

時計回り{プログラム上ではOnRev(OUT_*)}のときに、ペンを下げることができ反時計回り{プログラム上ではOnFwd(OUT_*)}のときに、ペンを上げることができる。

また写真では確認しにくいがアームの後ろにあるグレーのパーツが上がりすぎや下がりすぎを防ぐことができ、黄色のパーツでモータを止めた振動でアームが取れてしまうのを抑えることができる。

字を書くプログラムについて

文字の書き順

書き順

「車」の正式な書き順ではなく写真のように書いていきます。

プログラムの説明

#define TURN_left(t) OnFwd(OUT_C);Wait(t);Float(OUT_C);
#define TURN_right(t) OnFwd(OUT_A);Wait(t);Float(OUT_A);
#define UP_pen OnFwd(OUT_B);Wait(12);Float(OUT_B);
#define DOWN_pen OnRev(OUT_B);Wait(12);Float(OUT_B);

ここはすべての画数において共通の定義である。見てもわかるようにこれは上から車体を左に曲げる、右に曲げる、ペンを上げる、ペンを下げるとなっている。(t)で曲がる時間を調節する。 注意 毎回(t)は違いますが基本は垂直になるように回転させていて、そのときは縦・横で表現していることもある。違うときには、説明を追加する。

まずは一画目を見てみましょう。

一画目

task main()
{
  TURN_left(190);
  DOWN_pen; //1画目//
  OnRev(OUT_AC); //モータACを反時計回りにまわす=車体を後退させる//
  Wait(95); //次の命令の待ち時間//
  Float(OUT_AC);  //モータACを止める//
  UP_pen;  //1画目終了//
}

車体は縦においた状態から始めていますのでまず横にするためにTURN_leftをして、そのまま書いている。

二画目

task main()
 {
  OnRev(OUT_AC);
  Wait(10);
  Float(OUT_AC);
  TURN_left(180);
  TURN_right(187);
  TURN_right(187);
  OnRev(OUT_AC);
  Wait(45);
  Float(OUT_AC);
  Wait(50);
  DOWN_pen; //2画目//
  OnRev(OUT_AC);
  Wait(45);
  Float(OUT_AC);
  Wait(50);
  UP_pen; //2画目終了//
}

二画目に至るために車体を180°回転させて書く位置まで動かして書いている。ここで長さを長くし過ぎるとバランスが崩れるので気をつけましょう。

三画目

task main()
{  
  OnFwd(OUT_AC);
  Wait(50);
  Float(OUT_AC);
  Wait(50);
  TURN_left(225);
  OnRev(OUT_AC);
  Wait(155);
  Float(OUT_AC);
  Wait(50);
  DOWN_pen; //3画目//
  OnRev(OUT_AC);
  Wait(65);
  Float(OUT_AC);
  Wait(50);
  UP_pen; //3画目途中終了//
  OnRev(OUT_AC);
  Wait(25);
  Float(OUT_AC);
  Wait(50);
  TURN_right(218);
  Wait(50);
  OnRev(OUT_AC);
  Wait(135);
  Float(OUT_AC);
  DOWN_pen; //3画目途中//
  OnRev(OUT_AC);
  Wait(55);
  Float(OUT_AC);
  UP_pen; //3画目終了//  
}

三画目は二画目の最初に戻し横にして場所を調整して書いている。その後100°くらい回転させて、それによりずれた分を戻してから書いている。

四画目

task main()
{
  OnFwd(OUT_AC); //モータACを時計回りに回す=車体を前進させる//
  Wait(30);
  Float(OUT_AC);
  Wait(10);
  TURN_right(160);
  Wait(50);
  OnRev(OUT_AC);
  Wait(125);
  Float(OUT_AC);
  Wait(20);
  DOWN_pen; //4画目//
  OnRev(OUT_AC);
  Wait(58);
  Float(OUT_AC);
  UP_pen; //4画目終了//
}

四画目は先ほど角度がずれているので80°くらい回転させて、それによりずれた分を戻して書いている。

五画目

task main()
{
  TURN_left(218);
  OnRev(OUT_AC);
  Wait(85);
  Float(OUT_AC);
  TURN_left(178);
  OnRev(OUT_AC);
  Wait(165);
  Float(OUT_AC);
  Wait(20);
  DOWN_pen; //5画目//
  OnRev(OUT_AC);
  Wait(65);
  Float(OUT_AC);
  Wait(50);
  UP_pen; //5画目終了//
}

五画目は180°回転させるだけでは、行かせたい位置には相当なズレが生じるので途中で少し戻すことで調整している。またそれでもずれた分を戻して書いている。

六画目

task main()
{
  TURN_right(220);
  Wait(10);
  OnRev(OUT_AC);
  Wait(250);
  Float(OUT_AC);
  Wait(10);
  TURN_left(225);
  Wait(20);
  OnRev(OUT_AC);
  Wait(75);
  Float(OUT_AC);
  Wait(50);
  DOWN_pen; //6画目//
  OnRev(OUT_AC);
  Wait(85);
  Float(OUT_AC);
  Wait(10);
  UP_pen; //6画目終了//
}

六画目はまず四画目の下に持っていくために車体を縦にして下げている。その後横にして場所を調節して書いている。これも遠すぎるとバランスが崩れてていしまう。

七画目

task main()
{
  TURN_left(205);
  OnRev(OUT_AC);
  Wait(285);
  Float(OUT_AC);
  Wait(10);
  DOWN_pen; //7画目//
  OnFwd(OUT_AC);
  Wait(155);
  Float(OUT_AC);
  UP_pen; //7画目終了//
}

七画目は縦にしてバックさせることで上に戻している。そのあと前進させることで書いている。上のようにやるときは、時間調整は長すぎると感じるくらいのところから始めると良い。これはアームが長いほど当てはまる。

字の完成写真

これらを連続で実行することで写真のようになった

完成した字

やってみようとする人へのアドバイスとして

漢字は一つでも角度と場所がずれてしまう成り立たなくなってしまうことが多くとても難しい、そして上記の通りにやってうまく行かないこともあるだろう。なぜなら動きに少しの誤差が生じてしまうからだ。それでも諦めずに根気よく立ち向かっていく精神を持って頑張ってほしい。また車型でやる場合は、この時間でこれくらい進んでこの位置に持ってきたらこれくらいずれているなどという感覚は持っていたほうが良いが、この感覚をかなり良く持っていないとうまく行かないので、自信のない人は動かして何回もやったほうが上手く行くでしょう。

感想

調整するのにも多大な時間がかかり疲れましたが、自分にとって良い経験になったのではないかと思いました。


添付ファイル: fileIMG_201705_4.jpg 203件 [詳細] fileFotor_201705_3.jpg 214件 [詳細] fileIMG_201705_1.jpg 221件 [詳細] fileIMG_201705_2.jpg 247件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-05-24 (水) 11:51:57