目次
#contents

* 課題1 [#c1394a76]

住んだことのある土地や生まれた地名等身近にかかわりのあった土地・地名の中から2文字以上かつ10画以上のものを選び、それを書くロボットを作る。そこで私は埼玉県にある「和光」という地名にした。

* ロボットの概要[#m80aba37]
** 車体の説明 [#zbd15b35]
モーターAにペンをつけてペンの上げ下げをできるようにし、モーターBとモーターCにタイヤをつけて、後方に一つタイヤを付けた三輪車型のロボットにした。ペンは輪ゴムで左右から動かないように固定した。

前輪のタイヤ間は約11cm、前輪のタイヤの直径は約5.5cm、前輪タイヤ間の中点と下した時のペン先は約5.5cmであった。

モーターA(矢印はペンの動き方)↓
#ref(./16630v2.jpg,10,モーターA)

モーターA別角度↓
#ref(./16632.jpg,10,左右から輪ゴムでペンを固定)

後輪↓
#ref(./16634.jpg,10,後輪は自由に動くようにした)

ロボット全体↓
#ref(./16631.jpg,10,ロボット全体写真)

NXT本体は動いた時に落ちたりしないように次の画像のように取り付けた。
#ref(./16633.jpg,10,NXT本体を取り付けたときのロボット全体写真)
ロボットの全体写真↑

** 今回作ったロボットの反省点 [#l8b1c7f1]
今回作ったロボットの反省点はNXT本体の取り付ける位置が後ろだったため、後輪に重心が乗ってしまいモーターBCに負荷がかかることが挙げられる。勢いをつけすぎた状態で左右に曲がると車体が傾いてしまうことが多々あった。

** ロボットの没案 [#x1c416ea]
今回使ったロボットを作る前に地面と平行に縦移動するモーターと横移動するモーター、そしてペンの上げ下げをするモーターの3つのモーターを使ったロボットを作った。実際に動かしてみると、重さに耐えきれず倒れてしまったり、タイヤが外れてしまったりと文字を書くどころの話ではなかった為、没とした。
#ref(./16094.jpg,10,没になったロボット)
ロボット没案↑

* プログラム[#y4786ea4]
まず、前提として以下のようなプログラムを定義した。

   #define ageru RotateMotor(OUT_A,50,-90)			//ペンを上げる

   #define sageru RotateMotor(OUT_A,50,90)			//ペンを下げる



そして「和光」の書き順は次の写真のようにした。
#ref(./16650.jpg,10,和光の書き順)
赤の数字と矢印で「和」の字の書き順と向きを示し、青の数字と矢印で「光」の字の書き順と向きを島している。
赤の数字と矢印で「和」の字の書き順と向きを示し、青の数字と矢印で「光」の字の書き順と向きを示している。

** 「和」のプログラム [#f8ef9d5c]

	ResetTachoCount(OUT_ABC);
	RotateMotor(OUT_BC,-50,60);			//和の一画目 
	ageru;
	RotateMotor(OUT_BC,50,120);	
	RotateMotor(OUT_B,-50,90);RotateMotor(OUT_C,50,90);
	RotateMotor(OUT_BC,-50,120);
	sageru;
	RotateMotor(OUT_BC,50,84);			//和の二画目 
	ageru;
	RotateMotor(OUT_BC,50,140);
	RotateMotor(OUT_B,-50,180);RotateMotor(OUT_C,50,180);
	RotateMotor(OUT_BC,-50,200);
	sageru;
	RotateMotor(OUT_BC,50,160);			//和の三画目 
	ageru;
	RotateMotor(OUT_BC,-50,84);
	RotateMotor(OUT_B,-50,40);
	sageru;
	RotateMotor(OUT_BC,50,104);			//和の四画目 
	ageru;
	RotateMotor(OUT_BC,-50,84);
	RotateMotor(OUT_B,50,40);
	RotateMotor(OUT_C,-50,40);
	sageru;
	RotateMotor(OUT_BC,50,62);			//和の五画目 
	ageru;
	RotateMotor(OUT_B,50,300);
	RotateMotor(OUT_BC,-50,80);
	sageru;
	RotateMotor(OUT_BC,-50,50);			//和の七画目(横)
	ageru;
	RotateMotor(OUT_BC,50,150);
	RotateMotor(OUT_B,-50,150);
	RotateMotor(OUT_C,50,150);
	RotateMotor(OUT_BC,-50,80);
	sageru;
	RotateMotor(OUT_BC,-50,83);				//和の六画目 
	ageru;
	RotateMotor(OUT_BC,50,200);
	RotateMotor(OUT_B,50,150);
	RotateMotor(OUT_C,-50,150);
	RotateMotor(OUT_BC,50,30);
	sageru;
	RotateMotor(OUT_BC,-50,83);			//和の八画目 
	ageru;
	RotateMotor(OUT_BC,50,180);
	RotateMotor(OUT_B,50,180);
	RotateMotor(OUT_C,-50,180);
	sageru;
	RotateMotor(OUT_BC,-50,83);			//和の七画目(縦)
	ageru;



** 「光」のプログラム [#hb728070]
	RotateMotor(OUT_BC,-50,50);
	ResetTachoCount(OUT_ABC);
	sageru;
	RotateMotor(OUT_BC,-50,62);			//光の三画目 
	ageru;
	RotateMotor(OUT_BC,50,100);
	RotateMotor(OUT_C,50,180);
	RotateMotor(OUT_B,-50,180);
	sageru;
	RotateMotor(OUT_BC,-50,400);			//光の四画目 
	ageru;
	RotateMotor(OUT_BC,50,150);
	RotateMotor(OUT_B,50,180);
	RotateMotor(OUT_C,-50,180);
	sageru;
	RotateMotor(OUT_BC,-50,62);			//光の二画目 
	ageru;
	RotateMotor(OUT_C,50,180);
	RotateMotor(OUT_B,-50,180);
	RotateMotor(OUT_BC,50,150);
	RotateMotor(OUT_B,50,180);
	RotateMotor(OUT_C,-50,180);
	sageru;
	RotateMotor(OUT_BC,50,150);			//光の一画目 
	ageru;
	RotateMotor(OUT_B,50,300);
	RotateMotor(OUT_C,-50,300);
	sageru;
	RotateMotor(OUT_BC,50,150);			//光の五画目 
	ageru;
	RotateMotor(OUT_BC,-50,150);
	RotateMotor(OUT_B,50,20);
	sageru;
	RotateMotor(OUT_BC,50,100);
	RotateMotor(OUT_B,50,200);			//光の六画目 
	ageru;





* まとめ [#f3fd2ff5]
** 実際に書いたもの [#k7f13dbf]
実際にロボットを動かして書いた「和光」の字は下の写真のようになった。


#ref(./16657.jpg,10,実際にロボットで書いた「和光」)
試行回数と微調整を加え続けて一番出来のいい「和光」を選んだが、あまりうまい字とは言えない。
「和」の字がかすれ、斜めになってしまった。
「光」の字は、なぜか「和」がかすれているのに対して濃く書けている。少し横長になってしまった。

** 考察 [#ia6d9965]
・今思い返せば、字を書くときに下に敷いていたものが少しデコボコしていたことにより「和」の字だけかすれてしまったのではないかと思う。

・同じパワーでモーターを回す命令をしてもどちらかのモーターの回転数が足りず、曲がってしまう事が多々あった。

・ペンの位置によってはペン先が引っかかてしまい前輪が浮いてしまった。恐らく重心が前方(モーターの真上あたり)にあれば浮かないと考えられる。上記の通り、重心が後ろにあったため浮いてしまった。(参考:下の写真)
#ref(./16661.jpg,10,図)

** 感想 [#l86611a7]

没案のロボットやほかの受講生が作っていたロボットのようにXYZ軸で動いて字を書くロボットの方が字を書くことに適したロボットだと分かった。今回使用したロボットはA4の紙に書くにはあまり適していない。何故なら、最初にロボットを置く位置が違えばA4の神に収まらなかったり、前輪のタイヤ間が約11cmあるため旋回するときに始点がずれたりして、微調整を加えていく必要があり色々とプログラミングが大変であったりと、苦労するところが多かったからだ。それでも一応字は書くことが出来たので良かったと思う。期限は過ぎてしまった上に、妥協点や改善点が多いが…。

また、限られた機材でいかに課題に適したロボットを作るかが一番の課題である。どのようなことをするロボットを作りたいのか、そのロボットを作るためにはどの機材をどのように組み合わせる必要があるのかと、想像力と創造力が必要だと感じた。

次回からは、限られた機材をうまく使い課題に適したロボットを作り妥協点や改善点が少なくなるようにしたい。

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