特集:IoTがもたらす製造業の革新〜進化する製品、サービス、工場のかたち〜
連載
» 2018年03月30日 10時00分 公開

IoT観測所(43):アマゾンよりも面白い?「Mongoose OS」がIoT開発のハードルを下げる (2/3)

[大原雄介,MONOist]

ランタイムに非依存でJavaScriptに対応

 4つ目の特徴になるのが、ランタイムへの非依存である。一般にMCUの場合、当然搭載される周辺回路とか、場合によってはドライバ類はそれぞれのベンダーから提供される形になる。OSベンダーの中には、このドライバ類を完全に自前で提供するところもあるが、当然これは対応負荷が非常に大きくなる。

 Mongoose OSは図1のように、ベンダーから提供されるネイディブSDK(ソフトウェア開発キット)の上にラッパーとして提供される。つまり、この範囲でアプリケーションを記述する限りは、仮にハードウェアを変更しても再プログラミングの必要がない。もちろん、これで足りない部分は、ネイティブSDKを直接たたく必要があるが、Mongoose OS自身のAPIがかなりの範囲をカバーしているので、アプリケーションによっては一切ネイディブSDKを触らなくて済む。

図1 図1 「Mongoose OS」の構造。ネイディブSDKの上にあるラッパーとして提供される 出典:Mongoose OS

 5つ目はC/C++とJavaScriptへの対応。最終的なアプリケーションはC/C++で記述することになるが、それとは別に(先ほどもちょっと出てきた)mJSというJavaScriptエンジンが用意されており、これを利用してJavaScriptによるラピッドプログラミングも可能である。CesantaはPrototypingにはJavaScriptを、実際のアプリケーション開発にはC/C++を、という形を推奨しているが、別にJavaScriptのまま製品開発をしてしまっても構わない

 6つ目がArduinoとの互換性だ。完全というわけではないが、Arduinoと互換のライブラリが提供されており、既存のArduinoのスケッチがそのまま動作する。少なくともGPIO、Wire、OneWireなどは互換性が保たれている。さらにArduino用のシールドも利用できる(もちろんこちらはそもそも評価ボードがArduinoのShieldに対応しているか、自分で接続する必要があるが)。

 既に、アダフルーツ(Adafruit)のグラフィックライブラリ「Adafruit_GFX」、温度/湿度センサー「BME280」と「DHT」、有機ELディスプレイ「SSD1306」などの対応が発表されている。

 7つ目がセキュリティ対応である。Armの「Mbed TLS」互換の暗号化/認証に対応しており、マイクロチップ(Microchip、旧Atmel)の「ATECC508A」という暗号化チップにも対応しており、ここに秘密鍵を格納したり、暗号化/復号を行わせたりすることができる。ATECC508Aは安価(マイクロチップの直販サイト「microchip Direct」だと、例えば1個だけ買っても70セント)なので、組み込みも難しくない。

 ちなみに統合開発環境については、よくあえうりがちなEclipseベースのものではなく、「Visual Studio Code」へのプラグインという形で「Mongoose OS IDE」が提供されているのはちょっと珍しいが、別にこれで何か問題があるわけではない。

Copyright © ITmedia, Inc. All Rights Reserved.