池澤あやかの 体験!スマートワークテクノロジー - 第7回

サクサクプログラミングでさまざまな活用法が生まれる魔法のIoTブロック


ソニー「MESH アドバンスセット」

働き方改革につながるソリューションにはいろいろとありますが、今回は池澤あやかさんにとって、とても身近に感じられたものでした。ソニーの「MESH」は無線でつながるIoTブロックで、iPadなどのタブレットでサクサクとプログラミングして動作させるものです。アイデア次第でいろいろな助けとなるこのソリューション。そんな「MESH」の世界を池澤あやかさんに体験してもらいました。

取材/池澤あやか、文/飯島範久、写真/岡田清孝


タレント/エンジニア
池澤あやか
@ikeay
第6回東宝「シンデレラ」オーディションで審査員特別賞に選ばれ、タレントとして活躍する一方、慶應義塾大学 環境情報学部(SFC)在学中にプログラミングに目覚める。大学卒業後もプログラミングができるタレントという特技を活かして活動中。

超コンパクトなブロックを組み合わせてプログラミング

 今回体験したソニーの「MESH」は、ソニーのSeed Acceleration Program(SAP)から生まれ、2015年から一般向けに発売されているIoTブロックです。消しゴムぐらいのサイズでボタンやセンサー、LEDなどが組み込まれたものをMESHブロックと呼び、ワイヤレスでそれぞれがつながって動作するためとても扱いやすいのが特徴です。しかもiPadなどのタブレット上で、ドラッグ&ドロップでつなげて設定していく直感的なプログラミングが可能なため、少しマスターしただけでも簡単な動作を行わせることができます。

 実は、池澤さんはMESHが発売されたばかりのころに触ったことがあり、今回久しぶりに使うとのこと。このため、基本的なプログラミング方法はなんとなく覚えていました。現在は7種類のMESHブロックがありますが、発売当初は4種類でした。池澤さんのご自宅には最初に発売されたMESHブロックがあるそうです。

 今回はMESHの生みの親でもあるMESHプロジェクトリーダーの萩原丈博さん直々に手ほどきを受けました。

池澤あやかさん(以下池澤) 「本日はよろしくお願いいたします!」

萩原丈博さん(以下萩原) 「お越しいただきありがとうございます。MESHは以前にも触ったことがあると思いますが、このパッケージではなかったですよね?」

池澤 「このパッケージじゃなかったですね。ちょっとチョコレートみたいな感じでかわいくなって、わかりやすくなっていますよね」

萩原 「そうなんです。“ボタン”“LED”“動き”“人感”“明るさ”“温度湿度”“GPIO”の7つのブロックになっています。パッケージを新しくしたのは、ワークショップなどで試したあと、もとに戻せるようにしたかったためです」

池澤 「ああ、なるほど。確かに、これだと紛失することがなさそうですね。以前は個別パッケージだったような」

萩原 「いまでも個別パッケージはあります。個別売りもしています。なので、7個セットと、3個セット、そして例えば、ボタンだけ5個使いたいとか、人感センサーだけ10個使いたいといったお客さまは、個別パッケージを購入していただけます。ではさっそくおさらいしましょうか」

池澤 「はい。おさらいします(笑)」

左がMESHプロジェクトリーダーの萩原丈博さん

7つのブロックがわかりやすく収納できるパッケージ

 すでに池澤さんは使ったことがあるということで、簡単な課題が萩原さんから与えられました。

萩原 「では、ボタンを押したらLEDが光るという、めちゃめちゃシンプルな“Lチカ”からやってみましょうか」

池澤 「はい。“ボタン”と“LED”ですよね」

 MESHのプログラミングは、iOS用とAndroid用のほか、今年の7月にWindows 10用のアプリが登場。タブレット上で直感的にアイコンを動かし、つなげて、リストから動作を指定するだけでプログラミングができてしまいます。各ブロックとタブレットとはBluetoothであらかじめ接続しておけば、すぐにアプリでブロックアイコンをつないで作りはじめることができます。機種によっても異なりますが、最新のiPadでは10個のMESHブロックが同時接続可能とのことです。

iPadにMESHのアプリをインストールしてプログラミング。ビジュアルでサクサクとつなぎ設定するだけでできる

 今回はiPadを利用してプログラミングしました。アプリをインストールすると最初にチュートリアル画面が出てくるので、手順にしたがって進めていくと、電源の入れ方やペアリングの仕方の解説があり、各ブロックとのペアリング作業を行います。ペアリングが完了すれば、ペアリングされたブロックがリストに並びプログラミングが可能になります。今回の場合は、すでにペアリング済みなので割愛しています。

池澤さんは、ちょっと思い出すように“ボタン”と“LED”のアイコンをつなげて、ボタンを押すとLEDが赤く光るように設定

池澤 「できました。早い! こんなのArduino(マイクロコントローラであり最低限の周辺回路を組んで利用するプログラミング可能な小型基板)じゃ考えられないですね」

萩原 「ボタンを押してLEDが光る。これって手元だと、ちょっと“光ったな”じゃないですか。だけど例えば、会議室で終了時間が過ぎているのにまだ使っているけれども、お客さまがいらっしゃるときにノックするのは嫌だなと思うことがあります。そんなときに外にこのボタンがあって、中に“LED”ブロックが備えられていると、外で押せばLEDが光って、『あっ時間がオーバーしているんだ』とわかったりします」

池澤 「時間だよーってわかりますね。これって電池、どれぐらい持つんでしたっけ?」

萩原 「電池は充電式で、使い方にもよりますけど、1ヵ月ぐらいは持ちます」

池澤 「結構持ちますね。充電している間も使えるんですか?」

萩原 「使えます。USB充電アダプターをつなぎっぱなしにして利用することも可能ですね。ですので常に設置して使えるのでアイデア次第で、そういった実用的なことにも使えたりするんです」

こんな感じにUSB給電しながら動作させれば電池の心配はいらない

池澤 「スピーカーもつくから、ボタンを押したら音がなるというのもいいかもしれませんね」

萩原 「いいですね。音もいろいろ変えられるし、録音した音にもできます」

 たとえば気泡緩衝材を指で潰してパチパチと音を鳴らしてストレス解消ということがありますが、“ボタン”と“スピーカー”を組み合わせて、同じようなことが簡単にできるということです。今回は、ボタンを押すとガラスが割れる音にしています。

池澤 「これは、結構ストレス解消になるかも(笑)」

萩原 「例えば、“動き”ブロックを使うと、もっとストレス解消になるかもしれません」

池澤 「確かに。ボタンの代わりに“動き”ブロックを配して……」

萩原 「ブロックを振ると音がなるようになります」

池澤 「確かに。これはいいですね」

萩原 「例えば、これを手に握って、何かエクササイズとかやると、おもしろくなります」

池澤 「パンチ音があるといいですね。あっ、録音すればいいんですね」

萩原 「ない音は録音すればいいんです。じゃあ追加をタップして録音してみましょう」

池澤 「『デュクシ』。いけましたか?」

萩原 「これでOKです」

 その後、しばらく握りしめてパンチを繰り返す池澤さん。『デュクシ』『デュクシ』……と池澤さんの声がスピーカーからこだまします。『デュクシ』『デュクシ』……かなり気に入ったようです。ちなみに、“動き”ブロックが検知した強さで分岐させたり、音をランダムに鳴らしたりと、ちょっと複雑なこともサラッとできてしまいます。

池澤 「これって、(発想が)小学生じゃないですか(笑)」

萩原 「いや、面白いですね。ほんとにもう、小学生でも楽しめるアイデアで、いろいろなことができるんです。例えば、実用的なものだと、出力がやっぱり音だけじゃ面白くないので、“連携”ブロックっていうのがありまして。以前、触ったときはなかったかもしれませんが、PhilipsのHueの照明(ワイヤレスでコントロールできるIoT照明)やGmail。あとIFTTT(各種Webサービスと連携させる仕組み)のいろんなサービスにつなぐことができるので、LINEにメッセージ送ったり、Googleスプレッドシートに記録したりということができます」

池澤 「いま、家のライトが、どんどんIoT化してるんですよね。ずっと一気に消したくて。でも、わざわざスマートスピーカーのようなものを置くまでもないというか。玄関にスイッチがあればいいかなという」

萩原 「じゃあ、それをやってみましょうか。家の電灯はHueを使っていますか?」

池澤 「Hueにしようかなと思ってます。いまは、Nature Remo(赤外線で制御できるIoTコントローラー)なんで、多分IFTTTでつながると思いますが」

萩原 「Nature Remoもつながりますね。ここにHueのランプがありセットアップしてあるので、リストから追加して、あとは“ボタン”ブロックを押したら、点灯したり消灯したりすることができます」

池澤 「この仕組みをたくさん設置してみたいですね」

萩原 「何個もということですね。例えば、たくさんHueがあったとしたら、リストから選べるんですね。なので自宅にHueがたくさんあったとき、リビングのHueだけコントロールするとか、全部一気にコントロールするということが、アプリ内で設定できます」

池澤 「すごい。これは便利ですね。例えば、Nature Remoも追加したいと思ったら……」

萩原 「追加したい場合には、IFTTTを選んでセットアップですね。あとはIFTTTの中で、Nature Remoを探します。あとはアカウントで連携するとつながります」

池澤 「2つつなげたかったら、両方つなげれば良いのでしょうか?」

萩原 「はい。どっちもコントロールしたいという場合には、例えばこういうふうにもう、両方つないでいただければ」

池澤 「そっかそっか」

 “ボタン”ブロックに対して複数の連携ブロックとつないで送信するようにすれば、どっちもコントロールできるようになります。

池澤 「これをトグル(操作するたびに2つの状態が交互に動作する)にしたいな」

萩原 「トグルにするには、この“スイッチ”ブロックを使うんですね。そのまま引っ張って入力につないでください。入力があるたびに、出力が切り替えるので。恐らくプログラミングできる池澤さんだったら、すぐにできるかと」

池澤 「これでいいのかな」

出力1と出力2が順番に入れ替わるので、一方に点灯する、一方に消灯すると設定すれば、スイッチが押されるたびに点灯/消灯が繰り返されるようになる

池澤 「おお便利。これで一気に点灯を消せるので、さっそく玄関に設置しよう」

萩原 「うちもHueと、リモコンはIRKitというものを使っているんですが、それを使って、電気とエアコンを同時に点けたり消したりしています。

池澤 「ああ、IRKitを使えばエアコンもつながるんですね。それは便利。出かけるとき一発で消せる」

萩原 「最近、いろんなものがリモコンになっているので、結構リモコンを探す手間がかかったりしますよね。そんなとき出掛けに一発ですべてを消せるのは便利なんです」

池澤 「しかも簡単に、自分でプログラムして、好きなことができますし。これはアツいですね。

萩原 「いまはトグルを使って電気のオン/オフを作りましたが、例えば『ボタンを1回押したら消す』『2回押したらつける』っというふうにしておくと、オンとオフで違う動作を割り当てられるんですよね。オフにするときは全部消すんだけど、オンにするときは、明かりだけ点けたいとか、そういうことができる」

池澤 「ああ、なるほど。ボタンの押し方で動作を変えるんですね」

萩原 「そうですね。一応、『1回押す』と『2回押す』『長押し』の3種類が用意されています」

サクサク作れるプログラミングの秘密

池澤 「結構、こういうビジュアルプログラミングを作ろうとすると、Scratchみたいなものになりがちだと思うんですけど、Scratchよりも導入しやすいというか、直感的に扱える印象がありますね」

萩原 「ScratchもMESHも、どちらも一長一短あると思いますが、Scratchのようなブロックをつなげるタイプのものは、プログラミングの言語をそのまま置き換えてるんですね。MESHの場合はどちらかというと、プログラミングを置き換えるという発想よりは、例えばドアが開いたときに電気がつくとか、人が来たら音を出すとか、そういった人が想像しやすい動きに合わせて連動するという発想なんです。物の動きに合わせて何かをしたいという思いがあったので、こういう形になりました」

池澤 「こっちのほうが、結構プログラマーじゃなくても書きやすいような気がします。プログラミングを知らない人にScratchを説明すると、やっぱり導入に1つのハードルがあるんですよね。でもこのMESHにはあまりないと思います」

萩原 「そうですね。逆に、プログラマーの方が『ループがないけど、どうやってループを作るんだろう?』と悩まれたりします」

池澤 「なるほど。プログラミングを理解していると、命令の代替を考えちゃうから逆に悩んでしまうんですね」

萩原 「はい、でも実はやり方があるんです。ただ、ループというふうに考えちゃうと思いつきにくいかもしれません」

池澤 「タイマーとかですか?」

萩原 「そう、タイマーなんですよ。正解です。“待つ”とか“一定の間隔”でというのがタイマーにはあるので。例えば、一定の間隔でオン/オフができて、ずっとベルの音が鳴るとかできてしまいます」

池澤 「これは確かにすごいと思います。何かPure Data(デスクトップミュージックなどのビジュアルプログラミング言語)っぽい」

萩原 「データが流れていく形の考え方に近いですね。あとは、物と物とが、実際の回路ではなく、バーチャルにつながっている感じですね」

池澤 「確かに。どういう使い方をしている人が多いんですか?」

萩原 「例えば、オフィスで使われる方とかで多いのは、トイレの空き状況を分かるようにしたいっていうのが、やっぱりニーズとしては多くて」

池澤 「へぇー、そうなんですね」

萩原 「はい。MESHのレシピ集でいろんな方に上げていただいていますが、トイレの空き状況というレシピのバリエーションもいろいろありますね」

池澤 「“人感”ブロックを使って……」

萩原 「“人感”ブロックを使う場合と、“明るさ”ブロックを使う場合と2パターンあります。割と小さい会社で、例えば1フロアにトイレが1個しかない場合、いるかいないかノックするのも気まずいのだとか。新幹線とか飛行機のトイレのランプと同じですね」

池澤 「ランプと組み合わせたら遠くからでもわかりますもんね」

萩原 「“明るさ”ブロックの場合、鍵の部分に使うんですよ。これって明るさだけじゃなくて、センサー部分がふさがっているかどうかということもわかるんです」

池澤 「ああ。扉を閉めたときに鍵を掛けると反応するわけですね。なるほど。トイレでの利用が人気なんですね」

萩原 「あとは、会議室に人いるかいないかを記録したりとか、実際にいろいろとレシピが上がっています。設置の仕方も、このようにLEGOで作ったりもできます」

池澤 「すごい! スタンドをLEGOで作ってしまった。しかもしっかりケーブルが通るようにしてあったり」

萩原 「そうなんです。よく考えられていますよね。角度も変えられるようになっていたり」

池澤 「すごい! さすがMESHマスター(笑)」

LEGOを使って“人感”ブロックを固定するアイテムを作ってしまった人も

萩原 「“人感”ブロックを使うときは、反応する角度とか、幅もあったりするので、そういった調整が必要になってくるんです。なのでセンサー部分にカバーをかぶせたりして狭めたりすることがありますね」

池澤 「はあ、すごい。いろいろ使い道がありますね。でもうちで使うのは、とりあえず“ボタン”ブロックかな(笑)」

萩原 「人感センサーはまだ要らないですか?」

池澤 「そうですね。でも例えば、Hueを付けて、“人感”ブロックも付けとけば、人感ライトみたいに使えるかもしれませんね」

SDKによる拡張もサポート

萩原 「MESHのウェブサイトにレシピ集があって。いろんな方が作ったりして公開してるんですね。いま300種類ぐらい上がってますので。ほんとに、面白いアイデアがいっぱいあります」

池澤 「以前、ここを見たんですが、人気順に並べ替えられたりするといいなって思いました」

萩原 「この『ティッシュ残量チェッカー』は人気ですね」

池澤 「人感センサーでカウントしいるんですね」

萩原 「反応する範囲をカバーで調整して、取られた回数をカウントし、50回ごとにLEDの色が変わるようにしているんです」

池澤 「きれいなレシピですよね。よく考えますね」

萩原 「あと、やはりトイレネタは多いですね」

池澤 「トイレあるあるなんですね」

萩原 「この作者は70人のオフィスで、トイレの個室が2個しかないようで、やっぱり大変ですよね」

このようにMESHブロックを装飾で隠してそのまま利用するケースも

これは、動きブロックを裏返すとライトが点いたり消えたりするもの。装飾とアイデア次第でMESHブロックをそのまま利用できる

池澤 「あと私、出掛けるときに天気がわかるといいな。雨が降るとか晴れなのかとか」

萩原 「天気の情報は、現在の天気ならIFTTTの“連携”ブロックが用意されているですが、ほかの実現方法として、天気情報をフリーで提供しているAPIを使って、SDKで取得する仕組みをつくればいけますね」

池澤 「SDKが公開されているんですね」

萩原 「はい、MESH SDKを使えば、カスタムブロックが作成できます。JavaScriptの知識があれば、ブラウザーから利用可能なカスタムブロック作成ツールを使って、誰でも簡単に作成することができます」

池澤 「SDKといってもブラウザーで簡単に作れるんですね。イメージしていたSDKじゃなかった」

萩原 「中身の実装はJavaScriptで書けるようになっていて、インプットコネクターとかアウトプットコネクターも設定できて、名前も自由に変えられるので」

池澤 「JavaScriptならそんなにハードルは高くないですね」

萩原 「MESHのサイトでも、いくつかサンプルコードを置いてますので。例えば先ほどの天気も、サンプルコードがあります。なのでコピペするだけでもできます」

池澤 「すごい」

萩原 「MESHアプリ上に天気予報ブロックができてますよね」

池澤 「あ、ほんとだ」

萩原 「あとは、インポートとエクスポートをするだけです」

池澤 「うわ、早い」

SDKを使って新たなブロックを作るのもカンタン。ブラウザー上でサクッとできる

 池澤さんの玄関に設置する機能を、いろいろと想像しながら、萩原さんのアドバイスを受けつつアプリでのプログラミングが止まりません。さすがプログラマー。夢中になっています。

池澤 「でも、こういう感じでサクサクと組んでいくだけで、いろいろなレシピが一瞬でできてしまいますね」

萩原 「1回作ってしまえば、例えば天気を取得するところはもう作らなくていいじゃないですか。だけど、インプットとアウトプット先を変えるだけで違った動作が実現できます。なので、ビジネスの現場で使われるときにも、1度ライブラリーとしてカスタムブロックを作ってしまえば、あとは現地でさまざまなニーズに合わせて使えるわけです」

池澤 「プロトタイプを作るときも、やはり違うものにしようというときも簡単に切り替えられますね。とりあえず、玄関改造計画を遂行せねば(笑)」

PREV
1
2
NEXT