長男君、小学校の自由研究をやらないといけないのですが、本人に「テーマを何にする?」と聞いても毎回違って、しかも中々着手しない…(ーー;)
そこで、私がちょっとアイディアを授けるということになり、先日購入したWeDo2.0を使って自由研究をすることにしました。
邪魔ばかりする次男君には妻君と電車に乗って遊びに行ってもらいました。
これで静かに自由研究できます。
今回、自由研究を通じて長男君に理解してもらうことを次の二つに決めました。
1. 「歯車の仕組み」の理解
2. 「プログラムの動き」の理解
さぁ始まります( ̄▽ ̄)!
まず、1の「歯車の仕組み」です。
モーターを縦置きにするため、車輪の回る方向を90度変える必要があります。
また、歯車を組み合わせて動力を伝達する必要もあります。
これらをヒントのみ与えて自分で考えさせるようにしてみました。
→長男君、すぐに「分かんな〜い」とか「も〜やめる〜」とか言うのでホトホト疲れました…(T-T)
どうも機械工学系はさほど興味がないのか苦手なようで…
→モーターを回して、普通の歯車同士を噛み合わせてみます。
あまり噛み合わせがよくないので上手く回りません。
→続いて「傘歯車」を使います。するとスムーズに回ります。
これで、歯車の向きを直角に曲げるときには傘歯車を使うことを理解しました。
→取り付けです。
車輪を先に取り付けて大丈夫かいな…
→ひとまず傘歯車部分が完成しました。
→続いて、歯車を組み合わせて動力を伝達させます。
→歯車の組み合わせは色々あるので、結構試行錯誤を繰り返しました…
試行錯誤で長男君の集中力が切れ切れになり大変でした…(T-T)
ここまでで理解したことをメモらせます。
→もっと綺麗な字で書かんか〜い(^-^;
→どんどん作っていきます。
この辺りは単なるLEGOの組立なのでサクサクやっていきます。
→ちなみにこちらが前です(つまり
RR(訂正)RF!って実際にはRFなんてないか…)
青いLEDは他の色で光らせることが可能です。
その上の目玉があるパーツがセンサーになっていて、障害物を検出します。
→部品が少なくプロペラ部分は難しいので、先日私が作ったものを使いました。
ですがその他の部分は「designed by 長男君」ですd( ̄  ̄)
→プロペラの歯車も傘歯車に噛み合わせます。
→ひとまず完成。ここまで2時間。
お昼になったけど、あれ?妻君がいない…
あーー!お昼ご飯どうすんのー?Σ( ̄。 ̄ノ)ノ
…と私があたふたしている間、長男君はお弁当を作ってました(´・ω・`)
→「ねるねるねるね」のような感じで水を混ぜてゼリー?グミ?のようにしてかたどります。
さてさて、昼食、昼食。
冷蔵庫やパントリーを物色してみた結果、ミートソーススパゲティならできそう(^-^;
→ふー、なんとかできました d( ̄  ̄;)
→長男君、召し上がれ
ってフォークの向き逆だし…orz
普段、食べる専門で、料理は全く作れないのでこんなものでも大変でした。
妻君に感謝です(^-^)
続いてプログラムです。
長男君にどういった動作にするか仕様を決めさせます。
→「三びょうまえにすすんで しょうがいぶつがあったらとまって なきごえをだして 三びょううしろにさがる。それを五かいくりかえす」という仕様にしました。
→一見するとこれで大丈夫に見えますが、これだと、5回繰り返した後、モーターが止まりません(・_・;
→繰り返し後、モーターを止めるブロックを追加します。
その後、「なきごえをだすときにLEDがあかくひかるようにする」という仕様を追加。
→赤のブロックが「ガーッ」という鳴き声を出すブロックなので、その直前にLEDを赤くするブロック(四角に「9」となっているブロック)を追加しました。
また、その二つ前にLEDを青くするブロックも追加しました。
ですが、これだとガーッと鳴いている間だけでなく、鳴き終わった後もずっと赤のままです。
→ガーッと鳴いた後、青に戻すブロックを追加して直しました。
…が!ループの最初にも青にするブロックを追加しています。
LEDの初期状態は青で、鳴いた後に青に戻しているので、このブロックは冗長です。
→ただ、LEDの状態の初期値を最初に設定するということは変数の初期化をしっかり行うということにつながるので、長男君の意思を尊重し、ループの外に出して初期化することを示唆しました。
これで完成です(๑・̑◡・̑๑)
さぁ、走らせます(^O^)/
→プロペラを回しながら前に進みます。
→障害物の手前でストップ!
→LEDが赤く🛑なり、ガーッと鳴きます!
→3秒後退します。
この動きを5回繰り返します!
→繰り返し後、停止します。
おー!
ちゃんと仕様通りに動きました(*´∇`*)
このプログラミングは15分ほどで完了しました。
もう長男君、面白がって、この後、iPadのマイクを使って手を「パン」と鳴らすと止まるように改造したりしてました。
→本人は「止まれ!」と言って止めてましたけど( ̄▽ ̄;)
プログラミングのブロックの使い方がまだ全て分かっているわけではない(スターターキットには極一部のブロックしか説明がない)ので、例えば、「障害物にぶつかりそうになるか、音が鳴ったら、止まる」といった「条件分岐」や「または(or)」の条件指定をどうするのかはまだ分かっていません。
Webに情報があれば良いのだけど。
さぁて、これにて今回の自由研究で理解すべきことは一通り行いました(プログラミングの条件分岐は今後の課題とします)。
後はレポートにまとめるだけです。
…が!これがまた大変そうです(・_・;
妻君達も帰って来たので本日はこれにて終了し、翌日にプログラムのデバッグで何をしたかをメモらせました。
途中の写真をプリントアウトしたので、今週末、それらを切り貼りし、メモを清書して自由研究完了とする予定です d( ̄  ̄)
長男君がプログラミングに興味を示して自分で色々と改造したりしたのは思わぬ収穫でした。
まだ使っていないブロックもあるので、使い方を教えれば面白がってやってくれるかも、という淡い期待をしていますが、長男君は「こうしよう」とか言ったら「いや」と言う、超めんどくさい性格なので言い方を工夫しないといけません。
→こっちが超めんどくさいわ!(-᷅_-᷄๑)
まぁ、焦らずやっていきます ( ̄▽ ̄)
ブログ一覧
Posted at
2017/08/16 04:40:33