[[2015b/Member]]
*車型書道ロボット [#tf0cb166]
  今回私たちのチームでは、最初に作った車型ロボットの前に筆ペンをつけた、きわめて単純な構造の書道ロボを作りました。
**全体図 [#n6834452]
 撮影後、サインペンから書きやすい筆ペンに変えました
#ref(2015b/Member/Ryu/Mission1/IMG_3188.JPG,20%,車型書道ロボット)
**筆をおろすパーツ [#v338b301]
  固定方法はゴム二本と以下の写真に写っている固定器具。筆ペンが思っていたより太く、モーターの回転する部分につけるジョイントがうまくはまらず、緩みかけていたりしたので、これはあまり望ましくなく感じました。

*今回の字 [#ab9ce888]
  自分の住んでた町の名前である『清田』の『清』を書こうと思い立ちました。

**字を書くにあたって [#f4b3d08b]
  さんずいの斜線と、『つくり』の縦線が大きな課題でした。そのためには、45度および90度の方向転換のプログラムを構築する必要がありました。しかしそれだけではなく、書き順どおりに縦の線を描くために、ロボットを直接、書き始めのところまでもっていくこともしなければならないので、動く距離の検証も必須でした。
つまり、
 ,泙辰垢袷或覆靴道を書いて、そして同じ分だけ後退して戻ってくる
 ▲蹈椒奪箸90度、45度に方向転換させる
 0銘屬鯆汗瓩垢襪燭瓩冒或福後退する(わかりやすく言うと、紙を座標グラフのようににとらえて、x軸方向に〜、y軸方向に〜だけ移動させる、というようなことである。)
 ぅ撻鵑鮠紊臆爾欧垢
 というようにこれら4つの動きによって、自分たちのロボットは字が書けるのである。

*プログラム [#e79be712]
**定義 [#of3b26d3]
 #define do90_1 Off(OUT_AB);RotateMotor(OUT_A,40,190);Off(OUT_A);RotateMotor(OUT_B,40,-190);Off(OUT_B);Wait(300);//反時計周りに90度の方向転換
 #define do90_2 Off(OUT_AB);RotateMotor(OUT_B,40,190);Off(OUT_B);RotateMotor(OUT_A,40,-190);Off(OUT_A);Wait(300);//時計回りに90度の方向転換
 #define do45_1 Off(OUT_AB);RotateMotor(OUT_A,40,90);Off(OUT_A);RotateMotor(OUT_B,40,-90);Off(OUT_B);Wait(300);//反時計回りに45度の方向転換
 #define do45_2 Off(OUT_AB);RotateMotor(OUT_B,40,90);Off(OUT_B);RotateMotor(OUT_A,40,-90);Off(OUT_A);Wait(300);//時計回りに45度の方向転換
 #define dox_1 Off(OUT_AB);RotateMotor(OUT_A,40,320);Off(OUT_A);RotateMotor(OUT_B,40,-240);Off(OUT_B);Wait(300);//反時計回りに約135度の方向転換
 #define dox_2 Off(OUT_AB);RotateMotor(OUT_B,40,320);Off(OUT_B);RotateMotor(OUT_A,40,-240);Off(OUT_A);Wait(300);//時計回りに約135度の方向転換
 #define pen_d Off(OUT_C);RotateMotor(OUT_C,20,-20);Off(OUT_C);Wait(300);//ペンを下げる
 #define pen_u Off(OUT_C);RotateMotor(OUT_C,60,20);Off(OUT_C);Wait(300);//ペンを上げる
 #define zen(t1)Off(OUT_AB);ResetTachoCount(OUT_AB);RotateMotorEx(OUT_AB,40,t1,0,true,true);Off(OUT_AB);Wait(300);//前進
 #define kou(t2) Off(OUT_AB);ResetTachoCount(OUT_AB);RotateMotorEx(OUT_AB,40,-t2,0,true,true);Off(OUT_AB);Wait(300);//後退
 #define yoko(t3) pen_d;zen(t3);pen_u;kou(t3);Wait(300);//ペン下げ、前進、ペン上げ、元の位置まで後退
 #define tate_1 kou(110);do90_1;zen(200);do90_2;yoko(80);do90_1;kou(200);do90_2;zen(110);//五番目の縦線を書いて元の位置に戻る
 #define tate_2 kou(80);do90_1;zen(180);do90_2;yoko(140);do90_1;kou(180);do90_2;zen(80);//八番目の縦線を書いて元の位置に戻る
 #define tate_3 kou(80);do90_1;zen(290);do90_2;yoko(140);do90_1;kou(290);do90_2;zen(80);//九番目の縦線を書いて元の位置に戻る
 #define slash_1(t5) do45_1;yoko(t5);do45_2;//さんずいの1,2番めの線を書いて戻る
 #define slash_2(t6) dox_1;yoko(t6);dox_2;//さんずいの3番目の線を書いて戻る


  プログラムの隣に何のための動作であるか記載しております
  (最初に、90do_1と書いたので、ダウンロードできず、急きょ上記のように順番を変えただけの名前にしました。ややこしい・・・)

**本文 [#f3d66bff]
 task main()
 {
 slash_1(60);
 zen(80);slash_1(60);
 zen(270);slash_2(60);
 kou(290);do90_1;zen(60);yoko(100);kou(60);do90_2;
 tate_1;
 zen(20);do90_1;zen(80);yoko(40);kou(80);do90_2;
 zen(20);do90_1;zen(50);yoko(130);kou(50);do90_2;
 zen(40);tate_2;
 do90_1;zen(80);yoko(90);kou(80);do90_2;
 tate_3;
 zen(30);do90_1;zen(80);yoko(90);kou(80);do90_2;
 zen(30);do90_1;zen(80);yoko(90);kou(80);do90_2;
 }
  横に『清』の書順を記載しています。(なお、9番目は二回に分けて書かせております)
**書いた結果 [#q88b4b75]
 『月』の上の部分が少しずれてしまった。本番の数日前から電池を入れ替えて、本番に近づけた検証をすべきだった

*反省点、及び次の課題に向けての改善点 [#e5d2cc31]
**チームワーク [#p1d050ce]
  ロボットを作成するための準備が遅れたことが、何よりの反省点であるとみました。その結果、せっかくお互い考えていたアイデアを生かしたロボットをつくることができませんでした。相棒との意思疎通もなおざりで、チームとして連携をうまくとれなかったのが一番の原因であると思います。チームとしての自覚を認識していき、相棒と共にロボットを作っていくことが重要である、そのことを忘れないようにすることで解決していこうと思いました。
**技術面 [#q5202b1f]
 レゴの歯車の部品の上手な使い方が分からず、ペンの上げ下げの動作が雑なものになってしまいました。今回、発表会に出されたロボットの多くが歯車を活用していました。また、三輪車でしたので、OnFwd、OnRevの動作では、あまりにもずれが生じて、角度計算によってタイヤを動かすことになりました。あるチームのロボットは、四輪にして、一つのモーターでそれを動かすことで、OnFwdによる、かなり正確な直進動作を成しえていました。こうしたちょっとした工夫や発想が僕らのチームに足りなかったので、次回は他の人の過去の作品などをもっと参照にして、自分たちだけのオリジナルを求めていきたいと思いました。

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS