#contents

*課題 [#pe8c3889]
**課題についての概要 [#l2b6dd1e]
[[課題1のページ>http://yakushi.shinshu-u.ac.jp/robotics/?2017a%2FMission1]]
より要約すると、松本の大学生活を表す漢字を書くロボットを作る、ということである。

**選んだ文字 [#t80c967b]
松本市に来てから、晴れの日が多いように感じたので青空の「青」を選んだ。

*ロボットの概要 [#da8f8ecd]
**全体 [#a7cc7a2a]
縦移動、横移動、ペン制御の機能それぞれに1個づつモーターを使用し、広範な移動ができるロボットを作成した。
#ref(./IMG_1262.JPG,70%)
~
#ref(./IMG_1263.JPG,50%)
~
#ref(./IMG_1265.JPG,50%)

**縦軸稼働部分 [#h9c6f929]
縦移動をするための部分。右後ろのタイヤにモーターを取り付け、大きなタイヤを使う事で、機体が重たくても少ない力で縦方向にスムーズに移動できるようにした。
~
#ref(./IMG_1269.JPG,70%)
~
#ref(./IMG_1268.JPG,50%)
~
#ref(./IMG_1267.JPG,50%)
~

**横軸稼働部分 [#ff6038ce]
横移動をするための部分。レールの上に小さな車を乗せて走らせることで可能にした。~

運転手は車の重心を後ろにし、前に転倒しないようにするため乗車させた。~

また、アームの太さをレールの内幅に合わせることで、横に倒れないようにした。
~
#ref(./IMG_1270.JPG,70%)
~

**ペン稼働部分 [#y8e0a7da]
ペンを上下させる部分。パーツを組み合わせてシンプルに動くようにした。~
~
#ref(./IMG_1281.JPG,70%)
~
*結果 [#k3196366]
**使用したプログラム [#z8b94545]
 #define runfwd  Off(OUT_C);OnFwd(OUT_C,15);Wait(125);Off(OUT_C);
 #define runback Off(OUT_C);OnRev(OUT_C,15);Wait(125);Off(OUT_C);
 #define runle   Off(OUT_B);OnFwd(OUT_B,30);Wait(125);Off(OUT_B);
 #define runri   Off(OUT_B);OnRev(OUT_B,30);Wait(125);Off(OUT_B);
 #define pendown    Off(OUT_A);OnFwd(OUT_A,15);Wait(450);Off(OUT_A);
 #define penup      Off(OUT_A);OnRev(OUT_A,25);Wait(500);Off(OUT_A);
 
 task main ()
 {
  pendown;
  runle;
  runle;
  runle;
  runle;
  penup;
  Off(OUT_C);OnRev(OUT_C,15);Wait(125);Off(OUT_C);
  runri;
  pendown;
  runri;
  runri;
  penup;
  runri;
  Off(OUT_C);OnRev(OUT_C,15);Wait(125);Off(OUT_C);
  pendown;
  runle;
  runle;
  runle;
  runle;
  penup;
  runback;
  runback;
  runri;
  pendown;
  runri;
  runri;
  penup;
  runback;
  runle;
  runle;
  pendown;
  runri;
  runri;
  penup;
  runback;
  runle;
  runle;
  pendown;
  runfwd;
  runfwd;
  runfwd;
  Off(OUT_C);
  penup;
  Wait(64);
  pendown;
  runri;
  runri;
  Off(OUT_B);
  penup;
  Wait(64);
  pendown;
  runback;
  runback;
  runback;
  Off(OUT_C);
  penup;
  Wait(64);
  pendown;
  Off(OUT_B);OnFwd(OUT_B,30);Wait(64);Off(OUT_B);
  penup;
  Off(OUT_B);OnFwd(OUT_B,30);Wait(64);Off(OUT_B);
  runfwd;
  runfwd;
  runfwd;
  runfwd;
  pendown;
  runfwd;
  runfwd;
  runfwd
  penup;
 }

**解説 [#pebb62eb]

図1のように、漢字をマス目として捉え、上下左右1マスずつ移動できるようマクロを組んだ。~

それに加えて、ペンの上げ下げにもマクロを使用した。~

#ref(./AO.jpg,75%,図2)
上のように進むようプログラムした。赤線が移動で、青線が線を引く箇所を示している。~

*反省点 [#t67045ea]
・ペン稼働部分の構造上の問題か、ペンを上下させるだけでは終始筆圧が安定せず、プログラミングだけでは管理しきれなかった。~

・横軸稼働部分の前輪が少し浮き上がって空回りし、思うように横方向には線が引けなかった。~

・プログラミングの細かい微調整が必要で、時間が掛かった。~

*まとめ [#lcce2276]
機体の性質上、移動のプログラミングにはあまり苦労せずに済んだが、ペン圧の調整のプログラミングは発表当日になっても安定しなかった。~

まだ改良の余地が残っているのに、機体を分解しなければいけないのは少し心苦しいが、次の課題で作るロボットは今回の反省を踏まえて作りたい。~
~
#ref(./IMG_1272A.JPG)


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