簡単な答え

モーター、ホイール、シャーシを取り付ける前に、ブロックコーディングでmicro:bitの内蔵入出力を教えましょう。各学習者がセンサーごとに1つのプログラムを作成、ダウンロード、テストし、その後2つの入力を1つの反応に組み合わせる短いワークショップを実施します。この順序により、ロボットに必要なデバッグの習慣が身につき、組み立て段階がトラブルシューティングではなく、組み立て作業になります。

ほとんどのロボティクスワークショップは同じ点で失敗します。ロボットが組み立てられ、バッテリーパックが接続されても、誰もプログラムを読む練習をしていないため、何も動きません。micro:bitは、ボタン、LEDグリッド、センサーが追加のハードウェアなしで動作するため、これに対する良い解決策です。ボードだけでmicro bitコーディングの基本を教え、ロジックに慣れたらモーターを追加できます。

このワークショップ計画は、単一の出力から始まり、2つの入力が連携する順序で進みます。各ステップには、初心者が最も頻繁に立ち往生するミスが含まれているため、構築後に発見するのではなく、注意深く見守ることができます。

最初のセッション前に準備するもの

学習者1人またはペアごとに1つのmicro:bit、ブロックエディタを開いたコンピュータまたはタブレット、および各ボード用のUSBケーブルが必要です。学習者がケーブルでファイルをダウンロードするか、Bluetoothでペアリングするかを事前に決定してください。セッション中に方法を切り替えると、節約できる時間よりも多くの時間がかかります。ブロックカテゴリを印刷または表示して、初心者がInput、Basic、Logicを探さずに見つけられるようにします。

最初のセッションでは、ボード自体以外のハードウェアは使用しないでください。モーター、ホイール、バッテリーパックは電源や配線の変数を導入し、コーディングミスを隠してしまいます。点滅するだけのボードは、緩んだリード線があるかもしれないシャーシよりもデバッグが簡単です。

  • 各 micro:bit に名前または番号を付けてラベルし、ダウンロードしたファイルが混ざらないようにしてください。
  • 事前にすべての USB ケーブルをテストしてください。充電専用ケーブルはプログラムを転送できません。

ステップ 1: 意図的に1つの出力を発生させる

LEDグリッドから始めます。学習者に、プログラム起動時に1つのアイコンを表示させ、その後別のアイコンに変更するよう指示します。目的はまだ創造性ではなく、編集、ダウンロード、実行のサイクルが最初から最後まで機能することを確認することです。学習者が自分のアイコンが表示されるのを確認すると、ツールが抽象的に感じられなくなります。

ここでよくある間違いは、ダウンロードの手順を飛ばして、ボードが自動的に更新されたと想定することです。各学習者に、実行前にボードを指さして、何が表示されると思うかを言わせてください。ボードに古いアイコンが表示されている場合、ファイルは転送されていません。

  • チェックポイント: すべての学習者がアイコンを変更し、自分のボードで変更を確認できる。

ステップ 2: 入力としてボタンを追加する

次に、イベントをアクションに結び付けます。ボタンを押すと特定のアイコンが表示され、別のボタンを押すと異なるアイコンが表示されるようにします。ここでmicro:bitのブロックコーディングが真価を発揮します。ブロックは原因と結果の構造を視覚的に示すため、学習者はイベントがアクションを包み込むものであり、横に並ぶものではないと理解できます。

注意すべき間違いは、表示ブロックをボタンイベントの外に置くことです。そうすると、押したときではなくすぐにアイコンが表示されてしまいます。学習者にアイコンが表示されるタイミングを説明させ、その説明とブロックが一致しているか確認させてください。

  • チェックポイント:各ボタンを押すと、異なる予測可能な結果が得られます。

ステップ 3:値を保存して変更する

カウンターとして変数を導入します。ボタンを押すたびに1が加算され、その数がグリッドに表示されます。これはmicro:bitの初心者にとって概念的な飛躍です。ボードが押下の間で何かを記憶するようになります。変数名はscoreやcountなど、短くて意味のあるものにし、ブロックが文のように読めるようにしてください。

よくある間違いは、イベント内で変数をリセットしてしまうことです。これにより、押すたびにカウントが消去され、表示が1のまま動かなくなります。数が増えない場合は、changeブロックがあるべき場所にsetブロックがないか探してください。

  • チェックポイント: 押すたびに数が増え、押下の間も保持されます。

ステップ 4: 条件を使って2つの入力を組み合わせる

ボタンと、基板を振る操作や光センサーの読み取りなどの2つ目の入力を組み合わせます。両方が真の場合にのみアクションが発生するように条件を設定します。これは実際のロボットのロジックを反映しています。つまり、衝突センサーとタイマー、または光センサーとボタンによって、機械が次に何を行うかが決まります。

ここでの間違いは、2つの入力を別々にテストし、それらが組み合わさると想定することです。学習者は、条件が機能することを証明するために、両方を同時にトリガーする必要があります。1つの入力だけでアクションが発生する場合、条件は実際にはアクションをラップしていません。

  • チェックポイント:アクションは、両方の入力が同時にアクティブな場合にのみトリガーされます。

ステップ 5: 感知・思考・行動ループを構築する

それでは、これまで使ってきたパターンを正式に定義しましょう。入力を読み取り、条件に基づいて判断し、出力を生成します。学習者にこの3つの部分からなるループを紙に書き出させ、各ブロックを1つの部分に対応させてください。パターンに名前を付けることで、モーターへの移行がはるかに容易になります。モーターは単なる別の出力に過ぎないからです。

よくある間違いは、ループを繰り返し行うものではなく、一度きりのシーケンスとして扱うことです。ボードが一度反応した後、それ以降の入力を無視する場合、プログラムはシーケンスを一度だけ実行するのではなく、チェックを続ける必要があります。

  • チェックポイント: ボードは最初の入力だけでなく、繰り返しの入力にも応答し続けます。

ステップ 6: ロジックが機能した後にのみモーターを追加してください

学習者がプログラムの動作を予測できるようになったら、動きを導入します。最初のモータープログラムは意図的にシンプルに保ちます。一方向、一つの持続時間、一つの停止です。コーディングはすでに馴染みがあるため、注意は配線と電源に向けられます。そこに本当の新しい変数があるからです。

よくある間違いは、コードと配線を同じ試行で変更することです。ロボットが誤動作した場合、どの変更が原因かわかりません。一つのことを変更し、テストし、次に次の変更を行います。

  • チェックポイント:2つ目の動作を追加する前に、ロボットがプログラム通りに正確に動くことを確認します。

ワークショップの流れを一目で

  1. 最初に出力: LEDグリッドにアイコンを1つ表示し、ダウンロード&実行サイクルが機能することを確認します。 古いアイコンがまだ表示されている場合、ファイルは転送されていません。
  2. 次に入力: 各ボタン押下で異なるアイコンをトリガーします。 アイコンが押されずに表示される場合、表示ブロックはイベントの外側にあります。
  3. 3番目のメモリ: 変数を使用して押した回数をカウントし、その数を表示します。 カウントが1のままの場合、設定ブロックがリセットしています。
  4. 4番目の条件: アクションを実行する前に、2つの入力を同時に要求します。 両方の入力を一度にテストし、1つずつテストしないでください。
  5. 5番目のループ: 感覚-思考-行動のパターンを書き、各部分にブロックを割り当てます。 一度だけ反応する場合、プログラムは繰り返されません。
  6. モーターの持続時間: コードが予測可能になったら、1つの動作を追加します。 コードか配線のどちらかを変更し、両方を同時に変更しないでください。

このワークショップに適した製品

  • 私のロボットペット:プログラミングカメレオン: カラーセンサー、赤外線センサー、RGB LEDを搭載し、カラフルなアクションカードを使ってペットをプログラムするコーディングモードを含む3つのユニークなプレイモードでコーディングとプログラミングが可能です。ブロックコーディングの基本を学んだ後の次のステップとして最適で、単なるLEDグリッドではなく、センサーと色付き出力によって同じ「思考-感知-行動」のパターンが現れます。
  • Gecko Run: 7個入り交換用ビーズセット: これはGecko Runビーズコースターシステム用の金属製交換用ビーズ7個パックで、対象年齢は8歳以上です。ワークショップでビーズコースターステーションを運営している場合、予備のビーズがあれば、ピースが家具の下に転がってセッションが中断するのを防げます。

組み立ての前にコーディングの手順を実行すれば、ワークショップがトラブルシューティングの場になることはありません。プログラムの動作を予測できる学習者は、論理と配線を同時に学ぶ学習者よりもはるかに速くロボットをデバッグできます。