[[2017a/Member]]
[[2017a/Member]]~
目次
#contents
・課題1
*課題1 [#g1e40900]
松本での新しい生活を表す7画以上の漢字1文字を15cm四方の紙に書く。詳しくは[[2017a/Mission1]]を参照。
**選んだ漢字 [#t33a2dc9]
豊かな自然と北アルプスにかかる青空が印象的であったため「空」という漢字を選んだ。

*ロボットの説明 [#v307b7eb]
**全体図 [#pe51c239]
#ref(2017a/Member/mattu/Mission1/robo_mission1_1.jpg,100%,ロボットの全体図)
X軸Y軸とペンを持たせたアームの上げ下げを利用して文字を書く仕組みとした。それぞれの動きにモーターを1つずつ使っている。
***前後移動 [#r5b96931]
前後移動はサンプルのロボットの構造を流用し、タイヤで移動する仕組みとなっている。
***左右移動 [#u7a67a6d]
***アーム上下 [#mf96d24a]


*プログラムについて [#l23a7ada]
**文字の書き順 [#c6be9949]
「空」という漢字の書き順通りに書いている。
**プログラム概要 [#yc67d727]
このロボットは前移動、後ろ移動、左移動、右移動、アーム下げ、アーム上げの6つの動きのみで文字を書くため、プログラムができる限り読みやすくなるように、定義とサブルーチンを6つ用意した。
***定義とサブルーチン [#k346f72a]
ペンの上げ下げは常に同じ動きを行えれば良いのでサブルーチンを利用したが、前後と左右移動は画の長さが一画ごとに異なるので、対応できるようにtを変数とした定義を利用した。
 #define go_fwd(t) OnRev(OUT_C); \
  Wait(t);Off(OUT_C);         //前移動
 
 #define go_back(t) OnFwd(OUT_C); \
  Wait(t);Off(OUT_C);                  //後ろ移動
 
 
 #define move_left(t) OnFwd(OUT_A); \
  Wait(t);Off(OUT_A);                  //左移動
 
 #define move_right(t) OnRev(OUT_A); \
  Wait(t);Off(OUT_A);                  //右移動
 
 sub armdown()
 {
  OnFwd(OUT_B);
  Wait(110);
  Off(OUT_B);
 }                                     //アーム下げ
 
 sub armup()
 {
  OnRev(OUT_B);
  Wait(130);
  Off(OUT_B);
 }                                     //アーム上げ

***メイン [#r5d93972]
 task main ()
 {
   armdown();
   go_back(60);
   armup();
 
   move_left(750);
   
   armdown();
   go_back(60);
   armup();
   go_fwd(60);
   
   armdown();
   move_right(1400);
   go_back(70);
   armup();
 
   OnFwd(OUT_B);
   Wait(25);
   Off(OUT_B);
    
   go_fwd(30);
   move_left(1000);
  
   armdown();
   OnFwd(OUT_AC);
   Wait(70);
   Off(OUT_AC);
   armup();
   
   go_fwd(70);
   move_right(680);
 
   armdown();
   go_back(70);
   move_right(370);
   armup();
 
   go_back(80);
   move_left(1050);
 
   armdown();
   move_right(800);
   armup();
   move_left(410);
   armdown();
   go_back(135);
   armup();
   move_left(600);
   armdown();
   move_right(1100);
   armup(); //終了
 }


*まとめ [#db133fd6]


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