スタート
マウスを動かして「スタート」カテゴリをクリックすると、スタート機能を持つブロックが表示されます。 ブロックの上部が凹んでいない場合、その上に他のブロックを連結することはできません。
このエリアに含まれるブロック:「スタート」、「ロボットが~した時」、「IoTサーバーに接続」、「Motoduinoに接続」。
ロボットが __時
- 定義 – 条件式
プログラムを作成する過程では、ある状況が成立しているかどうかを「条件式」を使って判断し、それに応じて実行するブロックを決定することがよくあります。このようなプログラムの流れを「選択構造」と呼びます。
選択構造には「単方向選択構造」と「双方向選択構造」があります。「ロボットが~した時」「~するまで待つ」「もしロボットが~なら」などのブロックは単方向選択構造に属し、条件が成立した時に実行するプログラム命令を判断します。
- 説明
ロボットが特定の部位を触られたり、特定の言葉を聞いたり、特定の人物を見たりした時に、以降のフローを開始します。
ブロック内のドロップダウンメニューをクリックすると、ロボットがフローを実行するトリガーを「触られた」、「聞き取った」、「見た」に変更できます。また、触られた部位、聞く言葉、見る人物を設定することも可能です。
📒 「見た」を選択できるのは、すでに登録されている人物に限られます。ロボットと接続した後でのみ、対象を選択できます。ロボットと未接続の場合は、シミュレーターテスト用に「臨時の家族ニックネーム」を追加して使用できます。
- 例
- 左側のメニューから「スタート」カテゴリをクリックし、「ロボットが~した時」ブロックをキャンバスにドラッグします。トリガー条件に「聞き取った」を選択します。
- 「聞き取った」言葉を入力します(例:「こんにちは」)。
- フローを「開始」の下にドラッグして接続した後、再生するデバイスを選択します。
- ロボットに向かって「こんにちは」と話しかけます(またはシミュレーターで「聞いた」を選択し、「こんにちは」と入力します)。
ロボットをリセット __
- 説明
このブロックは、ロボットの身体、画面表示、音声、ライト、あるいはそれらすべてを初期状態にリセットします。
- 例
- 左側のメニューから「動作」カテゴリをクリックし、「左肩を上にあげる」をキャンバスにドラッグして、角度を「100°」に設定します。「100°」。
- 「点灯」カテゴリをクリックし、「全身が点灯」をドラッグして、色を「紫」に設定します。
- 「顔」カテゴリをクリックし、「キャラクター」をドラッグして、「芸能人」を選択します。
- 「スタート」カテゴリから「ロボットをリセット」ブロックをドラッグします。
- ドロップダウンメニューをクリックし、「体」を選択します。
- フローを「開始」の下にドラッグして接続し、再生デバイスを選択します。
スタートに戻る
- 説明
「スタート」から「スタートにスキップ」までの間のすべてのフローを繰り返し実行します。
📒 補足: このブロックは、「スタート」ブロックから始まるフローの末尾にのみ配置可能です。「ロボットが~時」など、他のスタート系ブロックのフローでは使用できません。(フロー:連続して実行可能な一連のブロックのこと)
- 例
- 「動作」カテゴリから「左肩を上に上げる」ブロックを2つキャンバスにドラッグし、それぞれ「90°」と「0°」に設定します。
- 「スタート」カテゴリから「スタートにスキップ」をフローの最後に配置します。
- フローを「開始」の下に接続し、再生デバイスを選択します。
‼️ 注意事項: 実行済みの動作は自動的に元には戻りません。 例えば、「右肩を上に上げる」という動作を実行した後、ロボットは「右肩を上に上げた」状態を維持します。動作を繰り返させたい場合は、必ず元の姿勢に戻すブロックを入れることを忘れないでください。
プログラム終了
- 説明
このブロックは、現在実行中のプログラムを即座に終了させます。
- 例
- 「制御」カテゴリから「もしロボットが~、そうでなければ」をキャンバスにドラッグします。
- 「音声」カテゴリから「『__』と言う」を2つドラッグし、それぞれ「もし」と「そうでなければ」の凹みに入れ、「正解」と「不正解、もう一度」と入力します。
- 「開始」カテゴリから「プログラム終了」をドラッグし、「正解」の下に配置します。
- フローを「開始」の下に接続し、再生デバイスを選択します。
制御
ロボットが [条件] [内容] まで待つ
- 定義 – カスタムブロック
ロボットのハードウェアの利点を活かして設計された、ロボットの振る舞いを制御するためのブロックです。これには、開始、制御、動作、顔、点灯、音声、パフォーマンス、NUWAライブラリ、拡張ブロックなどのカテゴリが含まれます。
- 説明
ロボットが特定の部位を触られる、特定の言葉を聞く、または特定の人物を見るまで待機し、条件が満たされてから続きのフローを実行します。
ドロップダウンメニューでトリガー条件(触られる、聞き取った、見た)を変更し、詳細設定(部位、言葉、人物)を行います。
📒 補足: 「見た」は登録済みの人物に限られます。ロボットと接続後に選択可能です。未接続時はシミュレーター用に仮のニックネームを設定できます。
- 例
- 「制御」カテゴリから「~まで待つ」ブロックをドラッグします。
- 条件を「触られた」「左手」に設定します。
- フローを「スタート」の下に接続し、再生デバイスを選択します。
- ロボットの左手を触ります(またはシミュレーターで「左手が触られた」を選択)。
ロボットが音声を認識するのを待っています、__値を付与
- 説明
変数と連携するブロックです。まず変数を作成(または自動作成された変数を使用)する必要があります。ロボットが音声を認識するのを待っています、聞き取った内容をその変数に代入してから、続きのフローを実行します。
- 例「『虎』が含まれる言葉」というお題を出し、ロボットが聞き取った音声に「虎」が含まれているか判断させます。「含まれている(もし)」なら正解の会話を、「そうでなければ」不正解の会話を実行します。
ロボットが家族を認識するまでを待っています、__値を付与。
- 説明
変数と連携するブロックです。まず変数を作成します。ロボットが家族を見るまで待ち、認識した家族の名前を付与してから、続きのフローを実行します。
- 例 ロボットが見た家族の名前を「変数」に付与し、「話す」ブロックと組み合わせて、見つけた家族の名前をロボットに言わせることができます。
同時__を行う
- 定義 – 同時__を行う
2つ以上のプログラム命令を同時に実行させ、特定の目的や効果を達成します。プログラミングで頻繁に使用される命令です。
- 説明
「同時__を行う」ブロックの凹みの中に配置されたフローは、同期して実行されます。凹みの中のすべてのブロックの実行が完了すると、同時実行ブロックの処理が完了したとみなされ、次のブロックへ進みます。
- 例
- 「制御」カテゴリから「同時__を行う」をドラッグします。「動作」カテゴリから「左肩を上げる」と「右肩を上げる」をドラッグして「同時実行」の中に入れ、どちらも「130°」に設定します。
- フローを「スタート」の下に接続し、再生デバイスを選択します。
‼️ 注意事項: 「同時__を行う」の中に、互いに矛盾する動作を入れてはいけません。 矛盾するブロックは「リソースの衝突」を引き起こします。2つ以上のブロックが同時に同じ画面、LED、または関節(例:「左肩を10°上げる」と「左肩を20°上げる」)を使用しようとすると、すべての期待結果を満たすことができません。実際に衝突が発生した場合、通常は最後に処理されたブロックの結果が優先されます。
もしロボットが __なら
- 定義 – 実行体
ブロックの上下に他のブロックを接続できるだけでなく、その「内部」に他のプログラムを含むことができるブロックです。「同時__を行う」、「もしロボットが~」、「もし~、そうでなければ」、「~回繰り返す」、「ずっと繰り返す」、「~になるまで繰り返す」、「カウントして繰り返す」、「もし~実行する」、「リストから一つずつ取り出して実行」、「関数1へ」などがこれに該当します。
- 説明
ロボットが特定の部位を触られたり、特定の言葉を聞いたり、特定の人物を見たりした場合に、ブロック内のフローを実行します。トリガー条件が満たされなかった場合、このブロックをスキップして、次のフローの命令を実行し続けます。 ドロップダウンメニューからトリガー条件(触られた、聞き取った、見た)を変更できます。 条件達成時に実行したいフローを、「もしロボットが~なら」の凹みの中にドラッグして入れます。
📒 補足: 「見た」は登録済みの人物に限られます(接続時のみ選択可)。
- 例
- 「制御」カテゴリから「もしロボットが~」をドラッグし、条件を「触られた」「お腹」に設定します。
- 「動作」カテゴリから「左肩を上げる」と「右肩を上げる」を出し、どちらも「90°」にします。
- 「左肩を上に90°上げる」を「もしロボットが~なら」の中に入れ、「右肩を上に90°上げる」をブロックの下に接続します。
- フローを「スタート」の下に接続し、再生デバイスを選択します。
- ロボットのお腹を触ってみる(または触らずに少し待ってみる)ことで動作の違いを確認します。
もしロボットが __、そうでなければ
- 定義 – 条件式
「条件式」を用いて状況を判断し、実行するブロックを決定する「選択構造」です。「もし~なら、そうでなければ」は双方向選択構造に分類されます。
- 説明
ロボットが特定の部位を触られる、言葉を聞く、人物を見る、といったトリガー条件のいずれかが成立した場合、「もし~」の凹みの中にあるフローを実行します。条件が成立しなかった場合は、「そうでなければ」の凹みの中にあるフローを実行します。
ドロップダウンメニューをクリックすると、ロボットが指令を実行し始めるトリガー方式を変更できます。「触られた」、「聞き取った」、「見た」に分かれています。また、触られた部位、聞く言葉、見る人物も設定できます。
📒 補足: 「見た」を選択できるのは、すでに登録されている人物に限られます。ロボットと接続した後でのみ、対象を選択できます。ロボットと未接続の場合は、シミュレーターテスト用に「臨時の家族ニックネーム」を追加して使用できます。
- 例
- 「制御」カテゴリから「もしロボットが~、そうでなければ」をキャンバスにドラッグし、トリガー条件を「触られた」「右手」に設定します。
- 「動作」カテゴリから「左肩を上げる」と「右肩を上げる」をドラッグして出し、どちらも「120°」に設定します。/span>」。
- 「左肩を上に120°上げる」を「もしロボットが~」のブロック内に入れ、「右肩を上に120°上げる」を「そうでなければ」のブロック内に入れます。
- フローを「スタート」の下に接続し、再生デバイスを選択します(ロボット、またはシミュレーター)。
- ロボットのお腹を触ります(またはシミュレーターで「お腹が触られた」を選択します)。(または触らずに少し待ちます)
_回繰り返す
- 説明
繰り返し実行したいフローを「~回繰り返す」の凹みの中に入れます。そのフローを指定した回数だけループ実行させることができます。
- 例
- 「制御」カテゴリから「~回繰り返す」をドラッグし、「2」回に設定します。
- 「動作」カテゴリから「左肩を内に回す」を2つドラッグして中に入れ、それぞれ「0°」と「90°」に設定します。
- フローを「スタート」の下に接続し、再生デバイスを選択します。
ずっと繰り返す
- 説明
絶え間なく繰り返し実行したいフローを「ずっと繰り返す」の凹みの中に入れます。中のフローが永久にループ実行されます。
- 例
- 「制御」カテゴリから「ずっと繰り返す」をドラッグします。
- 「動作」カテゴリから「右肩をを内に回す」を2つドラッグして中に入れ、それぞれ「0°」と「120°」に設定します。」。
- フローを「スタート」の下に接続し、再生デバイスを選択します。
ロボットが _ 秒待つ
- 説明
前のフローの実行が完了した後、次のフローに進むまでの待ち時間を設定できます。待機時間が終了すると、次のブロックを実行します。これにより、フロー間の実行タイミングを調整したり、動作を遅らせたりすることができます。
- 例
- 「制御」カテゴリから「ロボットが~秒待つ」をドラッグします。
- 「動作」カテゴリから「左肩を上げる」を2つ出し、「0°」と「90°」に設定します。
- 「左肩を上に0°上げる」を待機ブロックの上に、「左肩を上に90°上げる」を下に配置します。
- 待機時間を「3」秒に設定します。
- フローを「スタート」の下に接続し、再生デバイスを選択します。
