Arduinoなどのプロトタイピング用ツールキットが普及したことで、マイコン・小型コンピュータをプログラミングしてセンサやアクチュエータを動作させることは容易になりました。最近では、Intel EdisonのようにJavaScriptでプログラミングできるマイコンも増えてきています。 しかしながら、実用的なIoTアプリケーションを開発しようとするとき、ソフトウェアエンジニアが必ずぶつかる壁があります。それが筐体設計です。
プロトタイピング用ツールキットはブレッドボードなどで簡易な配線をして利用することが多いですが、これだけではIoTアプリケーションの使い勝手は評価できません。なぜなら、センサやアクチュエータをどのように配置するかによって、手で持ったときの感覚や、設置場所での動作がまったく変わってきてしまうためです。そこで、センサやアクチュエータを固定できる筐体を設計する必要が生じるのです。
f3.jsは、通常のマイコンプログラミングをしながら、同じソースコードで筐体設計までできる統合開発環境です。形状が関数によって定義されるため、「Form follows function() for JavaScript」──略してf3.js(エフスリー)と呼びます。また、IoTアプリケーションの制作に必要なすべての情報(マイコン・小型コンピュータのプログラムと筐体の形状情報)を合わせてIoTコンテンツと呼びます。f3.jsは、IoTコンテンツを手軽に制作できるウェブベースの統合開発環境(WIDE)です。
f3.jsは、JavaScriptが有効な最新のブラウザで動作するように設計されています。以下の環境で動作確認しています。
さらに、マイコン・小型コンピュータへアプリケーションを転送するためにはf3.js IDEを動作させるPC(Windows 7, 8.1, 10)またはMac(Mac OS X)が必要になります。
f3.jsは、以下のマイコン・小型コンピュータ用のアプリケーション開発に利用できます。
筐体設計時に利用できるモジュール(センサやアクチュエータ)はドライバがnpmパッケージで提供されているものに限られます。現在、f3.jsに情報が登録されているモジュールは 0 個 です。
f3.jsが出力するPDFは以下のレーザーカッターで切断加工できることを確認しています。
産総研 f3.js Projectでは、プログラマ、デザイナをはじめ、さまざまな人がIoTコンテンツを利活用できる技術の研究開発に取り組んでいます。
f3.jsは主にTypeScriptと以下のライブラリ・ツールを利用して開発されています。開発者の皆様に感謝します。