2 LEDをカラフル光らせてみよう

LEDを赤で点灯させる



  1. プロジェクトの追加
    新しいプロジェクトをソリューションに追加するには(新しい会社をグループ会社に追加する感じです)、「メニュー」→「追加」→「新しいプロジェクト」とします。
    すると、新しくプロジェクトを作ったのと殆ど似たウィンドウが出現します。異なるのは下部のところだけです。
    ここでは、名前のところを「LEDcolor」とし、「OK」を押します。



    すると、前回と同じように、右側のソリューションエクスプローラーのところに、新しいプロジェクトが追加されます。



    真ん中の部分に先ほどまで使っていたソースプログラムなどのタブが開いたままになっていると、古いプログラムのものか新しいプログラムのものか訳が分からなくなるので、タブの横の×を押してタブを全部消しておきます。


    そこで、前回と同じように、今度はLEDcolorの部分に含まれているmain.csをダブルクリックします。前回と全く同じ元になるソースプログラムが表示されます。
  2. プログラムを修正する
    どのプロジェクトのプログラムをBrainPadに送らなければいけないかを決める必要があります。そのためには。ソリューションエクスプローラーの「LEDcolor」プロジェクトを右クリック、出てきたメニューから「スタートアッププロジェクトに設定」をクリックします。これを行わないと、以前のプログラムが転送・実行されて謎なことが起こります。
    設定が正しく行われると、ソリューションエクスプローラーのところのプロジェクト名が若干太文字になりますので、これで確認してください。

    以前に作ったプロジェクトを実行させる時も、そのプロジェクトの「スタートアッププロジェクトに設定」を設定します。



    LEDの色を設定するには、BrainPad.LightBulb.SetColor()メソッドを利用します。このメソッドには一つの引数(ひきすう)があり、それは色情報です。シアンの場合はBrainPad.Color.Cyanと記述します。
    VisualStudioでは補完機能があり、「.」(ドット)が入力されると候補がメニューとして提示されますので、選択肢が何かを知ることができます。





    LEDをシアン色で点滅させる
            private void main()
            {
                BrainPad.LightBulb.SetColor(BrainPad.Color.Cyan);
                while (true)
                {
                    BrainPad.LightBulb.TurnOn();
                    Thread.Sleep(500);
                    BrainPad.LightBulb.TurnOff();
                    Thread.Sleep(500);
                }
            }
    
     1 
     2 
     3 色の設定をする
     4 永久ループさせる
     5 
     6 LEDを点灯させる
     7 500ミリ秒待つ
     8 LEDを消灯させる
     9 500ミリ秒待つ
    10 
    11 
    


    BrainPad.LightBulb.SetColor(BrainPad.Color.Cyan);の「.」(ドット)は「~の中の、~の中にある」と読み替えると理解しやすくなります。
    つまり、「BrainPadの中にあるLightBulbの内部にあるSetColorの手段を用いて、BrainPadの中のColor設定の中のCyan色に設定する」という意味になります。

  3. やってみよう1
    プログラムを修正して、次々と色を変えて点滅させてみましょう。
  4. やってみよう2
    点灯したまま、次々と色を変えてみましょう。
  5. 色を連続的に変える
    新しいプロジェクトを「LEDrgb」という名前で作ります。
    LEDを赤で連続的に明るさを変える
            private void main()
            {
                while (true)
                {
                    for (double r = 0.05; r < 1; r += 0.05)
                    {
                        BrainPad.LightBulb.SetColor(r, 0, 0);
                        Thread.Sleep(100);
                    }
                    for (double r = 1; r > 0.05; r -= 0.05)
                    {
                        BrainPad.LightBulb.SetColor(r, 0, 0);
                        Thread.Sleep(100);
                    }
                }
            }
    
     1 
     2 
     3 永久ループ
     4 
     5 赤の明るさを0.05から0.05ステップで1まで変える
     6 
     7 LEDの赤の部分の明るさを変更する
     8 100ミリ秒待つ
     9 
    10 赤の明るさを1から0.05ステップで0.05まで変える
    11 
    12 LEDの赤の部分の明るさを変更する
    13 100ミリ秒待つ
    14 
    15 
    16 
    


    BrainPad.LightBulb.SetColor(r, 0, 0);
    は3つの引数を持つメソッド(手段、方法)です。前からRed、Green、Blueで、0から1の値を持ちます。0が消灯で1が点灯状態です。その中間の明るさを指定することができます。ここでは、Redのみを指定しており、Green、Blueは消灯状態の指定をしています。
  6. できるかな
    赤緑青を混合して虹色で光らせるLEDrainbowを作ってみましょう。

信号機を作ってみよう

信号機のLEDで、緑、黄、赤の順で繰り返し点灯するようにプログラムします。

信号機LEDを点滅させる
        private void main()
        {
            BrainPad.LightBulb.SetColor(BrainPad.Color.Black);
            BrainPad.TrafficLight.TurnOffAllLights();
            while(true)
            {
                BrainPad.TrafficLight.TurnRedLightOff();
                BrainPad.TrafficLight.TurnGreenLightOn();
                Thread.Sleep(500);
                BrainPad.TrafficLight.TurnGreenLightOff();
                BrainPad.TrafficLight.TurnYellowLightOn();
                Thread.Sleep(500);
                BrainPad.TrafficLight.TurnYellowLightOff();
                BrainPad.TrafficLight.TurnRedLightOn();
                Thread.Sleep(500);
            }
        }
 1 
 2 
 3 もしカラーLEDが点灯していた場合消灯する
 4 信号機のLEDが点灯していた場合消灯する
 5 永久ループ
 6 
 7 赤消灯
 8 緑点灯
 9 500ミリ秒待つ
10 緑消灯
11 黄点灯
12 500ミリ秒待つ
13 黄消灯
14 赤点灯
15 500ミリ秒待つ
16 
17