[[2015a/Member]] *課題 [#y723077e] 書道ロボットを作成し、自分の名前の7画以上の漢字を書く。今回は「見」を書いた。 *ロボット本体の説明 [#eea2c63b] -前後運動 モーターを1つ使用。車体を前後に走らせることで縦の線を書けるようにした。 #ref(./S__38232075.jpg,,20%) -横移動 モーターを1つ使用。ラックギアの上を歯車で走らせることで横線を書けるようにした。 -ペンの上げ下げ モーターを1つ使用し、タイヤとタイヤの間にペンを挟む形をとった。タイヤを回転させることによって、ペンを巻き上げ上下運動を可能にした。 #ref(./S__38232077.jpg,,20%) *工夫した点 [#d7786227] -車体バランス 前方に重量のあるアームを搭載したことにより、バランスが悪く車体が傾いてしまった。そこで後方に比較的重いパーツであるタイヤをとりつけ、車体全体にバランスをとった。 -アーム アームの右側にモーターをとりつけたため右側に重心が偏り安定しなかった。そこで車体と同様に左側にタイヤを取り付けバランスをとり安定した動きを可能にした。 #ref(./S__38232074.jpg,,40%) *プログラムの説明 [#mcee3360] まず、前後左右、ペンの上げ下げについてをマクロとして定義した。書き順はバラバラなため画像で示す。 #ref(./無題.png,,30%) /*ペンの上げ下げ*/ #define UP OnFwd(OUT_C);Wait(5);Off(OUT_C); #define DOWN OnRev(OUT_C);Wait(5);Off(OUT_C); /*左右の移動*/ #define MIGI(MIGI_TIME) OnFwd(OUT_B);Wait(MIGI_TIME);Off(OUT_B); #define LEFT(LEFT_TIME) OnRev(OUT_B);Wait(LEFT_TIME);Off(OUT_B); /*前後運動*/ #define GO(GO_TIME) OnRev(OUT_A);Wait(GO_TIME);Off(OUT_A); #define BACK(BACK_TIME) OnFwd(OUT_A);Wait(BACK_TIME);Off(OUT_A); task main() { // 1画目 MIGI(80); BACK(50); LEFT(80); GO(50); UP; // 移動 BACK(30); // 2画目 DOWN; MIGI(80); UP; // 移動 BACK(30); // 3画目 DOWN; LEFT(80); UP; // 移動 BACK(30); MIGI(30); // 4画目 DOWN; BACK(50); UP; // 移動 GO(40); MIGI(30); // 5画目 DOWN; BACK(40); MIGI(30); } *ロボによる作品 [#o5d98951] #ref(./_S__7299075.jpg,,50%) *問題点 [#bdc583ba] -動きがはやかったため毎回安定した動きでかけなかった -縦横の線はうまくできたが、斜めの線ができなかった。 -ペンの固定が甘く線がずれてしまった *反省 [#db54b956] 今回のロボットは、全体を通して安定性が低かった。ロボ本体の改良はもちろん、プログラムを工夫して安定性を高めなければならなかった。