.NET Gadgeteer モジュールのデモ:LightSense Module

.NET Gadgeteer のモジュール紹介、せっかくの組み込みですし、そろそろ実用的なセンサーモジュールの紹介をします。

まずはセンサーの中でも比較的分かりやすい(と私が考える)LightSense モジュール、照度センサーです。

LightSense Module

 

LightSense の機能は以下の通り。

  • 明るさの取得

難しいことは何もありません。周囲の明るさを識別してくれる、いたってシンプルなセンサーです。

 


明るさの取得

非常にシンプルなモジュールです。明るさを取得するメソッドがあるのみ。

ReadLightSensorPercentage メソッドがそれ。引数は無しで、0.0~100.0 の範囲で明るさを返します。値が大きいほど明るいことを示します。
イベントではないのでポーリングして値を取得します。用途にもよりますが、秒単位以上の間隔でポーリングしてもいいでしょうね。

なお ReadLightSensorVoltage というメソッドもあります。これも明るさを取得するもので呼び出し方は同じなのですが、こちらはボルトの値を取得するものです。センサーの生の値を取る感じですかね。これも値が大きいほど明るいということなのですが、直感的にはボルトで返されても分かりづらいような・・・。ということで、ReadLightSensorPercentage のほうをお勧めします。

ひとまず Debug.Print するものだと以下のコードになります。

 

  1. using Microsoft.SPOT;
  2. using GT = Gadgeteer;
  3.  
  4. namespace LightSenseDemo
  5. {
  6.     public partial class Program
  7.     {
  8.         // This method is run when the mainboard is powered up or reset.  
  9.         void ProgramStarted()
  10.         {
  11.             var timer = new GT.Timer(1000);
  12.             timer.Tick += new GT.Timer.TickEventHandler(timer_Tick);
  13.             timer.Start();
  14.  
  15.             // Use Debug.Print to show messages in Visual Studio’s "Output" window during debugging.
  16.             Debug.Print("Program Started");
  17.         }
  18.  
  19.         void timer_Tick(GT.Timer timer)
  20.         {
  21.             var light = lightSensor.ReadLightSensorPercentage();
  22.             Debug.Print(light.ToString());
  23.         }
  24.     }
  25. }

 

動作させるとこんな感じ。

 


簡単すぎるので、もう少しだけ現実的なデモにしてみます。

LED7R も接続してみます。

image

こんなコードにしてみましょう。明るくなるほど点灯する LED が増えます。

  1. using Microsoft.SPOT;
  2. using GT = Gadgeteer;
  3. using Gadgeteer.Modules.GHIElectronics;
  4.  
  5. namespace LightSenseDemo
  6. {
  7.     public partial class Program
  8.     {
  9.         // This method is run when the mainboard is powered up or reset.  
  10.         void ProgramStarted()
  11.         {
  12.             var timer = new GT.Timer(1000);
  13.             timer.Tick += new GT.Timer.TickEventHandler(timer_Tick);
  14.             timer.Start();
  15.  
  16.             // Use Debug.Print to show messages in Visual Studio’s "Output" window during debugging.
  17.             Debug.Print("Program Started");
  18.         }
  19.  
  20.         void timer_Tick(GT.Timer timer)
  21.         {
  22.             var light = lightSensor.ReadLightSensorPercentage();
  23.             TurnLights((int)(light * 7 / 100));
  24.         }
  25.  
  26.         private void TurnLights(int count)
  27.         {
  28.             for (int i = 1; i <= 6; i++)
  29.             {
  30.                 led7r.TurnLightOff(i);
  31.             }
  32.  
  33.             for (int i = 1; i <= count; i++)
  34.             {
  35.                 led7r.TurnLightOn(i);
  36.             }
  37.         }
  38.     }
  39. }

 

実行するとこうなります。

 

動きが出てきて、だんだん楽しいデモになってきました。

 


次回の技術ひろば.net の勉強会は 4月20日(土) の開催です。

申し込みサイトはまだありませんが(すみません・・・)、ご都合の付く方は今のうちにカレンダーに印を付けておいてください。
瀬尾への連絡方法をご存じの方は、事前にご連絡いただけるとさらにうれしいです。

会場も無事決まり、受付を始めました。こちらのページ からお申し込みください。

皆で .NET Gadgeteer で楽しみましょう!!

広告
カテゴリー: .NET Micro Framework タグ: , パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中