-
Notifications
You must be signed in to change notification settings - Fork 1
Mesh
この拡張機能は Scratch 1.4 の Mesh (英語) と同じ機能をスモウルビーでも使えるようにしたものです。インターネットを通じて、複数のスモウルビーの間でデータを送ったり受け取ったりするプログラムを作ることができます。
学校のネットワーク内だけでなく、離れた場所にいる友達のスモウルビーともやりとりが可能です。
具体的には、次の2つの機能が使えます。

このブロックは、他のスモウルビーで使っている変数の値を確認するためのものです。 例えば、他のスモウルビーで「名前」という変数を「スモウルビー」という値にすると、あなたのスモウルビーでも ([名前▼]センサーの値) が「スモウルビー」になります。
注意点: 変数の値は 1秒(1000ミリ秒)ごと に更新されます。そのため、値が変わるまで少し時間がかかることがあります。

これらのブロックを使うと、他のスモウルビーにメッセージを送ることができます。 例えば、誰かが「こんにちは」というメッセージを送ると、他の人のスモウルビーにある ^[こんにちは▼]を受け取ったとき| ブロックが動き出します。
注意点: メッセージも 1秒(1000ミリ秒)ごと にまとめて届けられます。送ってから相手に届くまで、最大で1秒くらいの待ち時間が発生します。
これらの機能を使えば、ネットワークを利用した「双方向性のあるコンテンツ」のプログラミングを学ぶことができます。例えば、対戦ゲームやチャットアプリなどを作ることができます。
実際の授業の指導案、ワークシート、プログラム例は こちら からご確認いただけます。
標準の設定では、同じグローバルIPアドレス(同じ学校や同じ家など)のスモウルビー同士がつながるようになっています。
しかし、「特定のクラスだけで通信したい」場合や「離れた場所にいる友達と通信したい」場合には、**「ドメイン」**を設定することで、通信する相手を限定したり、ネットワークを越えてつなげたりすることができます。
メッシュのメニューから「ドメインを設定する」を選び、好きな言葉を入力してください。

同じドメインを設定したスモウルビー同士だけが、お互いに通信できるようになります。学校の授業で使う場合は、クラス名や班の番号などをドメインに設定すると良いでしょう。
この拡張機能は、AWS AppSync というサービスを利用して、インターネット経由でデータのやりとりを行っています。学校などのネットワークで制限がある場合は、以下の通信を許可する必要があります。
| 通信方向 | プロトコル | ポート番号 | 接続先 (ホスト名) |
|---|---|---|---|
| スモウルビー → インターネット | HTTPS | 443 | graphql.api.smalruby.app |
| スモウルビー ↔ インターネット | WebSocket | 443 | graphql.api.smalruby.app |
※ データの送受信には https://graphql.api.smalruby.app/graphql を使用します。
スモウルビーのメッシュ拡張機能は、クラウドサービスの AWS AppSync を活用して作られています。皆さんが作成したプログラムがスムーズに動くよう、最新の技術を使って支えられています。