◇目次◇
課題1:書道ロボット 【水】†
- A4の紙に『水』または『木』を上手に描くロボットを作成せよ。
- ただし、一般的な書き順に従って書くこと。また、どのようなペン(or 筆)を(1本だけ)使ってもよいが、
それ以外はキットに含まれている部品のみを使用すること。モータは3つ使ってもよい。
- キットに含まれる輪ゴムはそれほど丈夫ではないので、
使う場合には力をかけすぎて切れてしまわないように注意すること。
完成までの過程&反省†
作成者:トシ/カツヤ/ヨコチン/J
ロボット名:HG
作成日時:5月22日(月)
←できたロボット!!
←余計なブロックは気にせずに。
プログラム†
プログラム作成者:トシ/カツヤ/ヨコチン/J
作成日時:5月22日
task main()
{
OnFwd(OUT_A+OUT_C);Wait(200); //水の「|」
OnFwd(OUT_C);OnRev(OUT_A);Wait(250); //回転
OnFwd(OUT_A+OUT_C);Wait(050); //はねる
Off(OUT_A+OUT_C);
OnFwd(OUT_B);Wait(010);
Off(OUT_B); //ペンを上げる
OnFwd(OUT_A+OUT_C);Wait(100); //次の画まで移動
OnFwd(OUT_A+OUT_C);Wait(100); //次の画まで移動
OnFwd(OUT_C);OnRev(OUT_A);Wait(280); //回転
Off(OUT_A+OUT_C);
OnRev(OUT_B);Wait(025); //ペンを下ろす
Off(OUT_B);
OnFwd(OUT_A+OUT_C);Wait(080); //水の「フ」の「ー」
OnFwd(OUT_C);OnRev(OUT_A);Wait(280); //回転
OnFwd(OUT_A+OUT_C);Wait(100); //水の「フ」の「ノ」
OnFwd(OUT_B);Wait(010); //ペンを上げる
Off(OUT_B);
OnRev(OUT_C+OUT_A);Wait(250); //バックで次の画まで移動
OnRev(OUT_C);OnFwd(OUT_A);Wait(010); //回転
Off(OUT_A+OUT_C);
OnRev(OUT_B);Wait(025); //ペンを下ろす
Off(OUT_B);
OnFwd(OUT_A+OUT_C);Wait(070); //水の「く」の「/」
OnFwd(OUT_B);Wait(010); //ペンを上げる
Off(OUT_B);
OnFwd(OUT_A);OnRev(OUT_C);Wait(180); //回転
OnFwd(OUT_A+OUT_C);Wait(010); //回転によってうまれた誤差を修正
OnRev(OUT_B);Wait(025); //ペンを下ろす
Off(OUT_B);
OnFwd(OUT_A+OUT_C);Wait(120); //水の「く」の「\」
OnFwd(OUT_B);Wait(010); //ペンを上げる
Off(OUT_B)
Float(OUT_A+OUT_C); //水の完成
}
コメントをお願いします。
工夫した点†
- 特にこだわったのは書き順、水の跳ねは等は二回に分けて書けるが、
つなぐとこはつなげ、離すところはペンを離した。
- 具体的に言うと、「水」の「フ」の繋ぎ部分をペンを放さずに書き、
「|+跳ね」部分も同様にし、「く」の繋ぎ部分は離して書いた。
- ペンの上げ下げはタイヤを用い、回転した時のブレを最小限にするため、
キッドの真ん中にくるように工夫した。
- 始めはキッドの後部でペンの上げ下げをしたが、回転したときに、
円を描いて期待している軌道よりブレてしまい、
プログラムがより複雑になることがわかったため、真ん中に置けるキャタピラにした。
- ペンの上げ下げの時に、ペンを上げる時間は少しにし、ペンを下ろすのは、
上げるのよりは長めめにすることにペンと紙の間の空間をなるべく回避するようにした。
- そうしないとペンが神まで届かずに、書けないということが生じたため。
- RCXが重く、キッド全体のバランスを保つため、
少々見苦しいブロックがRCXの反対側にあるけど、見かけにはよりません。
- 左右のモーターの回転力の差もあるかもしれないが、バランスがとれないと、
まっすぐに進まずに、どちらかに傾いてしまうため、少々見苦しいブロックを付けた。
苦労した点†
- キッドを作るのが本当に難しかった。
- タイヤ(大)のキッドをまず作ったが、動きが早く断念、次にタイヤ中を作ったが、
ペンの上げ下げをする場所が限られたために再び断念、最後にキャタピラにしたが、
これは真ん中が丁度開いていたため、そこでペンの上げ下げをするとうまい具合に行き、
2回の失敗の末に、結局キャタピラにした。
- キッドができたらあとはプログラミングのみで、比較的スムーズ に進行。
- スムーズと言えど、プログラミングもWait()の時間が難しく、
何度も何度も失敗しつつ、
徐々に徐々にプログラミングを組んでようやくできた。
キッドに合わせたプログラミングというのは難しい。
- キャタピラなので、紙の材質などによって摩擦が異なり、スムーズにいかない場合などがあった。
- キャタピラはゴム質でできており、普通の紙だとあまり摩擦がなく回転が足りなかったりした。
今回は画用紙で練習して試行錯誤してきたので、本番も用意した画用紙に書いてうまく(?)いった。
- 一回目に集まったときは憂鬱になるくらい成果が出なく、二回目に集まってからやっと成果が出たした。
- 結局3、4回集まったが…、やはりロボティックスは敬虔だと思った。
やるごとに個々人の能力(レゴ作成力+プログラム力)が向上。
完成したときは、「やっと終わった…(涙)」
ようやく完成するとやはりうれしいものである。
試行・思考過程†
- 上記にあるように、始めペンを後ろに付けたが、プログラムがより高度になることが分かったので、
上にあるようにペンを中心に設置するようにし、最低限のプログラムでできるようにした。
- もっといいプログラミングの方法があったかもしないが、そこは勉強不足である。
今回は今回で学んだものがあるのでそれを次からに生かしたい。
- これも上記にあるが、タイヤでやろうとしたが、キッドがはやく動きすぎるためキャタピラに変更。
- TAのロボットみたいにやれば良かったのかもしれない…、あのようなやり方があることには正直驚いた。
完成した「水」†
- 右側の「く」と左側の「フ」との位置関係が悪くなってしまった。
- これはプログラムが甘かったためである。
改善策としては、「水」の「フ」を書き終えたときに少し回転し、
バックするときの角度をうまく調節すれば「フ」と「く」のバランスがうまくいっただろう。
- ペンはタイヤで上げ下げをしたけど、押さえが弱く、点線になってしまった。
- もっと固定したものでやれば改善されただろう。例えばゴムで上げ下げするペンを固定する等。
- やはり、跳ねと「フ」の繋ぎ部分が難しかったです。
- 今回はキッドの真ん中でペンの上げ下げをしたが、
そうでなければ水の「フ」は繋げて書けなかっただろうし、「跳ね」もつなげなかっただろう。
コメントをどうぞ
&counter([total|today|yesterday]);