#contents *課題1 [#j88c7d64] ロボットを組み立て、そのロボットで紙にペンで地名の漢字二字をかく。 **選んだ文字 [#se9796c3] 自分が東京都出身であることから「品川」という文字を選んだ。 *ロボットの説明 [#k2d49eba] **前面 [#m5282e16] #ref(image1-min.jpeg) ペン先が2つの前輪の間にあることで回転時のペン先の位置ずれが起こらないようにした。 ペンを上げるときにペン先が別のほうを向かないようにブロックで固定した。 ペンを上げるときにペン先が別のほうを向かないようにブロックで固定した。ペン自体は棒状の部品に輪ゴムの部品でうまく括り付けて固定した。ゴムの摩擦や縛り具合からペンはうまく固定された。 また、ペンは車輪を動かすモーターとは別のモーターを搭載し、そのモーターの動きによって上げ下げしている。このモーターを車体の中央部に搭載することで先ほど述べた位置ずれを防ぐだけでなく、車体に重さの偏りが出ないようにした。 **背面 [#ud09a412] #ref(image3-min.jpeg) 後輪を2つにして重い上部を支えられるようにしていて安定するようにした。 **側面 [#d33093cd] #ref(image4-min.jpeg) 後輪の部品に負荷がかかりすぎないように若干前重心にした。 **上面 [#if8cf6c1] #ref(image5-min.jpeg) コンパクトで安定的な車体になっている。これによって小回りもききやすい。 **下面 [#h08736e6] #ref(image6-min.jpeg) 当然だが車輪より床面側に部品が飛び出ないようになっていて、摩擦による車体の動きの妨害をなくしているので毎回場所がずれるといったことはおきない。 *プログラミング [#j098512b] #define penUP OnFwd(OUT_C,-20);Wait(100);Off(OUT_C); //ペンを上げる #define penDW OnFwd(OUT_C,20);Wait(100);Off(OUT_C); //ペンを下げる #define kuchi OnFwd(OUT_AB,20);Wait(100);Off(OUT_AB); //多用する進む動作(短) #define forward OnFwd(OUT_AB,20);Wait(1000);Off(OUT_AB); //多用する進む動作(長) #define rotate RotateMotorEx(OUT_AB,20,200,100,true,false);Wait(100);Off(OUT_AB); //ペン先固定回転 ペンの上げ下げやよく使う前進、機体の回転のプログラムを定義することによってメインのプログラムを簡潔にした。 task main() { repeat(4){ kuchi rotate //品の口 } penUP forward penDW //品の一つ目の口から二つ目の口へ移動 repeat(4){ kuchi rotate } penUP forward penDW //品の二つ目の口から三つ目の口へ移動 repeat(4){ kuchi rotate } //品 penUP forward //品から川へ移動 penDW forward //川の一画目 penUP OnFwd(OUT_A,30); Wait(2000); Off(OUT_A); OnFwd(OUT_B,-30); Wait(2200); Off(OUT_B); OnFwd(OUT_AB,20); Wait(2000); Off(OUT_AB); //川の二画目へ移動 penDW forward //川の二画目 penUP OnFwd(OUT_B,-30); Wait(2000); Off(OUT_B); OnFwd(OUT_A,30); Wait(1700); Off(OUT_A); OnFwd(OUT_AB,20); Wait(2000); Off(OUT_AB); //川の三画目へ移動 penDW forward //川 } 定義文とrepeatプログラムによってメインプログラムを簡潔にしてわかりやすくなるようにした。 *書けた文字 [#y96ac1ae] #ref(s_image1-min.jpeg) 全然品川に見えない汚い字ができてしまった(笑) *工夫した点 [#h47151ac] ・機体が回転する際にペン先の位置がずれるのを防ぐためにモーターによって動く2つの車輪の中央にペン先が来るようにした事。 ・機体後ろに重心が寄ってしまったのでそれによって倒れないように後ろの車輪も2つにした事。 *苦労した点 [#he247880] ・初回に機体を作った際に機体が大きくなってしまったのでそれをなるべく小さく、動きやすくできるようにして、判別できる文字(笑)になるようなプログラミングにした事。 ・機体の後ろに重心が寄ってしまっていた問題の解決をした事。 *感想 [#ue418b22] 最初かなり簡単な字で物足りないかと思ったが、ロボットの組み立てでかなり手こずって大変だったことや品川の品という文字の口3つを判別できるように配置することで苦労した。ロボットで文字を書くにはプログラミングだけでなく機体の重心なども考えなければならないので非常にたいへんだと思った。 結果的に書けた字の品という字の口は角が丸みを帯びてしまい、口3つの配置がいまいちできれいに配置できなかったことで簡単に判別できない文字になってしまった。この原因はプログラムでいい位置まで動き、ペンの上げ下げを車体が曲がる際に毎回するようにプログラミングできなかったせいだと思われる。時間が許せば前進の動きなどをパワーと秒数によって定義するのではなく、車輪の回転角で定義し、ペンの上げ下げを多く行うようなプログラムにしてこれよりも人に判別してもらいやすいような文字を書きたかった。