.NET Gadgeteerで温度計 - LCDで表示

.NET Gadgeteerで温度計、第二段です。このポストでは、計測した温度をLCDで表示する方法を紹介します。

このポストを読む前に、一つ前の、https://blogs.msdn.com/b/hirosho/archive/2012/02/06/tipsofdotnetgadgeteerwiththermometersensor.aspx をご一読ください。

一つ前のポストで説明した方法で出来上がった、Fez Spider+UsbClientDP+eBlockExpansion+E-Block Thermometerを接続した状態から始めます。プロジェクトのProgram.gadgeteerを開き、ツールボックスから、Display_T35をドラッグ&ドロップします。そして、Connect All Modulesを実行します。

すると、それまでeBlockExpansionにつながっていた10番コネクタが、Display_T35のTコードに奪われてしまい、別のコネクタにアサインされます。このコネクタは、間違いなので、青線をマウスで選択して一旦削除し、eBlockExpansionの黒いコネクタでマウスクリック&ドラッグして、”A”とマークされているSpiderボードの9番コネクタに接続しなおします。

これで準備完了です。

このポストでは非常に簡単な例ですが、計測した温度をLCD上辺真ん中にテキストで表示する方法を説明します。前のポストで記述したコードの、thermoInのインスタンスを取得する付近に、表示の為の準備コードを記述します。

            thermoIn = eBlockExpansion.SetupAnalogInput(GT.Socket.Pin.Four);

            display.WPFWindow.Background = new SolidColorBrush(Color.Black);
            StackPanel panel = new StackPanel(Orientation.Vertical);
            display.WPFWindow.Child = panel;

            degreeText = new Text();
            degreeText.TextAlignment = TextAlignment.Center;
            degreeText.ForeColor = Colors.Blue;
            degreeText.Font = Resources.GetFont(Resources.FontResources.NinaB);
            panel.Children.Add(degreeText);

太字のコードが、表示用のコードです。displayという名前の変数がGadgeteerで自動的に生成された、T35 LCDのインスタンスです。.NET Micro FrameworkのGUIは、WPFのサブセットなので、WPFをC#コードで作成するのとよく似たコードになります。ここでは、StackPanelを作成して、Text(WPFのTextBlockに相当)型の変数degreeTextをパネルに配置しています。degreeTextは、このクラスのメンバー変数として定義しておきます。

    Text degreeText;

displayのWPFWindowプロパティは、WPFで云うところのWindowクラスに相当し、GUI表示のベースとなります。

後は、TimerのTickイベントのハンドラーで、degreeTextの値を更新すれば、LCDでの表示が可能になります。

        void timer_Tick(GT.Timer timer)
        {
            double degree = thermoIn.ReadVoltage();
            degree = degree * 78.0 / 3.3 - 22.0;
            Debug.Print("Degree : " + degree);
            degreeText.TextContent = degree.ToString();
        }

degreeTextのTextContentは、WPFのTextBlockのTextプロパティに相当します。TextContentに文字列を代入すれば、LCDにその文字列が表示されます。

もっと素敵なグラフィックスを!!という方は、https://msdn.microsoft.com/ja-jp/netframework/bb267253#device_software から自習書を公開しているので、グラフィックス表示などチャレンジしてみてください。