応用編

Groovy-IoT + Kikoriは、IoTのPoC案件でお客様からの要求と市場の動向から、仕様を決めてきた経緯があるので実践的です。ここではその中のいくつかの事例を紹介します。応用例は今後、事例の増加と共に追記します。

  • Atomic-IOによる高速ADCサンプリング
    Groovy-IoTはUSBの密結合なので、USBのトラフィックがそのままボトルネックになりますが、他の同様のシステムに比べて比較的高速(2-3msec)にサンプリングする事が可能です。この局所性を活かしたIO処理をAtomic-IOと呼び、特にADCによる高速サンプリングに利用しています。もちろん、GPIOなどをドライブしても良いのですがCLKRなどでその辺りは代替できますのでADCが主な使い道になります。kikoriはclojure で記述されていますので、Java由来のガベジコレクションにより変動する事を留意して下さい。

    • Optionの説明
       Optionはsampling数、type,が設定出来ます。sampling数はデータを何点取得するかの設定です。typeはその取得したデータに対しての演算になります。min(最小値), max(最大値), rms(Root Mean Square:二乗平均平方根, mean(単純平均), sd(標準偏差)を設定出来ます。

    • 応用例: 電力測定
  • 出力
     センサを扱うだけでなく、(アクチュエータ)出力も可能です。ただし、入出力設定は最大限の注意を払って下さい。取り扱いを間違えるとセンサなどを壊す危険性があります。

    • GPIO
      末尾のvalue=0 or 1でL/Hの出力を切り替えます。

    • DAC
       DACは標準的なGrove-Systemには搭載されていない機能です。MCP2221aの機能になりますが、kikoriから制御が可能です。0-31(5bit)の値を取ります。ジャンパで設定している電圧とsystem.clj内のvrmによってLSBが決定します。

    • CLKR
       CLKRはクロック出力になります。最高で24MHzのクロックを出力出来るので、様々な応用が可能です。発振周波数とデューティをセット出来ます。発振周波数として、:24M, :12M, :6M, :3M, :1.5M, :750K, :375Kがセット出来ます。同様にデューティは:0, :25, :50, :75となります。コロン(:)を忘れずに付けて下さい。
  • Webインターフェイスの可能性