[[2018b/Member]]

目次
#contents

*ロボットの説明 [#k574ce85]
**全体図及び本体 [#xd52c4ec]
#ref(2018b/Member/kozuka/Mission1/hontai.jpeg,25%,全体);
キットに付属する説明書に掲載されているものを素体にした。安定的に動作したが、細かい動きをする、ということには不向きであったとも考えられる。

**アーム [#r9333a96]
#ref(2018b/Member/kozuka/Mission1/arm.jpeg,25%,全体);
ペンを支えるアームは、ペンの太さなどを考慮し、隙間に入れて固定するようにした。補強のため、ゴムを使って固定している。モーターによってペン先と紙面の着脱ができる。位置が、車体から見て右側にあったため、プログラムの設定が比較的複雑になってしまった。

*選んだ文字 [#b82ed62e]
#ref(2018b/Member/kozuka/Mission1/moji.jpeg,20%,全体);

昔に住んでいた名古屋市を、「ナゴヤシ」とカタカナで書くことにした。画数の削減のために曲線を半円によって表現しようとした。

*プログラム [#o93d23a6]
**定数定義 [#xb7ddcc8]
  #define PEN_TIME             150              //ペンの着脱の時間
  #define TURN_TIME 	    1200              //右折および左折の時間
  #define OFF_BRANK	    Wait(1000);  //動作完了後の停止時間
最初に、ペンが紙に着いた状態でスタートすることで、確実に表記ができるよう心がけた。
動作完了後に空白時間を作ることで、前の動作の影響が後の動作に出ることを防いだ。

  #define pen_on                  OnFwd(OUT_A,50);Wait(PEN_TIME);Off(OUT_A);OFF_BRANK  //ペンを紙につける
  #define pen_off                  OnRev(OUT_A,50);Wait(PEN_TIME);Off(OUT_A);OFF_BRANK   //ペンを紙から離す
  #define turn_right              OnFwd(OUT_C,50);Wait(TURN_TIME);Off(OUT_C);OFF_BRANK //右折
  #define turn_left                 OnRev(OUT_C,50);Wait(TURN_TIME);Off(OUT_C);OFF_BRANK //左折
  #define write_left pen_on;OnRev(OUT_C,50);Wait(TURN_TIME);Off(OUT_C);OFF_BRANK;pen_off //左折かつ描画
左右のタイヤで、大回りか小回りかが異なるため、右折も左折も、常に小回りである方を採用した。
筆跡を安定させるため、常にモーターの後進時に描画されるようにした。

**シ [#r49b7bde]
//シ
//シのノ
task main()
{
	pen_off        //一画目
	turn_right
	write_left

//移動
	OnRev(OUT_BC,50);	//移動
	Wait(500);
	Off(OUT_BC);
	OFF_BRANK

//シの丶
	pen_on  //二画目
	pen_off

//移動
	OnFwd(OUT_C,50);        //移動
	Wait(300);
	Off(OUT_C);
	OFF_BRANK

//シの丶
	pen_on  //三画目
	pen_off

//移動
	OnRev(OUT_C,50); //移動
	Wait(300);
	Off(OUT_C);
	OFF_BRANK

**ヤの最初の画 [#zc62c90c]
//ヤ
//移動
	OnRev(OUT_BC,50);	//移動
	Wait(250);
	Off(OUT_BC);
	turn_left
	OnRev(OUT_BC,50);
	Wait(500);
	Off(OUT_BC);
	OFF_BRANK

//ヤの⌒
	turn_right //四画目
	write_left

//移動
	OnFwd(OUT_C,50);
	Wait(300);
	Off(OUT_C);
	OFF_BRANK

**ゴの点と一画目 [#pfb0fbeb]
//ゴのてんてん
//移動
	OnRev(OUT_C,50); //移動
	Wait(300);
	Off(OUT_C);
	OFF_BRANK

//ゴの丶
	pen_on //五画目
	pen_off

//移動
	OnRev(OUT_C,50); //移動
	Wait(100);
	Off(OUT_C);
	OFF_BRANK

//ゴの丶
	pen_on //六画目
	pen_off

//移動
	OnFwd(OUT_C,50); //移動
	Wait(400);
	Off(OUT_C);
	OFF_BRANK

//ゴの一
	pen_on //七画目
	OnRev(OUT_BC,50);
	Wait(500);
	Off(OUT_BC);
	OFF_BRANK
	pen_off

**ヤの最後の画 [#zf78606d]
//移動
	OnFwd(OUT_BC,50);	//移動
	Wait(500);
	Off(OUT_BC);
	OFF_BRANK
	OnFwd(OUT_C,50);
	Wait(900);
	Off(OUT_C);
	OFF_BRANK

//ヤの/
	pen_on  //八画目
	OnRev(OUT_BC,50);
	Wait(500);
	Off(OUT_BC);
	OFF_BRANK
	pen_off

**コの二画目、三画目 [#zf78606d]
//コ
//移動
	OnRev(OUT_BC,50);	//移動
	Wait(500);
	Off(OUT_BC);
	OFF_BRANK
	OnFwd(OUT_C,50);
	Wait(600);
	Off(OUT_C);
	OFF_BRANK

//コの最初の画
	write_left    //九画目
	OnFwd(OUT_C,50);
	Wait(600);
	Off(OUT_C);
	OFF_BRANK

//移動
	OnRev(OUT_BC,50);	///移動
	Wait(500);
	Off(OUT_BC);
	OFF_BRANK
	OnFwd(OUT_C,50);
	Wait(600);
	Off(OUT_C);
	OFF_BRANK

	write_left    //十画目
	OnFwd(OUT_C,50);
	Wait(600);
	Off(OUT_C);
	OFF_BRANK

//移動
	OnRev(OUT_BC,50);	//移動
	Wait(500);
	Off(OUT_BC);
	OFF_BRANK
	OnFwd(OUT_C,50);
	Wait(600);
	Off(OUT_C);
	OFF_BRANK

**ナ [#k77e78bd]
//移動
	OnRev(OUT_BC,50);	//移動
	Wait(500);
	Off(OUT_BC);
	OFF_BRANK
	OnFwd(OUT_C,50);
	Wait(600);
	Off(OUT_C);
	OFF_BRANK

//ナの一
	pen_on //十一画目
	OnRev(OUT_BC,50);
	Wait(500);
	Off(OUT_BC);
	OFF_BRANK
	pen_off

//移動
	turn_right
	OnRev(OUT_BC,50);	//移動
	Wait(500);
	Off(OUT_BC);
	OFF_BRANK
	OnFwd(OUT_C,50);
	Wait(600);
	Off(OUT_C);
	OFF_BRANK

//ナのノ
	pen_off        //十二画目
	pen_on        //十二画目
	turn_right
	write_left

	pen_off
}


* 考察 [#a9e95bf1]
最初に何からどうしていけば良いかわからず、ロボット本体への工夫があまりできなかった。そうであるがゆえか、動きの大きさゆえに文字を小さくすることに苦労したり、バッテリー残量に書く長さ、移動する長さや角度が依存してしまい、ある程度書き終えたものをまた一から作り直したりする必要性が出てきてしまったり、プログラムの調整が大変難しかった。また、全体的に文字が大きくなってしまった。
また、頭の中に思い浮かべた動きと、ロボットの実際の動きが異なることが多数あり、頭の中で考えてどんどん作っていくより、何回も動かして試して調整を重ねる、ということの重要さを学んだ。
他の班や他の人の発表や、ロボット、プログラムを見ることで、今後の課題への解決方法について考えていきたい。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS