WiFiで直接通信することが可能Makeblock社のSTEAM教育用シングルボードコンピューター「Halocode」のスペック上の大きな特徴は、WiFiでインターネットに接続して、PCや他のMakeblock社のWiFiデバイスと連携動作させることが出来る点です。ケーブルにつながずに、PCと連動させることが出来るので、よりスマートなフィジカルコンピューティングを体験することが可能になります。こんな感じですね↓WiFiデバイスというと、通常は、インターネットに接続する機能にフォーカスされがちですが、Halocodeは、インターネットに接続せずに、複数のデバイスで連携させる機能を標準で実装させています。↓の動画は、Makeblock社のHPより引用しています。https://j-tinkering.com/wp-content/uploads/2019/04/halocode_video_mesh_light-group_cn.mp4この動画では、1個のHalocodeの動きに応じて、複数のHalocodeのLEDの光り方を変化させています。この接続には、インターネットやPCは介しておらず、Halocodeだけで形成されたローカルエリアネットワーク(LAN)内で接続を実現しています。複数のHalocodeの接続を可能にするブロックパレット「LAN」Halocodeを複数接続させるのは、ビジュアルプログラミングソフト「mBlock5」で、簡単に実現できます。mBlock5_v5.1_Web版のLANのブロックパレットには、6つのブロックがありますが、その中で4つは、LANで接続されたHalocode同士を制御するためのメッセージ送受信に関係するブロックです。Scratch3.0ベースのmBlock5には、様々なメッセージ送受信方法がありますよね。通常のメッセージ・ユーザークラウドメッセージ・アップロードモードメッセージ、そして今回のLANでのメッセージ。これらは、他のデバイス(PCやスプライトも含む)とどう接続してどういうやり取りをするかによって使い分ける必要がありますので、しっかり把握しておきたいですね。HalocodeをLAN接続するためのブロックは、以下の2つのブロックです。複数のHalocodeのLAN接続をする場合、接続方法の基本的な考え方を理解する必要があります。Halocodeは複数接続が可能ですが、基本的には1:Nでの接続で親Halocode1個に対して子Halocode複数個の接続が可能というもので、子Halocodeは親Halocodeに処理を一任するという考え方になります。ちなみに、WiFiメッシュのように、親Halocode1個-子Halocode-孫Halocode、というような1:N:Nのような接続は出来るという情報はなく、筆者自身でも、その動作確認は出来ていません。※2019年8月12日現在、mBlock5_V5.1を使って、上記の親ー子ー孫の接続が可能であるか検証中です。こちらのページでは、親Halocodeを「ルート」と表記し、子Halocodeを「ノード」と表記し、その接続方法から説明していきます。Halocode_ノードルート図表_親Halocode1に対して、子Halocodeが多数接続可能です。大前提として、ルートとノードそれぞれ別のプログラムをアップロードする必要があります。Japan社さんから、2個Halocodeをお借りしましたので、その2個を使ってLAN接続を試してみたいと思います。ルート側のHalocodeのプログラミングまずは、Halocodeをルート(親)にするためのプログラムです。1、mBlock5を起動し、Halocodeと接続したら、アップロードモードをオンにする2、LANの名前を任意に設定する。デフォルトで「mesh1」となっているので、ここでは、そのまま利用3、2で設定したLANに接続する4、LANに接続した状態であることが分かるように、任意のLED点灯をさせる。ここまでが、LANへの接続の為のスクリプトです。5、ルートのHalocodeの動作を既定するスクリプトを作ります。↓のスクリプトは、ボタンが押された後、触ったタッチパッドの番号に応じて、それぞれ「値」を変えたメッセージを送るちなみに、更に多くのHalocodeにメッセージを送る場合は、その子Halocode(ノード)毎に、番号を決めておいて、ノードは割り当てられた「値」が来た時にだけ、動作させるようなことをすれば、冒頭のようなデモが出来ると思います。ノード側のHalocodeのプログラミング次に子Halocodeをノード側デバイスとして設定して、メッセージに乗せられた値に応じてLEDの光り方を変えるプログラムを作成します。1、ルート側で設定したLANの名前を書き込む2、LANに接続された事を分かりやすくするため、LEDを任意で点灯させる3、ルート側で設定したメッセージの値毎に、LEDの光り方が変わるというスクリプトを作成するそれで、できた動作デモは↓のようなものになります。見た目だと、LANで繋がっている感じは分かりませんが(笑)例えば、Halocodeを使ったクラスでは、ルートを先生がプログラムして、親Halocodeの挙動の応じてメッセージの値を複数作って送信、クラスにいる生徒さんに各メッセージの値を割り当てて、生徒さんたちは、ノードとして好きなプログラム(例えばLEDが虹色に光るとか)を作成して受信するなんてことをして、一体感を高めたクラスなんて言うのも考えられそうですね。※Makeblock社は随時ソフトウェアのアップデートが行われています。ご自身のPCと本ページのブロック表記が違う場合もあります。本ページは、以下の環境下で動作チェックをしました。1ハードウェア:Halocode_ファームウェアバージョン_25.01.003※Halocodeは、出荷時期によりファームウェアが最新のものではない(=mBlock5の最新バージョンに対応していない)場合があり、それによって意図した挙動が得られない可能性があります。最初に、お使いのHalocodeを最新のファームウェアに更新することをお勧めします。17MakeX2019のテーマ・開催概要が発表されました。J-tinkering。