LEGO® Education における Web Bluetooth と Web Serial API の活用

レゴから組み立てられたブレイクダンサーのモデル。

LEGO® Education SPIKETM Prime Set は、6 ~ 8 年生(約 11 ~ 13 歳)の生徒を対象とした STEAM(科学、技術、工学、芸術、数学)学習ツールです。

カラフルな LEGO ビルディング エレメント、使いやすいハードウェア、Scratch と Python をベースとした直感的なドラッグ&ドロップ コーディング言語を組み合わせた SPIKE Prime は、遊びながら学習するアクティビティを通じて、学習レベルに関係なく、楽しみながら批判的に考え、複雑な問題を解決できるよう生徒を継続的にサポートします。

プログラミング経験

受講者は、アイコン ブロック、ワードブロック(デフォルト)、または Python コードを使用してモデルをプログラミングします。プログラミング環境は Scratch エディタをベースとしています。STEAM 教育の初期段階からすでに学校で学んだ多くの学生にはおなじみのものです。

2 つのビジュアル モードで、プログラミング キャンバスにドラッグ&ドロップしてブロックを接続します。さまざまなブロックをつなぎ合わせます。

ワード ブロック プログラムを含む LEGO プログラミング環境。

上級レベルの学生は、実際の Python コードを直接使用することを選択できます。これには、コーディング中の学生をサポートする統合されたナレッジベースが付属しています。

Python プログラムを含む LEGO プログラミング環境

LEGO Education SPIKE アプリでプログラムを作成したら、生徒は Bluetooth または USB 接続でプログラムを LEGO Education Spike Prime ハブに送信します。ハブがプログラムを実行し、LEGO モデルを制御します。

付属のハードウェア

SPIKE Education キットの頭脳はハブであり、センサーやモーターなどの他のさまざまなハードウェアを制御する役割を果たします。このキットには、カラーセンサー、距離センサー、力センサーが含まれています。また、大型と中型の 2 つのモーターがあります。ハブは Bluetooth または USB でパソコンに接続します。

LEGO SPIKE Education キットのプログラム可能な部分。 大きなハブ、色、距離、力用の 3 つのセンサー、2 つのモーター。

サポートされているアプリケーション

LEGO は、プラットフォーム固有のアプリとは別に、spike.legoeducation.com でアクセスできる SPIKE ウェブアプリも提供しています。アプリはブラウザにキャッシュに保存されないため、ウェブアプリが機能するには常にインターネットに接続する必要があります。

LEGO は、Windows 10、11、MacBook、Chromebook の Chrome ブラウザを正式にサポートしています。キャッシュ保存の改善とアプリをインストール可能にする機能は、今後計画されています。

SPIKE Hub に接続する

SPIKE Prime ハブと SPIKE Essential ハブは、Bluetooth または USB を使用してパソコンに接続できます。デフォルトでは、ウェブアプリは Web Bluetooth API により Bluetooth を使用します。

別の方法として、ウェブアプリが USB で接続されている場合、Web Serial API を使用します。どちらの場合も、USB ケーブルを除き、接続フローはほぼ同じです。

USB 接続の説明書が付いた LEGO Education SPIKE アプリ。

接続後、生徒は大きなハブの 20 個のストレージ スロットのいずれかにプログラムをアップロードします。

LEGO Education SPIKE の [Download to Hub] UI。

ハブと通信するには、Web Bluetooth と Web Serial API にそれぞれ BluetoothDevice または SerialPort が必要です。これらはライブアプリから取得したコード スニペットで取得されます。

ウェブ Bluetooth API 接続

(X.next = 4),
  navigator.bluetooth.requestDevice({
    filters: [
      {
        namePrefix: 'GDX',
      },
    ],
    optionalServices: ['d91714ef-28b9-4f91-ba16-f0d9a604f112'],
  });

Web Serial API 接続

const v = yield navigator.serial.requestPort({
  filters: [{
    usbVendorId: Zt.SerialVendorId.LEGO // 1684
  }]
});
yield v.open({
  baudRate: 115200
});

ウェブファーストに移行し、ウェブ ハードウェア API を使用する理由

現在、LEGO はウェブアプリに加えて、Android、macOS/iPadOS、Windows 向けのアプリの独立バージョンと、プラットフォーム固有のアプリのレガシー バージョンを維持しています。Chrome の基盤となるウェブ ハードウェア API をサポートするプラットフォーム(macOS、Windows、ChromeOS)にウェブアプリをプッシュすることで、アプリのメンテナンスの負担を大幅に軽減できます。

もう 1 つの理由は、ダウンロード サイズです。ウェブアプリのダウンロード数は合計 20 MB 未満ですが、macOS と iPadOS アプリの重量は 115 MB、Android アプリの容量は 178 MB、Windows アプリの容量は 292 MB です。初回インストールにはクラスで必要な教材は含まれていませんこのマテリアルをダウンロードすると、サイズが約 1 GB 増加します。ウェブアプリでは、授業コンテンツがストリーミングされるため、ユーザーは常に最新バージョンを持ち、見ている授業のみをダウンロードできます。

これらの技術的な理由とは別に、ウェブ ファーストを推進するもう 1 つの要素は、授業での使用のシンプルさです。生徒がアプリをインストールして最新の状態に保つ必要はありません。リンクをたどるだけで、常に最新バージョンを利用できます。LEGO 側からは、アプリストアのレビュー プロセスとは無関係に、いつでもコンテンツを更新できます。

ウェブで LEGO を操作する

LEGO は常に創造的にブロックを組み立てることに重点を置いてきました。LEGO Education SPIKE はウェブブラウザからアクセス可能であるため、このキットも例外ではありません。

デベロッパー コミュニティは、SPIKE と通信するコードの作成をすでに開始しています。たとえば、PyREPL-JS は、タフツ大学の Gabriel Sessions によって開始されました。PyREPL-JS は、ウェブページが SPIKE ハブと通信するための MicroPython REPL(読み取り、評価、出力のループ)を提供します。同じく Tufts の Ethan Danahy は、この REPL を多数の SPIKE Prime 用ウェブ インターフェース(その 1 つが音声ファイルに同期されたブレークダンサー)に使用しています。

大学は SPIKE による機械学習に関するワークショップを開催し、手順とコードサンプルを含む Robotics Playground をホストしました。Hello SPIKE から始めることをおすすめします。

ブレークダンサーの LEGO モデルが音声ファイルと同期しています。

Web Serial API と Web Bluetooth API により、生徒がブラウザから LEGO の物理モデルとやり取りできるようになるため、教育、クリエイティブ、エンターテイメントのアプリケーションの可能性が広がります。生徒は常にアプリの最新バージョンを使用できます。更新する必要はありません。

長期的には、LEGO 開発者が保守するアプリが少なくなるので、コストの削減と開発の労力が少なくなり、LEGO の最も有名な「創造力の解き放つ」により多くの時間を費やせるようになります。