IoTとは、いろんなデバイスがインターネットにつながって、データをデバイス同士でやりとりしたり、ビッグデータとして蓄えて活用したりできるんですよ。
が、IoTの要約だと思う。
しかしながら、そのデバイスについて語れる人間はコンピューター業界にはあまりいないと思う。
古くは「組み込み系」といわれ、ハイエンドのコンピューターを使っている人からはちょっと白い目で見られ、実入りも安い業種だったから。
逆に彼らはデータベースだネットワークだはかなり弱い。
かくいう私はおそらくIoTをとってもよく知っていると言わせてもらってもいいのではないかとうぬぼれている。
あの有名な8ビットの名器Z80(PC-8001の頭脳)やメインフレームのSystem/390のアセンブラーコードを書き散らしてきていて、当時のIOデバイスのプログラム(マイクロコード)なども見てきた経験をもっている。
1990年代になってMicroChip TechnologyのPicシリーズを知り、ちょこちょこ遊んでいた。
そこにAVRプロセッサーを積んだArduinoが世の中にでて、マイクロコンピュータの勢力図と開発環境は大きく変わった。
このあたりはITばかり追いかけている人は知らないと思う。純然たる「ハードウェア」に分類されてきたジャンルだから。
ただ、イベントなどに出かけると横で「組み込み系ソフトウェア」なんていものが併設されていたのを覚えている人もいるかもしれない。(でも、オレには関係ないと思っていたでしょ。)
2016年の1月に一部を騒がせた発表があった。
なんと、MicroChip TechnologyがAVRプロセッサーを作っているATMEL社を買収すると発表したからだ。
業界ではPicは台数はたくさん出ているが、製品のアーキテクチャの使いづらさと、開発環境がイマイチなので有名だった。
AVRはRiscベースの単純なアーキテクチャで極めて処理スピードが早い、本当の「マイクロプロセッサー」っぽいのに比べ、PICは複雑なメモリー管理と、とろいマシンサイクルであくまでもシーケンサーっぽい感じであった。
ArduinoにAVRが採用されたのも当然である。コンピューターサイエンスとしては王道を行くプロセッサーだ。
他にもインテルやらなんやらいろんな会社がIoTを狙ってマイクロプロセッサーを作っている。
MicroChip Technologyも手をこまねいていたわけではない。
開発環境はNetBeansにかわり、Macでも開発できるようになった。
さまざまなペリフェラル(周辺機器)をPICの中に組み込み始めた。
ペリフェラルでもっともよく使われるものが、デジタルーアナログ変換、アナログーデジタル変換であるが、それはいくつかのPICにも組み込まれている。
たとえば、音をデジタル信号にするためにはアナログ-デジタル変換だし、デジタル信号をなだらかな出力にするにはデジタル-アナログ変換は必須だ。オーディオマニアならDAC(Digital Analog Converter)でなんとなく知ってるだろう。
USBインターフェースをもったものもある。
開発ツールからCPU単体をつなぐだけでICE(In Circuit Emulator:1ステップずつハードの命令を実行するデバッガー)ができる機種もある。
当たり前だがPICなどの極小プロセッサーにはOSなんぞ搭載するスペースはない。
ちょっと大きいArduinoでもOSはない。
反対に言えば、だからこそとても安価(一台50円くらいからある)で、シンプルな動きをさせることができるのである。
センサーの世界では時間がとても大事だ。OSに制御をまかせて、いつ返事がかえってくるか知りませんじゃ、ハードウェアは作れない。
そのかわり、ひとつの仕事をさせるために複数のマイクロコンピュータを使っても一向にかまわない。
ロボットコンテストなどに出てくるロボットはPICを大量に使ったものが多い。
耳の役割をするもの、指の役割をするもの、別々だ。
それではなく、IT業界の多くの人がRaspberry PIを好むのはLinuxが動いているから安心するのだろう。
OSが動くボードは複雑で高度でマイクロプロセッサーを動かす世界とは違う、ということは知っていて欲しい。
某ERPの会社でもIoTと騒いでいるが、データがデータセンターに届いたところから議論が始まっていて、私からしたら、とても素人な話でお客と話して大丈夫か?と心配になる。
他業界(組み込み系)のことをまったく知らないのに、Arduinoという言葉を知っているだけで識者のようにふるまう、はったり議論は聞いていてへそがかゆい。
「その技術の進歩は誰がやったと思う?」と突っ込みたくなるのをガマンしている。
IoTの業界でいうデバイスの世界を引っ張っていくのは、これらのとても小さいセンサー付きのプロセッサーであることは知っていたほうがよい。
なぜならば、IoTの世界は従来のスマホやパソコンといった「ソフトウェアさえ知っていればいい」世界ではなく、ハードウェアの世界を知っていないとクールな製品はとうてい無理だからである。
AndroidなどにUSBやBluetoothで繋いだ不思議なデバイスは、この世界から出現していて、ハードウェアエンジニアを抱えた会社が作っているのだ。
私が時々、MPLab Xなどをいじっているのはこういう背景がある。