こんにちは、StuTです。
今回はLEGO BOOSTの宿題第二弾Vernie編1回目を記事にしていきます。
▼第一弾はこちら
【LEGO BOOST】プログラミング学習 MTR4 宿題1回目
私がこの宿題を始めた理由等も上に書いているのでいるので、詳細はそちらをご覧いただければと思います。
今回もお題の動きをLEGO BOOSTでプログラミング(実装)してみてください。
LEGO BOOST自体をご存知ない方は以下の商品リンクから情報をご確認いただければと思います。
本記事が、LEGO BOOSTでのプログラミング学習の一助となれば幸いです。
▼LEGO BOOSTの商品情報はこちらから
LEGO BOOST商品情報
宿題の内容
今回のテーマは「はじめまして、僕Vernie!」です。
毎度チープなタイトルですが(※)。
※この後の動画もそうですが、クオリティは最低限です。ご承知おきを。
使用したLEGO BOOSTプログラムは下図のものです。
宿題動画
息子に協力してもらってとった今回の宿題動画は以下の通りです。
宿題説明
言葉で動きを説明すると以下の通りです。
- 何か声(動画ではHello)をかけるとVernieが動き出す。
- 自己紹介をして、こちらの名前を聞く。
- 答えられた名前に対して反応する(It’s nice to meet you.で止まる)。
- こちらから握手をしてあげると、動き出す。
- 面白いものをみたいかと聞く。
- 「みたいよ」と答えてあげると、ダンスを見せてくれる。
プログラミングのねらい
今回のプログラミングステージはVernieがVernieらしくなって、最初のプログラミングステージなので、あまり高度な命令は用意されていません。
しかし、だからこそ、いろんな命令を試してみるべきだと思うので、できるだけいろんな命令パーツを使うようにしています。
まず、こちらから、声を出したり、握手をしたりするところは、単にスリープ時間を置くだけでなく、実際の音声や動きに反応するようにトリガー(命令パーツではオレンジ色のもの)を仕込んでいます。時間だけの制御だと、キャッチボールの柔軟性がだせないので、トリガーを積極的に使っていくことが大事だと思っています。
Vernieの音声(命令パーツでは紫色のもの)も挨拶系、会話系、質問系をすべて使っています。
動きの部分(命令パーツでは緑色のもの)においても、顔を動かす命令と、体を移動する命令を組み込んでいます。体を回転するところでは、数字が角度を意味することを理解しつつ、何度まで(360°、720°、1080°)指定できるのか、指定した通りの動きをしているかなど、使っているパーツの仕様を理解するのもプログラミングにおいてはとても大事なことだと思うので、是非いろいろ試しながら、課題の動きを実装してみてください。
解答
今回実際に作成したプログラムは、下図の通りです(見にくいので以下に拡大版で順番に説明していきます)。
同じ動きをするプログラムは他にもあると思うので、参考程度にみていただければと思います。
他の作り方でできた場合、どちらの方が作りやすかったのか、何か作り替える際にどちらの方が修正しやすいか等で、どちらのプログラムがよかったのかを考えても良いかと思います(実際のプログラミングでも、同じ動きをするものでも、どちらの方が作るコストが低く、拡張性にすぐれているかというのが、どうプログラミングするかを決める重要な要素で、その工程自体を設計と呼んでいます。)。
今回は、ループなどの制御ができなさそうなので、全て直接のプログラムになっています。
以下に三つのパートに分けた(※)拡大画像とともに詳細を説明していきます。
※分け方にプログラミング上の意味はなく、ただ見やすさの観点で分けています。
①パート
①のパートでは、まず、音声での起動としたかったので音量のトリガーを仕込んでいます。
数字の「5」は、反応する音量の閾値を示しているので、他の物音に反応しないようにちょうど良い音量に調整してもらえればと思います。細かいですが、こういうところが、作りたいものを思い描いたレベルで実現するための非常に重要な要素だと思っています。大きなフローの流れも大事ですが、ディティールでクオリティに差がつきます。
トリガーのあとは、喋っている途中で次の動きが始まってしまうと不自然になるので、今回は一律3秒のスリープを入れています。
次は、頭の動きを三つ並べて、Vernieの起動を表現しています。
起動後はVernieの自己紹介パートに進んでいきます。ここも三つの命令と、それぞれに複数の音声バリエーションが用意されているので、一度全て試して、宿題のようになるように並べていきます(自分でストーリーを考える時も、まずは全部聞いて試してみることが大事ですね。実際のプログラミングでも、用意されているものの仕様がどうなっているのか把握するのがまずは重要なので)。
②パート
②のパートでは、①の終わりで「What is your name?」と聞いているので、その返答を受けて動き出すパートになります。
ここでは、①の始まりと同じように音声トリガーとスリープのセットを入れています。
その後は、「It’s nice to meet you.」のあと、握手をするとバーニーが動き出すように実装しています。
手を動かすことによるトリガーをどこかで使いたいなと思っていたので、なんとか流れを作って、組み込んでいます。
いろんなセンサーが入っていることに、改めて驚かされますね。
このパートは「Do you want to see something funny?」で終了になります。
③パート
最後のパートは、質問の回答を受けて動き出すところから始まります。
ここも最初は、音声トリガーとスリープのセットです。
回答は予め肯定的な回答をするように、対話する人(今回は息子)に頼んでおく必要がりますね。
ここでは、Vernieがダンスを見せてくれているというつもりで、動きを実装しています。
前後の動きの数字が進む距離を表すことを理解するのは容易ですが、回転系は小さい子供が正確に理解するのは大変かもしれないですね。
回転する角度についても、理解が進めばと思いあえて一回転を入れています。
上手く角度を調整して、前を向くようにしてみてください。
「Thank you!」を仕込めばプログラミングは完了です。
同じ動きができなかった人は、一旦完コピでプログラミングしてみてください。
システムエンジニアの世界でも、初めてのプログラミングでわからない時は、まずはプログラムを丸写しして(写経と呼ぶこともあります)、一旦動くものを作ってから、それぞれのパーツをいじって、各パーツがどんな動きをしているのかを探っていきます。
まとめ
今回はLEGO BOOSTでのプログラミング学習用として、Vernieの1回目の宿題を投稿してみました。
初期のプログラミングステージでのプログラミングなので、難しいものはない認識ですが、まずはVernieで何ができるのか知ってもらうことができればいいのかなと思っています。
もし、お楽しみいただけたのであれば、幸いです。
今後も継続してアップロードできればと思っていますので、またご覧いただけたらと思います。
最後までお読みいただきありがとうございました。
▼アフィリエイト提携サイト
レゴランド・ディスカバリー・センター東京
レゴランド・ディスカバリー・センター公式オンラインショップ