Ds
恵
今回はシンプルイズザベストをテーマに作成(笑)
なるべく無駄のない形に。
組み立てガイドにあるローヴァーロボットのドライブベースにある後ろの青いパーツを外し、タイヤを付けた(シンプルな)構造です。
なおタイヤにしたのは、タイヤの方が小回りが利くため。
青いパーツを外した部分にモーターを取り付け、モーターに直接黄色のアームを取り付けただけの物を使用。(分解もし易く、取り付け、取り外しも楽なのも利点)
ある程度高さを付け(低いとペンの取り付け及びペンの上げ下げが難しいため)、RCX2.0本体に固定。これによりモーター自体のブレを押さえ、壊れにい仕様にしました。
また黄色のアームに突起物を取り付け、ここにゴムを引っ掛けて、ペンを固定。(これまた取り付け、取り外しが楽な仕様)
↑こんな感じ
眼鏡を描こうと思ったが、直角を描くことはかなりの難易度だとわかったため(ペンが後ろにあるため、回転した後ともとの位置に戻す必要があるため)、半月眼鏡風に変更(笑)
↓はイメージ図
ちなみに初めての作品は一枚の紙に何度も繰り返し描いていたため原型をとどめておらず、掲載不可に(泣笑)
なおプログラム作成の際に先輩方のものを参考にして作りました。
#define down SetPower(OUT_B,0);OnFwd(OUT_B);Wait(30);Off(OUT_B); //ペンを下げる #define up SetPower(OUT_B,2);OnRev(OUT_B);Wait(30);Off(OUT_B); //ペンを上げる(上げるときは出力を少し強め、しっかりと上げるように設定) #define outline SetPower(OUT_A,7);SetPower(OUT_C,7);OnFwd(OUT_C);Wait(760);Off(OUT_C); //輪郭となる円を描く(片方だけ動かすことで大きな円を描くよう設定) #define go(t) OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C); //前進 #define back(t) OnRev(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C); //後退 #define turn_r(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C); //右折 #define turn_l(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);Off(OUT_A+OUT_C); //左折 task main() { outline;up; //まずは輪郭 turn_l(60);go(25) //続いて眼鏡を作成 down;go(53);turn_r(25); //一気に眼鏡を描いていきます。 go(25);turn_l(25); // ↓ go(25);turn_r(25); // ↓ go(25);turn_l(25); // ↓ go(53); //眼鏡作成完了 up;back(170);turn_l(90);go(120); //続いて鼻へ down;go(30);up; //鼻完成 back(50);turn_l(84);back(10);down;go(90); //ここで口を描き似顔絵作成終了!! }
ポイントになったのは鼻と口を描くときのbackで、これを入れないと鼻や口がとんでもないところに出来てしまった。(^^;)
移動後のペンの位置を考え、微調整した。結果は下の似顔絵を見てください。
また、最初に動作を指定していたので、プログラムもすっきりとした物にすることが出来た。
最初はかなり複雑なものを描こうとしたのだが、結局一番簡単な形におさまってしまったorz なんか、Ds君に全然似てないし、申し訳ない(T.T)
それでも少なくとも髪の毛はきっちり描くようにした。
#define GO OnFwd(OUT_A+OUT_C); //前進する #define STOP Off(OUT_A+OUT_C); //止まる #define UP OnFwd(OUT_B);Wait(40);Off(OUT_B); //ペンを上げる #define DOWN OnRev(OUT_B);Wait(30);Off(OUT_B); //ペンを下げる #define BACK OnRev(OUT_A+OUT_C); //後進する #define CIRCLE OnFwd(OUT_C);OnRev(OUT_A); //反時計方向に回る #define REVCIRCLE OnFwd(OUT_A);On(OUT_C); //時計方向に回る task main() { SetPower(OUT_B,1); SetPower(OUT_A,7); SetPower(OUT_C,7); OnFwd(OUT_C); //まず顔の輪郭 Wait(700); STOP; GO; //髪の毛 Wait(130); STOP; UP; CIRCLE; //目を描くため一旦180度回る Wait(171); STOP; GO; Wait(150); STOP; DOWN; //ここから目を描く GO; Wait(30); STOP; UP; GO; Wait(30); STOP; DOWN; GO; Wait(30); STOP; UP; //目終わり BACK; //鼻を描くため後進 Wait(120); STOP; REVCIRCLE; //回る Wait(85); STOP; GO; //鼻の位置を調整 Wait(100); STOP; DOWN; //鼻を描く GO; Wait(30); STOP; UP; //鼻終わり BACK; //口を描くための微調整 Wait(60); STOP; CIRCLE; Wait(85); STOP; GO; Wait(40); STOP; DOWN; //口を描く GO; Wait(40); STOP; UP; //全て終わりました }
プログラムが少し長くなってしまったが、それなりにシンプルにすることが出来た。
薄いですがご容赦を・・・(^^;)
恵君簡略化して済まない・・・(;;)
眼鏡はまぁまぁ思惑通りかな?
微調整がうまくいって、鼻と口もそれなりにいい所にかけてヨカッタ(^^)
Ds君ごめん;;
耳目口鼻がずれるのを防ぐため前進と後進を駆使したのでそんなに変な顔にはなっていない
また、回転時間をうまく調節して、目と口が平行になるようにすることが出来たのもよかった。
直角を断念して半月眼鏡にしたものの、斜めになってしまい残念。しかも斜めになった為に、鼻を描くのに必要な時間を決めるのが大変だった。
またペンの固定がしっかりしていなかった(というよりゴムの付け方によってずれることがままあった)のも問題点の一つだった。
次回は直角に描けるようなプログラムを組めるようにしたい。
(そのためにはアームの位置や、アームの上げ下げとバック等の組み合わせを考えてみるべきか。となるとロボットをシンプルにしすぎたのも問題だったかも) byDs
なんか、意外と微調整が難しい... というか自分達のロボットを創る前に先輩達が創ったロボットを参考にしようとしすぎてへんな先入観ができてしまい自分達だけのオリジナリティがなくなってしまったのは残念だ;; by恵