2018b/Member

目次

ロボットの説明

全体図及び本体

全体

キットに付属する説明書に掲載されているものを素体にした。安定的に動作したが、細かい動きをする、ということには不向きであったとも考えられる。

アーム

全体

ペンを支えるアームは、ペンの太さなどを考慮し、隙間に入れて固定するようにした。補強のため、ゴムを使って固定している。モーターによってペン先と紙面の着脱ができる。位置が、車体から見て右側にあったため、プログラムの設定が比較的複雑になってしまった。

選んだ文字

全体

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

プログラム

定数定義

 #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 //左折かつ描画

左右のタイヤで、大回りか小回りかが異なるため、右折も左折も、常に小回りである方を採用した。 筆跡を安定させるため、常にモーターの後進時に描画されるようにした。

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

ヤの最初の画

	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

ゴの点と一画目

	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

ヤの最後の画

	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

コの二画目、三画目

	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

	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_on        //十二画目
	turn_right
	write_left
	pen_off

}

考察

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


添付ファイル: filemoji.jpeg [詳細] filearm.jpeg [詳細] filehontai.jpeg [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-12-09 (日) 15:03:53 (6d)