クリエイター手抜きプロジェクト[487]IoT編 IoT時代のJavaScript/古籏一浩

投稿:  著者:  読了時間:7分(本文:約3,400文字)



2017年最初ということで、ちょっとIoT+JavaScriptについて書いてみます。といっても、JavaScriptが動くIchigoLatteについて書くだけなのですが。

まず、IchigoLatteですが、これは小型コンピューターIchigoJamと同じ基板上で動作するJavaScript OSです。OSやシェル、プログラム可能領域など全部含めて32KBに収まっています。

・IchigoLatte
http://ichigolatte.shizentai.jp/

・IchigoJam
http://ichigojam.net/

IchigoLatteのJavaScriptは、Webやアプリケーション上で動作する肥大化&複雑化したJavaScriptとは対照的に、コンパクトかつシンプルな作りになっています。つまり、IchigoLatteには本当に必要な機能と命令が用意されているのです。

メモリがないので、JavaScriptの特長の一つでもあるPrototype(プロトタイプ)もありません。オブジェクトは扱えますが、クラスベースに近いものです。

配列は最大32個までなど、とにかくメモリがないのでコンパクトです。コンパクトだからといって、何もできないわけではありません。センサーからの入出力はもちろん、サーバーへのデータ転送などもできます。




以下のグラフは、私の部屋の床下の温度を計測したものです。IchigoLatte+温度センサーで動作しています。(実際にはMixJuice, FaBoシールドを使用)

・床下温度
https://ambidata.io/ch/channel.html?id=680

・MixJuice(通信シールド)
http://mixjuice.shizentai.jp/

・FaBo(センサーシールド/各種センサーモジュール)
http://fabo.io/

IchigoJamの基板は1500円(組み立て完成品は2000円台)なので、割と安くセンサー類を扱えて、学習用にはちょうどよいでしょう。特にこれからWebでなく、IoT関係を少しでも勉強しておきたいと思ってる人には、ちょうどよいかもしれません。

もちろん、IoTであればラズベリーパイを選択するのがもっとも無難です。書籍や情報も多くありますし、利用できるセンサー類も数多くあります。また、UNIXベースのOSも用意されていますので、GUIで操作することもできます。

ちなみにラズベリーパイはSDカードにOSを入れるので、他にもいくつか用途に応じたOSがあります。他にもArduinoやembedなど様々な基板がありますので、用途に応じて機器を使いわければよいでしょう。

IchigoLatteはJavaScript OSですが、過去を振り返るとJavaScriptベースのOS絡みは、ことごとく失敗してきました。Webブラウザで使えるJavaScriptベースのOSがあれば、さぞかし便利だろうという構想は20年ほど前からあり、これまで各社が何度も挑戦してきました。今までのところ全敗です。

OSをJavaScriptで制御できたら楽なはずだ、ということでWSH(Windows Scripting Host/Windows Script Host)がWindows 98(1998年)に搭載されました。そういうものがある事自体、知らない人も結構多く現在に至ります。

その後、WSHの代替としてPowerShellが登場しました。しかし、Windows 10ではUNIXのbashを動作させたりと、迷走しているのか試行錯誤しているのか何ともな状態に。結局JavaScriptベースではうまくいかなかった事になります。

MacでもOSをJavaScriptで制御するソフトウェアがありましたが、特定のバージョンのOSだけしか対応せず、あっさりと終わりました。

WebOSというのもありました。HTML5(HTML,CSS,JavaScript)で制御するOSです。ほとんど日の目を見ることなく消えました。

スマートフォンでもHTML5ベースのFirefox OSというのもあります。実機は持っていますが、いかんせん低速でした。JavaScriptでの処理は遅いのです。動作が10倍速ければ使う人も増えたかもしれませんが。

ところで、これらの失敗の原因はJavaScriptにあるのでしょうか。それとも違うところにあるのでしょうか?

原因を特定するのは難しいかもしれませんが、要因の一つとして何でもかんでもやろうとして詰め込み過ぎた、肥大化しすぎたせいではないでしょうか。ほとんどの場合、実行速度もかなり遅く実用的ではありません。

また、動作させる前の設定項目が多すぎたり、複雑すぎて手間がかかります。手間がかからないのがJavaScriptのよい点なのに、逆に面倒になってしまうのは本末転倒です。他の側面としては、セキュリティに問題があるというのもあります。

それなら、逆にシンプルで高速なJavaScriptがあればどうなのでしょう? 余計な機能がなく、特定用途向けに高速に動作すればよいのではないでしょうか。また、セキュリティも気にすることなく使えればよいのではないでしょうか?

それを実現しているのがIchigoLatteです。例えばセンサーから入力したアナログ値をサーバーに送るには以下の1行で済みます(これはあくまでも例です)。

uart("MJ GET data.abc.com/regist",ana(2),"\n");

プログラムできる領域が2KBしかないので、なるべく簡単にできるように設計されているのです。

また、外部からプログラムを書き換えることはできませんし、不正にコードを埋め込んだり書き込むことはできません。それ以前に、標準状態ではネットに接続できませんので安心して使えます。

まだ正式リリースはされていませんが、WebからIoTを学習したい人には、おすすめです。作ってる人は日本人なので、日本語で普通に質問できます。英語を覚えなくてもいいのもメリットの一つかもしれません(^_^)


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/

前々から販売されていたAdobe自動化本の電子書籍ですが、好評につき先週末から取次経由で全国の書店でも販売されるようになりました。

POD(Print On Demand:プリント・オンデマンド)版ということで、本屋にそのまま置かれるわけではありません。注文すると印刷されて本屋に届く、というような流れになります。

オンライン注文だけでなく、取次経由で買うことができる、ということです。デジタルファーストで作られた書籍を、取次経由で販売するのは初の試みだそうです。販売されるのは以下の5種類になります。

・Adobe JavaScriptリファレンス
・ExtendScript Toolkit(ESTK)基本編
・Illustrator自動化基本編
・Photoshop自動化基本編
・Premiere Pro & Media Encoder自動化サンプル集

まだ、購入していない人は、この機会にぜひどうぞ。もちろん、電子書籍での購入もOKです。

・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/

・Premiere Pro & Media Encoder自動化サンプル集
http://www.amazon.co.jp/dp/4802090471/

・JavaScriptによるデータビジュアライゼーション入門
http://www.amazon.co.jp/dp/4873117461/

・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/

・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/

・Adobe JavaScriptリファレンス
http://www.amazon.co.jp/dp/B00FZEK6J6/

・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/

・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/