LoginSignup
2
2

More than 5 years have passed since last update.

Kinoma Create で温度計を作る

Last updated at Posted at 2015-01-18

手元にアナログ出力の温度センサー LM61CIZ があったので、この値を表示してみる。
スタートアップメニューから辿れるサンプルプログラムのなかに、analog-temperature というそれらしき物がある。

ホーム画面の Front Pins でピンを設定して、センサーをつなぐ。左から、Power, Analog, Groundとする。
kinoma1.jpg
が、実行してみると動くがどうも値がずれている。使っているセンサーが違うので、あたりまえといえばあたりまえ。プログラムを変更するしかない。

温度計を表示するプログラムは、analog-temperatureというサンプルプログラムがここにある。
http://kinoma.com/develop/samples/
リンクをクリックしても他のサンプルプログラムと違い、GitHub に飛ばされるだけだが。
https://github.com/Kinoma/KPR-examples/tree/master/analog-temperature

というわけで、早速開発環境の Kinoma Studio をインストールして変更してみる。開発環境 Eclipse をベースに作られているようなので、僕にはなじみ深い。
Eclipseと同じ要領で、プロジェクトをインポートする。

基本的には3つのファイルで構成されているようだ。

ファイル名 説明
application.xml プログラムの名前とかのメタ情報の記述
src/main.xml 名の通り、メインファイル。xmlの中にjavascriptが埋め込まれている。
src/analog.js いまいち何をしてるかよくわからない。

というわけで、main.xml を覗いて、センサー値を取って、計算しているところを探す。

main.xml
<container id="MainContainer" top="0" left="0" bottom="0" right="0">
        <skin color="white"/>
        <label left="0" right="0" string="'- - -'">
            <style font="46px" color="black"/>
            <behavior>
                <method id="onAnalogValueChanged" params="content,result"><![CDATA[
                    //Converts voltage result to temperature. 
                    var temp = 100 * ( result * 2.8 ) - 50;
                    content.string = temp.toFixed(2) + " °C";
                ]]></method>
            </behavior>
        </label>
    </container>

result というのが、センサーの値のようだ。マニュアルによると、アナログ値のセンサーの値は 0から1 の間の値をとるそうだ。で?何ボルトなの?おそらく、ベース電圧の3.3Vが 1 の値をとるのだろう。3.3倍するとボルト数が得られる。さらに、1000倍して ミリボルト数が得られる。

(ミリボルト数) = result*3.3*1000

このセンサーは、測定範囲が、-30°Cから100°Cで、1°Cあたり10mV上昇するとのこと。0°Cのとき 600mv になる。すなわち、以下の式で求められる。

((result*3.3*1000)-600)/10 ---簡略化---> (result * 3.3 * 100) - 60;

さらに、小数点以下一桁だけ表示させる様に変更。

main.xml
                    var temp = (result * 3.3 * 100) - 60; 
                    content.string = temp.toFixed(1) + " °C";    

Kinoma Studio では、同一のネットワークに繋がっている Kinoma Create を自動的に探して表示してくれる。bento と名前をつけた Kinoma Create の横の 'Run >' ボタンをクリックすると、リモートでプログラムを実行できる。

kinoma.png

動いた!

kinoma1.jpg

だけど、表示がたまにチラチラして、19.0 になることがある。
分解能がたりないのか?

kinoma2.jpg

動いたから、とりあえずいいや。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2