C#なんぞ

C#に関するあれこれ。現在は「Raspberry PiをC#でプログラミング!」しようとしています!

Sense HATのLEDを点灯!

Sense HATを扱うためのパッケージをプロジェクトに追加!

Sense HATへのI/Oをはじめから記述するのは大変なので、NuGetパッケージを利用します。

「プロジェクト」メニュー→「NuGetパッケージの管理」を選択します。

ウィンドウ左上の「参照」を選択し、検索ボックスに「raspberry sense hat」と入力します。

検索結果の中から、「Emmellsoft.IoT.RPi.SenseHat」をここでは使うことにします。

www.hackster.io

「Emmellsoft.IoT.RPi.SenseHat」を選択し、ウィンドウ右上の「インストール」ボタンを押し、プロジェクトにこのパッケージをインストールします。(「変更のプレビュー」ダイアログが出たら、「OK」ボタンを押します)

LED点灯!

「Emmellsoft.IoT.RPi.SenseHat」パッケージのLEDを扱うクラスを利用するため、usingディレクティブを使って名前空間を省略できるようにしておきます。(オプション)

using Emmellsoft.IoT.Rpi.SenseHat;

SenseHatFactory.GetSenseHat()メソッドを使って、Sense Hatを操作するためのISenseHat型のインスタンスを得ます。非同期メソッドなので、async/awaitを使うなど、適切に対処しましょう。

ISenseHat senseHat = await SenseHatFactory.GetSenseHat();

ISenseHat.Display.ScreenプロパティがWindows.UI.Color構造体の8列×8行の2次元配列になっています。

この配列の要素にWindows.UI.Colorの値をセットし、LEDの状態を更新するためにISenseHat.Display.Update()メソッドを呼び出せば、対応するLEDをその色で点灯できます!

たとえば、0列0行(左上隅)のLEDを赤で点灯するには、下記のようにします。

senseHat.Display.Screen[0, 0] = Windows.UI.Colors.Red;
senseHat.Display.Update();

実に簡単ですね!

LED消灯!

ちなみに消灯は黒Windows.UI.Colors.Blackをセットします。

あるいは、ISenseHat.Display.Clear()メソッドを呼び出すと、すべてのLEDに黒がセットされます。

ISenseHat.Display.Update()の呼び出しを忘れずに!

senseHat.Display.Clear();
senseHat.Display.Update();